1、 tttt3 按一门课成绩顺序排序n tttt4 按一门课成绩降序排序n tttt5 返回上级菜单n tttt6 返回主系统n/按某门课成绩排序菜单void menupx3() int i; for(i=1;i=n;i+)*%d 按科目%d的成绩排序n,i,i);/学生信息维护菜单void menuxxwh()nnnttt*学生信息维护*n ntttt1 显示所有学生信息n tttt2 计算每个学生的总分和平均分n tttt3 按学号查找一个同学n tttt4 按姓名查找一个同学n tttt5 按学号删除一个同学的信息n tttt6 按姓名删除一个同学的信息n tttt7 添加一个同学的信息n
2、 tttt8 修改一个同学的信息n tttt9 返回上级菜单n tttt10 返回主系统n/链表link *creat()link *head,*p;int i,j=0;FILE *fp1;head=NULL;p=(link *)malloc(sizeof(link);if(p=NULL) printf(申请内存出错! else head=p;已正确读取文件n,m,n);fp1=fopen(输入.txt,rif(fp1=NULL)读取文件失败!while(jnumber,p-name,p-sex);for(i=0;n;%dscorei);next=(link *)malloc(sizeof(l
3、ink);if(p-next=NULL) if(j=m) p-next=NULL; p=p-next;fclose(fp1);return head; /信息输入到文件void fscan(link *head)FILE *fp;link *t;int i,j;t=head;fp=fopen(输出.txtw+if(fp=NULL)文件处理错误!elsefprintf(fp,学号 姓名 性别for(j=1;jnumber,t-name,t- %4dt=t-fclose(fp);信息已写入文件!/*/链表复制link *copcreat(link *head)link *p,*q,*h,*t=NU
4、LL;int i;p=head;h=NULL;q=(link *)malloc(sizeof(link);if(q=NULL) h=q;while(p!q-ave=p-ave;number=p-number; for(i=0; q-scorei=p-scorei; sum=p-sum;strcpy(q-name);sex,p-if(q- p=p- t=q; q=q- t- return h;*/显示学生信息void print(link *head)link *t,*h;t=h=head; *学生信息/计算每个同学的总分、平均分link *sum(link *head) link *p; p=
5、head; while(p! p-sum=0;ave=0;sum+=p-sum/n;/输出成绩、总分、平均分void print1(link *head)*学生成绩和总分 总分 平均分n %.2fsum);ave);/排序/按总分顺序排序link *sumsxpx(link *head)link *p,*q,*temp; temp=(link *)malloc(sizeof(link); for(p=head;p!=NULL;p=p-next) for(q=p-q!q=q- if(p-sumsum) temp- temp- temp- strcpy(temp- p-sum=q-ave=q-nu
6、mber=q- for(i=0; p-scorei=q- strcpy(p-name,q-sex,q- q-sum=temp-ave=temp-number=temp- q-scorei=temp- strcpy(q-name,temp-sex,temp- /按总分降序排序link *sumjxpx(link *head)sumscorea-1)/按一门课降序排序link *scorejxpx(link *head)scorea-1 if(x=h-number) t=h; break;return t;/按姓名查找一个同学link *findxm(link *head) char str10;
7、 link *h,*t=NULL;请输入学生的姓名n getchar(); gets(str); for(h=head; if(strcmp(h-name,str)=0)/按学号删除一个同学link *delxh(link *head)int key,k=0;link *h,*t,*p;h=t=p=head;请输入要删除的学生的学号:key);for(; k+; if(k2) t=t- if(key=p-number)&(k=1) h=p- else if(key=p-number&k1) next=p- else if(key=p- t=NULL;return h;/按姓名删除一个同学lin
8、k *delxm(link *head)int k=0;char str10;请输入要删除的学生的姓名:getchar();gets(str); if(strcmp(p-name,str)=0)& else if(strcmp(p-name,str)=0& else if(strcmp(p-/添加一个学生信息link *add(link *head)link *h,*h1;int i,k=0;h1=(link *)malloc(sizeof(link);请输入要添加学生的信息:学号 姓名 性别 ,i+1);h1-number,h1-name,h1- h1-next=head; h=h1;/修改一个同学的信息link *xg(link *t)link *p=t;请输入这个同学的所有信息:return p;/主函数main()int a,b,c,i,j;link *h,*t,*d;link *f,*p;L:nnnnnnttt*欢迎使用学生信息管理系统*nnntttt 制作人:nn tttt请输入学生数和科目数:%d%dm,&n);H:system(cls menu();while(1)switch(a) case 1: h=creat(); break; case 2: print(h); break; case 3: system(c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1