学生管理系统(单链表练习)

张开发
2026/6/23 13:04:56 15 分钟阅读
学生管理系统(单链表练习)
功能录入学生信息打印学生信息统计学生人数查找学生信息修改学生信息删除学生信息按成绩排序退出系统#includestdio.h#includestdlib.h#includeconio.h//学生信息typedefstruct_Student{intstuNum;charname[20];intscore;}Student;//结点信息typedefstruct_Node{Student student;struct_Node*next;}Node;voidwelcome();voidinputStudent(Node*head);voidprintStudent(Node*head);voidcountStudent(Node*head);voidfindStudent(Node*head);voidsaveStudent(Node*head);voidloadStudent(Node*head);voidmodifyStudent(Node*head);voiddeleteStudent(Node*head);voidsortStudent(Node*head);intmain(){//创建头结点Node*head(Node*)malloc(sizeof(Node));head-nextNULL;loadStudent(head);while(1){welcome();charc_getch();switch(c){case1://录入学生信息inputStudent(head);break;case2://打印学生信息printStudent(head);break;case3://统计学生人数countStudent(head);break;case4://查找学生信息findStudent(head);break;case5://修改学生信息modifyStudent(head);break;case6://删除学生信息deleteStudent(head);break;case7://按成绩排序sortStudent(head);break;case8://退出系统system(cls);printf(Bye Bye!\n);exit(0);break;default:printf(请重新输入\n);break;}}return0;}voidwelcome(){printf(*********************************\n);printf(*\t学生成绩管理系统\t*\n);printf(*********************************\n);printf(*\t请选择功能列表\t\t*\n);printf(*********************************\n);printf(*\t1.录入学生信息\t\t*\n);printf(*\t2.打印学生信息\t\t*\n);printf(*\t3.统计学生人数\t\t*\n);printf(*\t4.查找学生信息\t\t*\n);printf(*\t5.修改学生信息\t\t*\n);printf(*\t6.删除学生信息\t\t*\n);printf(*\t7.按成绩排序\t\t*\n);printf(*\t8.退出系统\t\t*\n);printf(*********************************\n);}voidinputStudent(Node*head){Node*fresh(Node*)malloc(sizeof(Node));fresh-nextNULL;printf(请输入学生的学号姓名成绩 );scanf(%d%s%d,fresh-student.stuNum,fresh-student.name,fresh-student.score);Node*movehead;while(move-next!NULL){movemove-next;}//将学生插入到尾部move-nextfresh;saveStudent(head);//暂停程序system(pause);//清空控制台system(cls);}voidprintStudent(Node*head){Node*movehead-next;while(move!NULL){printf(学号:%d 姓名:%s 成绩:%d\n,move-student.stuNum,move-student.name,move-student.score);movemove-next;}//暂停程序system(pause);//清空控制台system(cls);}voidcountStudent(Node*head){intcount0;Node*movehead-next;while(move!NULL){count;movemove-next;}printf(学生的总人数为:%d\n,count);//暂停程序system(pause);//清空控制台system(cls);}voidfindStudent(Node*head){printf(请输入要查找的学生的学号: );intstuNum;scanf(%d,stuNum);Node*movehead-next;while(move!NULL){if(stuNummove-student.stuNum){printf(学号: %d 姓名:%s 成绩:%d\n,move-student.stuNum,move-student.name,move-student.score);//暂停程序system(pause);//清空控制台system(cls);return;}movemove-next;}printf(未找到学生信息\n);//暂停程序system(pause);//清空控制台system(cls);}voidsaveStudent(Node*head){FILE*filefopen(./stu.info,w);Node*movehead-next;while(move!NULL){if(fwrite(move-student,sizeof(Student),1,file)!1){printf(写入失败\n);return;}movemove-next;}fclose(file);}voidloadStudent(Node*head){FILE*filefopen(./stu.info,r);if(!file){printf(没有学生文件,跳过读取\n);return;}Node*fresh(Node*)malloc(sizeof(Node));fresh-nextNULL;Node*movehead;while(fread(fresh-student,sizeof(Student),1,file)1){move-nextfresh;movefresh;fresh(Node*)malloc(sizeof(Student));fresh-nextNULL;}free(fresh);fclose(file);printf(读取成功\n);}voidmodifyStudent(Node*head){printf(请输入要修改的学生的学号: );intstuNum;scanf(%d,stuNum);Node*movehead-next;while(move!NULL){if(move-student.stuNumstuNum){printf(请输入学生姓名成绩\n);scanf(%s%d,move-student.name,move-student.score);saveStudent(head);printf(修改成功\n);//暂停程序system(pause);//清空控制台system(cls);return;}movemove-next;}printf(未找到学生信息\n);//暂停程序system(pause);//清空控制台system(cls);}voiddeleteStudent(Node*head){printf(请输入要删除的学生学号 );intstuNum0;scanf(%d,stuNum);Node*movehead;while(move-next!NULL){if(move-next-student.stuNumstuNum){Node*tmpmove-next;move-nextmove-next-next;free(tmp);tmpNULL;saveStudent(head);printf(删除成功\n);//暂停程序system(pause);//清空控制台system(cls);return;}movemove-next;}printf(未找到学生信息\n);//暂停程序system(pause);//清空控制台system(cls);}voidsortStudent(Node*head){Node*saveNULL;Node*moveNULL;for(Node*turnhead-next;turn-next!NULL;turnturn-next){for(movehead-next;move-next!save;movemove-next){if(move-student.scoremove-next-student.score){Student tempmove-student;move-studentmove-next-student;move-next-studenttemp;}}savemove;}printStudent(head);}

更多文章