1、if(p=(unit*)malloc(sizeof(unit)=NULL) printf(=初始化失败!);return 0;elsep-next=NULL; p-date.number=0;/头结点存放学生人数 printf(初始化成功!nreturn p;void add(unit *head)/增加学生 unit *p,*q;int m,n=0; q=head-next; p=(unit*)malloc(sizeof(unit);请输入新生姓名! gets(p-date.name);fflush(stdin);请输入学号!while(n=0) scanf(%d,&m);if(q=NULL
2、) n=1;while(q)if(q-date.number=m) printf(你输入的学号与已有同学的学号相同,请重新输入! q=head-break; q=q- p-date.number=m;请输入性别!date.sex);请输入数学成绩n scanf(date.math=m;请输入英语成绩ndate.eglish=m;请输入c语言成绩ndate.clanguge=m;date.average=(p-date.math+p-date.eglish+p-date.clanguge); head-next=p;next=q;date.number+;void deletion(unit *
3、head)/删除一名学生 unit *p=head-next,*q=head;char N10;请输入你想删除的学生姓名! gets(N);if(p=NULL)系统无学生可删除!while(p)if(strcmp(p-date.name,N)=0) q-next=p- head-date.number-;删除%s成功!,p- free(p); p=p- q=q-你要删除的学生不存在,删除失败!int display(unit *head)/显示学生信息 printf(系统无学生!*n请选择你的操作!ttt1.显示所有t2.按姓名查找nttt3.按学号查找t4.返回主菜单n fflush(std
4、in);switch(m)case 1:printf(n=该系统拥有%d名学生!nn,head-date.number); p=head-t姓名t学号t性别t数学t英语tc语言t综合nn printf(t%st%dt%st%dt%dt%dt%dndate.name,p-date.number,p-date.sex,p-date.math, p-date.eglish,p-date.clanguge,p-date.average); p=p-case 2:请输入查找姓名! gets(N); fflush(stdin);t姓名t学号t性别t数学t英语tc语言t综合n你要查的学生不存在!case 3
5、:请输入查找学号! scanf(if(p-case 4:n=1;return 1;int range(unit *head)/排序 unit *p=head,*q=head-int n,i,m=head-date.number;*nttt1.按学号t2.按成绩nn请选择操作!nn); fflush(stdin);if(q=NULL)无学生可排序!switch(n)for(i=0;iwhile(q-next)if(q-date.average)next-date.average) p-next=q- p=p- q-q=q-=m;i+)/按学号排序date.number)date.number)排
6、序成功!void menu()n* 主菜单 *nttt1.新建系统t2.添加学生nttt3.删除学生t4.查看信息nttt5.排列顺序t6.读取信息nttt7.保存信息t8.退出系统nint save(unit *head)/保存 FILE *fp; p=head;if(fp=fopen(d:学生,wb+)=NULL)保存失败!fwrite(&(p-date),sizeof(student),1,fp); p=p-保存成功! fclose(fp);unit* read()/读入系统学生信息int i; unit *p,*q,*head;if(head=(unit*)malloc(sizeof(
7、unit)=NULL)开辟空间失败! exit(1); head- q=head;rbprintf( fread(&head-i+)读值失败! q-return head;void main()int m=0,n, i; unit *head;*nnttt* 欢迎使用学生成绩管理系统 * nntttttttt编译员:吹吹风nn正在读取系统信息.nif(head=read()=0)是否新建?ttt是(1)tt否(2)ni);if(i=1) head=build();elseif(i=2) exit(1);信息导入成功!while(m=0) menu(); head=build();add(head);deletion(head);display(head);case 5: range(head);case 6:head=read();if(head!=0) printf(读取存盘成功!case 7:save(head);case 8:m=1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1