头文件下
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
typedef struct date
{
int year;
int month;
int day;
}DATE;
typedef struct stu
{
long stuID; //学号
char stuname[10]; //名字
char stusex; //性别
DATE birthday; //生日
float aver; //平均分
}STU;
typedef struct node
{
STU stu;
struct node* next; //指向下一个节点的指针
}NODE;
NODE* head = NULL; //头节点
void start();
void inputstudent();
源文件
#include"stu.h"
int main()
{
while (1)
{
start();
char ch = _getch();
switch (ch)
{
case '1': //录入学生信息
inputstudent();
break;
case '2': //打印学生信息
break;
case '3': //保存学生信息
break;
case '4': //读取学生信息
break;
case '5': //按总分由高到低排出名次
break;
case '6': //按总分由低到高排出名次
break;
case '7': //按学号由小到大排出成绩表
break;
case '8': //按姓名字典顺序排序排出成绩表
break;
case '9': //根据学号查询学生成绩及排名
break;
case '0': //根据姓名查询学生成绩及排名
break;
case '00': //退出系统
break;
}
}
return 0;
}
void start()
{
printf("*****************************************\n");
printf("欢迎使用学生成绩管理系统 *\n");
printf("*1.录入学生信息 *\n");
printf("*2.打印学生信息 *\n");
printf("*3.保存学生信息 *\n");
printf("*4.读取学生信息 *\n");
printf("*5.按总分由高到低排出名次 *\n");
printf("*6.按总分由低到高排出名次 *\n");
printf("*7.按学号由小到大排出成绩表 *\n");
printf("*8.按姓名字典顺序排序排出成绩表 *\n");
printf("*9.根据学号查询学生成绩及排名 *\n");
printf("*0.根据姓名查询学生成绩及排名 *\n");
printf("*00退出系统 *\n");
printf("*****************************************\n");
getchar();
}
void inputstudent()
{
NODE* newnode =(NODE*)malloc(sizeof(node)); //创建头结点,使newnode这个指针可以通过->来当作结构体变量来用
newnode->next = NULL;
if (head == NULL)
{
head = newnode;
}
else
{
newnode->next = head;
newnode = head;
}
printf("学号:");
scanf_s("%ld", &newnode->stu.stuID);
printf("姓名:");
scanf_s("%s", newnode->stu.stuname);
printf("性别:");
scanf_s("%c", &newnode->stu.stusex);
printf("年:");
scanf_s("%d", &newnode->stu.birthday.year);
printf("月:");
scanf_s("%d", &newnode->stu.birthday.month);
printf("日:");
scanf_s("%d", &newnode->stu.birthday.day);
}
执行的时候卡到性别那里不动了,怎么回事?