#include
#include
#define FILENAME "student.dat"
typedef enum{MAN, WOMAN} SEX;
typedef struct tagStudent
{
int num;//学生的编号
char name[20];//学生的姓名
SEXsex;//学生的性别
int age;//学生的年龄
char major[20];//学生的专业
struct tagStudent *next;//下一个节点的指针
}STUDENT, *PSTUDENT;
STUDENT g_head;//头节点
//1.显示菜单
void ShowMenu();
//2.获取用户选择的菜单的编号
int GetMenuChoose();
//3.创建一个节点,它会返回一个新创建的学生信息节点的指针
PSTUDENT CreateStudent();
//4.把学生信息节点加入到链表中
int AddStudent(PSTUDENT pstu);
//5.返回指定编号学生节点的上一个节点的指针
PSTUDENT GetPrevAddr(int num);
//6.显示所有学生信息
void ShowAll();
//7.显示信息数量
int ShowStudentCount();
//8.修改学生信息,参数为要修改的学生的编号
void ModityStudent(int num);
//9.获取用户的选择
int Question(const char *pstr);
//10.获取用户输入的学生的编号
int GetInputNum();
//11.删除编号为num的学生信息
void DelStudent(int num);
//12.删除所有的学生信息
void DelAll();
//13.把学生信息保存到文件当中
void SaveToFile();
//14.从文件中读取学生信息
void LoadFromFile();
int main()
{
int running = 1;
while(running)
{
switch(GetMenuChoose())
{
case 0:
running = 0;
break;
case 1:
//printf("你选择了菜单1\n");
AddStudent(CreateStudent());
break;
case 2:
//printf("你选择了菜单2\n");
DelStudent(GetInputNum());
break;
case 3:
printf("你选择了菜单3\n");
break;
case 4:
//printf("你选择了菜单4\n");
ModityStudent(GetInputNum());
break;
case 5:
//printf("你选择了菜单5\n");
DelAll();
break;
case 6:
//printf("你选择了菜单6\n");
ShowAll();
break;
case 7:
//printf("你选择了菜单7\n");
ShowStudentCount();
break;
case 8:
//printf("你选择了菜单8\n");
LoadFromFile();
break;
case 9:
//printf("你选择了菜单9\n");
SaveToFile();
break;
}
system("pause");
}
return 0;
}
//1.显示菜单
void ShowMenu()
{