C语言课程设计成绩管理系统11119.pdf

上传人:得****3 文档编号:83989693 上传时间:2023-03-31 格式:PDF 页数:61 大小:2.68MB
返回 下载 相关 举报
C语言课程设计成绩管理系统11119.pdf_第1页
第1页 / 共61页
C语言课程设计成绩管理系统11119.pdf_第2页
第2页 / 共61页
点击查看更多>>
资源描述

《C语言课程设计成绩管理系统11119.pdf》由会员分享,可在线阅读,更多相关《C语言课程设计成绩管理系统11119.pdf(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 一、课程设计的内容(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)信息查询:要求:查询时可实现按姓名查询、按学号查询(3)成绩统计:要求:A 输入任意的一个课程名(如数学)和一个分数段(如 60-70),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)(二)其它要求:(1)只能使用 C/C+语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图

2、形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档 二、课程设计的要求与数据 1、进一步掌握和利用 C 语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或 N-S 图表示算法;6、掌握书写程序设计开发文档的能力。三、课程设计应完成的工作 1、编写完成相应题目的程序;2、编写课程设计报告,课程设计报告的内容应包括以下 6 个部分:1)需求分析:包括设计题目、设计要求以及系统功能需求分析;2)总体设计:包括系统总体设计

3、框架和系统功能模块图;3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);5)总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;6)附录:主要源程序代码,含必要的注释。3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解 决问题、运行程序和回答教师提出的问题。目 录 1 设计目的与要求P4 2 总体设计P4 3 详

4、细设计P5 3.1 功能模块设计P5 3.1.1 XX 功能模块(可选)P5 3.1.2 YY 功能模块(可选)P6 3.1.3 ZZ 功能模块(可选)P7 3.2 数据结构设计P8 4 调试分析 P9 4.1 结构体P9 4.2 链表P11 5 遇到的问题及解决方法分析P12 6 总结P13 7 源文件P13 7.1 链表P13 7.2 结构体P28 1、目的与要求 一 目的:编制一程序实现对学生成绩的管理,让自己既动手又动脑,独立实践,将课本上的理论知识和实际应用问题进行有机结合,锻炼自己分析、解决实际问题的能力,提高自身项目开发及程序调试能力。二 要求:1、整个系统均用C语言实现;2、利

5、用指针、结构体、链表来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询(查询时可实现按姓名查询、按学号查询)、删除、排序、插入,保存、读取基本功能;4、系统的各个功能模块都用函数的形式来实现;5、学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息;6、可以输入任意的一个课程名(如数学)和一个分数段(如 60-70),统计出在此分数段的学生情况;7、能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果;8、可自动增加新功能模块;9、可以将学生信息从文件中读取出来。2 总体设计 1、主函数 main()利用

6、 if-else,While 循环语句和 switch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。2、菜单选择函数 void menu();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的 13大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任0键回到主界面也要通过这个函数提示来实现!3、自定义函数 void printstart()、void Wrong()、void Nofind()、void printc()、void printe(Node*p)用 void Wrong()来提示输入错误,用 void Nofind()提示没有

