1、unit* build()/建立链表并返回指针unit *p;if(p=(unit*)malloc(sizeof(unit)=NULL) printf(=初始化失败!); return 0; else p-next=NULL; p-date.number=0;/头结点存放学生人数 printf(初始化成功!n return p; void add(unit *head)/增加学生unit *p,*q;int m,n=0;q=head-next;p=(unit*)malloc(sizeof(unit);printf(请输入新生姓名! gets(p-date.name);fflush(stdin)
2、;请输入学号!while(n=0)scanf(%d,&m);if(q=NULL) n=1;while(q)if(q-date.number=m) printf(你输入的学号与已有同学的学号相同,请重新输入! q=head- break; else q=q- if(q=NULL) n=1; p-date.number=m;请输入性别!gets(p-date.sex);请输入数学成绩nscanf(date.math=m;请输入英语成绩ndate.eglish=m; printf(请输入c语言成绩ndate.clanguge=m;date.average=(p-date.math+p-date.eg
3、lish+p-date.clanguge);head-next=p;next=q;date.number+;void deletion(unit *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-;printf(删除%s成功!,p-free(p);break;elsep=p-q=q-if(p=NULL)你要删除的学生不存在,删除失败!int disp
4、lay(unit *head)/显示学生信息printf(系统无学生! return 0;*n请选择你的操作!ttt1.显示所有t2.按姓名查找nttt3.按学号查找t4.返回主菜单nfflush(stdin);switch(m)case 1:printf(n=该系统拥有%d名学生!nn,head-date.number); p=head- printf(t姓名t学号t性别t数学t英语tc语言t综合nn while(p) printf(t%st%dt%st%dt%dt%dt%dndate.name,p-date.number,p-date.sex,p-date.math, p-date.egl
5、ish,p-date.clanguge,p-date.average); p=p- break;case 2:请输入查找姓名! gets(N); fflush(stdin); while(p) if(strcmp(p-t姓名t学号t性别t数学t英语tc语言t综合n break; else if(p=NULL)你要查的学生不存在! case 3: printf(请输入查找学号! scanf( p=head- if(p- case 4:n=1;break;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) printf(无学生可排序!return 0;switch(n)case 2:for(i=0;i while(q-next) if(q-date.average)next-date.average) p-next=q- p=p- q- elseq=q- break; case 1:=m;i+)/按学号排序nex
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1