7、找到学生资料,用 void printc()来输出中文,用 void printe(Node*p)来输出中文。main()void Add(Link l)void Maths(Link l)void Qur(Link l)void English(Link l)void Del(Link l)void select(Link l)void Modify(Link l)void Save(Link l)void Disp(Link l)void menu()void Tongji(Link l)void printc()void Chinese(Link l)void printe(Node*p

8、)3 详细设计 3.1 功能模块设计 3.1.1 排序数学成绩功能模块 函数 void Maths(Link l)该函数用于对数学成绩进行降序,ll=(Link)malloc(sizeof(Node)用于做新的链表连接,如果原链表为空的话,返回;不为空的话,p=l-next;建立接点用于保存信 息,对指定链表地址进行排序。流程图如图所示:Link ll ll=(Link)malloc(sizeof(Node)用于做新的连表 l-next=NULL 是 否 没有资料可以 p=l-next 排序 while(p)return s=(Node*)malloc(sizeof(Node)rr=ll wh

9、ile(rr-next!=NULL&rr-next-data.mgrade=p-data.mgrade)是 rr-next=NULL 否 rr-next=s s-next=rr-next;rr-next=s p=p-next l-next=ll-next(排序完成)3.1.2 显示学生资料功能模块 函数 void Disp(Link l)该函数负责显示学生资料,这是一个不返回值函数。算法:先将 p 结点的指针指向第一个结点,将 p 结点(即第一个结点)的数据输出。然后再将 p 结点的指针指向 p 指针的的指针(即下一结点),将 p 结点(即第一结点)的数据输出。重复执行此步聚直到 p 指针指向

10、 NULL 为止。流程图如图所示:原来链表是否为空 是 否 提示没有 p 指向下一结点p=p-next 资料可以 输出 p 指向的结点,即学生信息 显示 return p 指向下一结点 p=p-next 3.1.3 删除资料功能模块 函数 void Del(Link l)该函数用于有选择地删除学生资料,如果原来的链表为空的话,会返回;不为空的话,选择用按哪种类型删除,如果按学号删除,就输入学号,后判断是否取得地址,取得就执行删除;按名字删除就输入名字,运行同学号一样。流程图如图所示:原链表是否为空 是 否 没有资料 1 按 1 学号还是 2 按名字?2 可以删除 输入你要删除的学号 输入你要删

11、除的名字 P 是否取得输入地址 P 是否取得输入地址 是 否 否 是 Return r 指向下一 Nofind()Nofind()r 指向下一 结点 结点 执行free(p)执行 free(p)3.2 数据结构设计(可选)一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。一个结构体变量的指针就是该变量所占据的内存段起始地址。可以设一个指针变量,用来指向一结构体变量,此时指针变量的值是结构体的起始地址。指针量变也可以用来指向一结构体数组中的元素。struct student char num10;/*学号*/char name20;char sex4;int cgrade;

12、int mgrade;int egrade;int totle;int ave;char neartime10;/*最近更新时间*/;typedef struct node struct student data;struct node*next;Node,*Link;6 总 结 经过一个多星期的 C 语言课程设计,感觉自己收获不少!首先是:要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本,使 C 语言的知识强化了不少。其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的 更重要的是,这次课程

13、设计虽然花了我不少时间,但正是这些时间,让我见识到了C 语言的重要性。这个学生成绩管理系统都是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。相信这次的课程设计使我的C 语言知识扎实了很多。由于这是第一次进行设计,写文档,难免会写得不好!7 源程序 7.1 链表#include stdio.h#include stdlib.h#include string.h int shoudsave=0;/*/struct student char num10;/*

14、学号*/char name20;char sex4;int cgrade;int mgrade;int egrade;int totle;int ave;char neartime10;/*最近更新时间*/;typedef struct node struct student data;struct node*next;Node,*Link;void menu()printf(*);printf(t1 登记学生资料ttttt2 删除学生资料n);printf(t3 查询学生资料ttttt4 修改学生资料n);printf(t5 显示学生资料ttttt6 统计学生资料n);printf(t7 排

15、序语文成绩ttttt8 排序数学成绩n);printf(t9 排序英语成绩ttttt10 选出分段分数n);printf(t11 保存学生资料ttttt12 帮助信息ttn);printf(t0 退出系统tttttttn);printf(*n);void printstart()printf(-n);void Wrong()printf(n=提示:输入错误!n);void Nofind()printf(n=提示:没有找到该学生!n);void printc()/*本函数用于输出中文*/printf(学号t 姓名t 性别 语文成绩 数学成绩 英语成绩 总分 平均分n);void printe(N

16、ode*p)/*本函数用于输出英文*/printf(%-12s%st%st%dt%dt%dt%dt%dn,p-data.num,p-data.name,p-data.sex,p-data.egrade,p-data.mgrade,p-data.cgrade,p-data.totle,p-data.ave);Node*Locate(Link l,char findmess,char nameornum)/*该函数用于定位连表中符合要求的接点,并返回该指针*/Node*r;if(strcmp(nameornum,num)=0)/*按学号查询*/r=l-next;while(r!=NULL)if(s

17、trcmp(r-data.num,findmess)=0)return r;r=r-next;else if(strcmp(nameornum,name)=0)/*按姓名查询*/r=l-next;while(r!=NULL)if(strcmp(r-data.name,findmess)=0)return r;r=r-next;return 0;void Add(Link l)/*增加学生*/Node*p,*r,*s;char num10;r=l;s=l-next;while(r-next!=NULL)r=r-next;/*将指针置于最末尾*/while(1)printf(请你输入学号(以0返回

18、上一级菜单:);scanf(%s,num);if(strcmp(num,0)=0)break;while(s)if(strcmp(s-data.num,num)=0)printf(=提示:学号为%s的学生已经存在,若要修改请你选择4 修改!n,num);printstart();printc();printe(s);printstart();printf(n);return;s=s-next;p=(Node*)malloc(sizeof(Node);strcpy(p-data.num,num);printf(请你输入姓名:);scanf(%s,p-data.name);getchar();pr

19、intf(请你输入性别:);scanf(%s,p-data.sex);getchar();printf(请你输入语文成绩:);scanf(%d,&p-data.cgrade);getchar();printf(请你输入数学成绩:);scanf(%d,&p-data.mgrade);getchar();printf(请你输入英语成绩:);scanf(%d,&p-data.egrade);getchar();p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;/*信息输入已经完成*/p-n

20、ext=NULL;r-next=p;r=p;shoudsave=1;void Qur(Link l)/*查询学生*/int sel;char findmess20;Node*p;if(!l-next)printf(n=提示:没有资料可以查询!n);return;printf(n=1 按学号查找n=2 按姓名查找n);scanf(%d,&sel);if(sel=1)/*学号*/printf(请你输入要查找的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p)printf(tttt 查找结果n);printstart();printc();p

21、rinte(p);printstart();else Nofind();else if(sel=2)/*姓名*/printf(请你输入要查找的姓名:);scanf(%s,findmess);p=Locate(l,findmess,name);if(p)printf(tttt 查找结果n);printstart();printc();printe(p);printstart();else Nofind();else Wrong();void Del(Link l)/*删除*/int sel;Node*p,*r;char findmess20;if(!l-next)printf(n=提示:没有资料

22、可以删除!n);return;printf(n=1 按学号删除n=2 按姓名删除n);scanf(%d,&sel);if(sel=1)printf(请你输入要删除的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n=提示:该学生已经成功删除!n);shoudsave=1;else Nofind();else if(sel=2)printf(请你输入要删除的姓名:);scanf(%s,findmess);p=Locate(

23、l,findmess,name);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n=提示:该学生已经成功删除!n);shoudsave=1;else Nofind();else Wrong();void Modify(Link l)Node*p;char findmess20;if(!l-next)printf(n=提示:没有资料可以修改!n);return;printf(请你输入要修改的学生学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p)printf(请

24、你输入新学号(原来是%s):,p-data.num);scanf(%s,p-data.num);printf(请你输入新姓名(原来是%s):,p-data.name);scanf(%s,p-data.name);getchar();printf(请你输入新性别(原来是%s):,p-data.sex);scanf(%s,p-data.sex);printf(请你输入新的语文成绩(原来是%d 分):,p-data.cgrade);scanf(%d,&p-data.cgrade);getchar();printf(请你输入新的数学成绩(原来是%d 分):,p-data.mgrade);scanf(%

25、d,&p-data.mgrade);getchar();printf(请你输入新的英语成绩(原来是%d 分):,p-data.egrade);scanf(%d,&p-data.egrade);p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;printf(n=提示:资料修改成功!n);shoudsave=1;else Nofind();void Disp(Link l)int count=0;Node*p;p=l-next;if(!p)printf(n=提示:没有资料可以显示!n);

26、return;printf(tttt 显示结果n);printstart();printc();printf(n);while(p)printe(p);p=p-next;printstart();printf(n);void Tongji(Link l)Node*pm,*pe,*pc,*pt,*pa;/*用于指向分数最高的接点*/Node*r=l-next;if(!r)printf(n=提示:没有资料可以统计!n);return;pm=pe=pc=pt=pa=r;while(r!=NULL)if(r-data.cgrade=pc-data.cgrade)pc=r;if(r-data.mgrad

27、e=pm-data.mgrade)pm=r;if(r-data.egrade=pe-data.egrade)pe=r;if(r-data.totle=pt-data.totle)pt=r;if(r-data.ave=pa-data.ave)pa=r;r=r-next;printf(-统计结果-n);printf(总分最高者:t%s%d 分n,pt-data.name,pt-data.totle);printf(平均分最高者:t%s%d 分n,pa-data.name,pa-data.ave);printf(英语最高者:t%s%d 分n,pe-data.name,pe-data.egrade);

28、printf(数学最高者:t%s%d 分n,pm-data.name,pm-data.mgrade);printf(语文最高者:t%s%d 分n,pc-data.name,pc-data.cgrade);printstart();void Chinese(Link l)Link ll;Node*p,*rr,*s;ll=(Link)malloc(sizeof(Node);/*用于做新的连表 */ll-next=NULL;if(l-next=NULL)printf(n=提示:没有资料可以排序!n);return;p=l-next;while(p)s=(Node*)malloc(sizeof(Nod

29、e);/*新建接点用于保存信息*/s-data=p-data;s-next=NULL;rr=ll;while(rr-next!=NULL&rr-next-data.egrade=p-data.egrade)rr=rr-next;if(rr-next=NULL)rr-next=s;else s-next=rr-next;rr-next=s;p=p-next;free(l);l-next=ll-next;printf(n=提示:排序已经完成!n);void Maths(Link l)/*对数学排序*/Link ll;Node*p,*rr,*s;ll=(Link)malloc(sizeof(Node

30、);/*用于做新的连表*/ll-next=NULL;if(l-next=NULL)printf(n=提示:没有资料可以排序!n);return;p=l-next;while(p)s=(Node*)malloc(sizeof(Node);/*新建接点用于保存信息*/s-data=p-data;s-next=NULL;rr=ll;while(rr-next!=NULL&rr-next-data.mgrade=p-data.mgrade)rr=rr-next;if(rr-next=NULL)rr-next=s;else s-next=rr-next;rr-next=s;p=p-next;free(l

31、);l-next=ll-next;printf(n=提示:排序已经完成!n);void English(Link l)/*对英语排序*/Link ll;Node*p,*rr,*s;ll=(Link)malloc(sizeof(Node);/*用于做新的连表*/ll-next=NULL;if(l-next=NULL)printf(n=提示:没有资料可以排序!n);return;p=l-next;while(p)s=(Node*)malloc(sizeof(Node);/*新建接点用于保存信息*/s-data=p-data;s-next=NULL;rr=ll;while(rr-next!=NULL

32、&rr-next-data.cgrade=p-data.cgrade)rr=rr-next;if(rr-next=NULL)rr-next=s;else s-next=rr-next;rr-next=s;p=p-next;free(l);l-next=ll-next;printf(n=提示:排序已经完成!n);void select(Link l)int i;int j,k;Node *pc =l;/用于指向分数最高的接点 Node *r=l-next;if(!r)printf(n=提示:没有资料可以筛选!n);return ;printf(输入课程名 1.语文 2.数学 3.英语);scan

33、f(%d,&i);if(i=1)printf(请输入筛选分数的上限:);scanf(%d,&j);printf(请输入筛选分数的下限:);scanf(%d,&k);printf(-筛选结果-n);printf(学号t 姓名t 性别 语文成绩 数学成绩 英语成绩 总分 平均分n);printstart();while(r!=NULL)if(kdata.egrade)&(r-data.egrade)next;else if(i=2)printf(请输入筛选分数的上限:);scanf(%d,&j);printf(请输入筛选分数的下限:);scanf(%d,&k);printf(-筛选结果-n);pr

34、intf(学号t 姓名t 性别 语文成绩 数学成绩 英语成绩 总分 平均分n);printstart();while(r!=NULL)if(kdata.mgrade)&(r-data.mgrade)next;else if(i=3)printf(请输入筛选分数的上限:);scanf(%d,&j);printf(请输入筛选分数的下限:);scanf(%d,&k);printf(-筛选结果-n);printf(学号t 姓名t 性别 语文成绩 数学成绩 英语成绩 总分 平均分n);printstart();while(r!=NULL)if(kdata.cgrade)&(r-data.cgrade)n

35、ext;else Wrong();void Save(Link l)FILE*fp;Node*p;int flag=1,count=0;fp=fopen(c:student,wb);if(fp=NULL)printf(n=提示:重新打开文件时发生错误!n);exit(1);p=l-next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p-next;count+;else flag=0;break;if(flag)printf(n=提示:文件保存成功.(有%d 条记录已经保存.)n,count);shoudsave=0;fclose(fp);void m

36、ain()Link l;/*连表*/FILE*fp;/*文件指针*/int sel;char ch;char jian;int count=0;Node*p,*r;l=(Node*)malloc(sizeof(Node);l-next=NULL;r=l;fp=fopen(C:student,wb);loop:menu();printf(请你选择操作:);scanf(%d,&sel);if(sel=0)if(shoudsave=1)getchar();printf(n=提示:资料已经改动,是否将改动保存到文件中(y/n)?n);scanf(%c,&ch);if(ch=y|ch=Y)Save(l)

37、;printf(n=提示:你已经退出系统,再见!n);return;switch(sel)case 1:Add(l);goto loop;break;/*增加学生*/case 2:Del(l);goto loop;break;/*删除学生*/case 3:Qur(l);goto loop;break;/*查询学生*/case 4:Modify(l);goto loop;break;/*修改学生*/case 5:Disp(l);goto loop;break;/*显示学生*/case 6:Tongji(l);goto loop;break;/*统计学生*/case 7:Chinese(l);go

38、to loop;break;/*语文排序*/case 8:Maths(l);goto loop;break;/*数学排序*/case 9:English(l);goto loop;break;/*英语排序*/case 10:select(l);goto loop;break;/*选择分段分数*/case 11:Save(l);goto loop;break;/*保存学生*/case 12:printf(ttt=帮助信息=n);goto loop;break;default:Wrong();getchar();break;7.2 结构体#include#include#include struc

39、t student char class_020;char num 20;char name20;float math;float c_prog;float eng;float polity;float sport;float ave;stu1000;char j,h;/*函数声明*/void luru();void chaxun();void charu();void tongji();void xiugai();void shanchu();void paixu();void tuichu();FILE*fp;/指向学生信息的文件指针 void main()loop:printf(tt*t

40、tn);printf(tt 欢迎使用学生信息管理系统 ttn);printf(tt ttn);printf(tt 制作人:电力 4 史素芬 ttn);printf(tt ttn);printf(tt ttn);printf(tt*ttn);printf(tt1.录入学生成绩 n);printf(tt2.排序学生成绩 n);printf(tt3.统计输出成绩 n);printf(tt4.查询学生成绩 n);printf(tt5.插入学生成绩 n);printf(tt6.修改学生成绩 n);printf(tt7.删除学生成绩 n);printf(tt8.退出管理系统 n);int n;printf

41、(请选择功能nn);scanf(%d,&n);system(cls);switch(n)case 1:printf(tt 录入学生成绩nn);luru();goto loop;case 2:printf(tt 排序学生成绩nn);paixu();goto loop;case 3:printf(tt 统计输出学生成绩nn);tongji();goto loop;case 4:printf(tt 查询学生成绩nn);chaxun();goto loop;case 5:printf(tt 插入学生成绩nn);charu();goto loop;case 6:printf(tt 修改学生成绩nn);x

42、iugai();goto loop;case 7:printf(tt 删除学生成绩nn);shanchu();goto loop;case 8:printf(tt 程序退出。t 谢谢使用!nn);exit(0);default:printf(您的输入有误,请重试!nn);fflush(stdin);goto loop;printf(n 按任意键返回.);void luru()int i,m;FILE*fp;printf(请输入学生人数:);scanf(%d,&m);if(m1000|m0)printf(n 错误nn);return;else for(i=0;im;i+)printf(n 请输入

43、第%d 位学生的成绩:n,i+1);printf(班级:);scanf(%s,stui.class_0);printf(学号:);scanf(%s,stui.num);printf(姓名:);scanf(%s,stui.name);printf(高等数学成绩:);scanf(%f,&stui.math);printf(C 程序设计成绩:);scanf(%f,&stui.c_prog);printf(大学英语成绩:);scanf(%f,&stui.eng);printf(马克思主义政治经济学成绩:);scanf(%f,&stui.polity);printf(大学体育成绩:);scanf(%f,

44、&stui.sport);stui.ave=(stui.c_prog+stui.eng+stui.math+stui.polity+stu i.sport)/5;fp=fopen(stud.c,w);for(i=0;im;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(n 打开文件失败nnn);fclose(fp);fp=fopen(stud.c,r);printf(n 已录入的学生成绩:n);printf(n班级 学号 姓名 高等数学 C程序设计 大学英语 马克思主义经济学 大学体育 平均分n);for(i=0;im;i+)

45、fread(&stui,sizeof(struct student),1,fp);printf(n%-6s%-6s%-6s%-9.2f%-10.2f%-9.2f%-17.2f%-9.2f%-6.2fn,stui.class_0,stui.num,stui.name,stui.math,stui.c_prog,stui.eng,stui.polity,stui.sport,stui.ave);fclose(fp);getchar();void paixu()loop:printf(t=1,平均成绩排序=n);printf(t=2,高数成绩排序=n);printf(t=3,C 语言成绩排序=n);

46、printf(t=4,英语成绩排序=n);printf(t=5,马克思经济学成绩排序=n);printf(t=6,大学体育成绩排序=n);printf(t=7,学号排序=n);printf(请输入你的选择n);int t;scanf(%d,&t);if(t=1)FILE*fp;int x,y,z;struct student temp;if(fp=fopen(stud.c,r)=NULL)printf(n 无法打开文件nnn);return;for(x=0;fread(&stux,sizeof(struct student),1,fp)!=0;x+)printf(n);fclose(fp);z

47、=x;for(x=0;xz;x+)for(y=x+1;yz;y+)if(stux.avestuy.ave)temp=stux;stux=stuy;stuy=temp;printf(n 排序后的数据:n);printf(n班级 学号 姓名 高等数学 C程序设计 大学英语 马克思主义经济学 大学体育 平均分n);fp=fopen(stud.c,w);for(x=0;xz;x+)fwrite(&stux,sizeof(struct student),1,fp);printf(n%-6s%-6s%-6s%-9.2f%-10.2f%-9.2f%-17.2f%-9.2f%-6.2fn,stux.class

48、_0,stux.num,stux.name,stux.math,stux.c_prog,stux.eng,stux.polity,stux.sport,stux.ave);printf(n);getchar();fclose(fp);return;else if(t=2)FILE*fp;int x,y,z;struct student gaoshu;if(fp=fopen(stud.c,r)=NULL)printf(n 无法打开文件nnn);return;for(x=0;fread(&stux,sizeof(struct student),1,fp)!=0;x+)printf(n);fclos

49、e(fp);z=x;for(x=0;xz;x+)for(y=x+1;yz;y+)if(stux.mathstuy.math)gaoshu=stux;stux=stuy;stuy=gaoshu;printf(n 排序后的数据:n);printf(n 班级 学号 姓名 高等数学 n);fp=fopen(stud.c,w);for(x=0;xz;x+)fwrite(&stux,sizeof(struct student),1,fp);printf(n%-6s%-6s%-6s%-9.2fn,stux.class_0,stux.num,stux.name,stux.math);printf(n);get

50、char();fclose(fp);return;else if(t=3)FILE*fp;int x,y,z;struct student yuyan;if(fp=fopen(stud.c,r)=NULL)printf(n 无法打开文件nnn);return;for(x=0;fread(&stux,sizeof(struct student),1,fp)!=0;x+)printf(n);fclose(fp);z=x;for(x=0;xz;x+)for(y=x+1;yz;y+)if(stux.c_progstuy.c_prog)yuyan=stux;stux=stuy;stuy=yuyan;pr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