




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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设计目的与要求 P42总体设计 P43详细
4、设计 P53.1功能模块设计 P53.1.1 XX功能模块(可选)P53.1.2 丫丫功能模块(可选)P63.1.3 ZZ功能模块(可选)P73.2数据结构设计 P84调试分析 P94.1 结构体 P94.2 链表 P115遇到的问题及解决方法分析 P126总结 P137源文件 P137.1 链表 P137.2 结构体 P281、目的与要求一 目的: 编制一程序实现对学生成绩的管理,让自己既动手又动脑, 独立实践, 将课本上 的理论知识和实际应用问题进行有机结合, 锻炼自己分析、 解决实际问题的能力, 提高自身 项目开发及程序调试能力。二 要求:1整个系统均用C 语言实现;2、利用指针、结构体
5、、链表来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询(查询时可实现按姓名查询、按学号查询)、删除、排序、 插入,保存、读取基本功能;4、系统的各个功能模块都用函数的形式来实现;5、学生信息数据要以文件的形式保存, 能实现学生信息数据的维护。 此模块包括子模块有: 增加学生信息、删除学生信息、修改学生信息;6、 可以输入任意的一个课程名(如数学)和一个分数段(如60-70 ),统计出在此分数段的 学生情况;7、能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果;8、可自动增加新功能模块;9、可以将学生信息从文件中读取出来。2 总体设计1、主函数 main()利用 i
6、f-else,While 循环语句和 switch() 实现各函数的调用,系统根据输入的数字选项来 调用相应的函数。2、菜单选择函数 void menu();这是一个无参函数, 主要实现“功能选择”的界面, 在这个界面里有显示系统的 13 大功能, 根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任0键回到主界面也要通过这个函数提示来实现!3、自定义函数 void printstart() 、void Wrong()、void Nofind() 、void printc()、voidprin te(Node *p)用void Wrong()来提示输入错误,用void Nofind(
7、)提示没有找到学生资料,用void printc()来输出中文,用 void prin te(Node *p) 来输出中文。3详细设计3.1功能模块设计3.1.1排序数学成绩功能模块函数 void Maths(Link I)该函数用于对数学成绩进行降序,II=(L in k)malloc(sizeof(Node)用于做新的链表连接,如果原链表为空的话,返回;不为空的话,p=I- next ;建立接点用于保存信息,对指定链表地址进行排序。流程图如图所示:3.1.2显示学生资料功能模块函数 void Disp(Link l)该函数负责显示学生资料,这是一个不返回值函数。算法:先将p结点的指针指向第
8、一个结点,将 p结点(即第一个结点)的数据输出。然后再将 p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复 执行此步聚直到p指针指向NULL为止。流程图如图所示:提示没有P指向下一结点 p=p-n ext资料可以输出p指向的结点,即学生信息显示 returnp指向下一结点 p=p-next3.1.3删除资料功能模块函数 void Del(Link I)该函数用于有选择地删除学生资料,如果原来的链表为空的话,会返回;不为空的话,选择用按哪种类型删除,如果按学号删除,就输入学号,后判断是否取得地址, 取得就执行删除;按名字删除就输入名字,运行同学号一样。流程图如
9、图所示:3.2 数据结构设计 (可选)一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据) 。一个结构 体变量的指针就是该变量所占据的内存段起始地址。 可以设一个指针变量, 用来指向一结构 体变量, 此时指针变量的值是结构体的起始地址。 指针量变也可以用来指向一结构体数组中 的元素。struct studentchar num10;/* 学号 */char name20;char sex4;int cgrade;int mgrade;int egrade;int totle;int ave;char neartime10;/* 最近更新时间 */;typedef struct
10、 nodestruct student data;struct node *next;Node,*Link;6 总结经过一个多星期的 C 语言课程设计,感觉自己收获不少! 首先是:要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面 我很了很多的时间看课本,使 C 语言的知识强化了不少。 其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回 值函数和不返回值函数两者在主函数中的调用是不同的更重要的是,这次课程设计虽然花了我不少时间, 但正是这些时间, 让我见识到 了 C 语言的重要性。这个学生成绩管理系统都是在自己知识范围内完成的,所 以界面清晰简单,可能不是很好看
11、,但绝对实用! 从这里我也得到一个体会, 做一个程序, 或者开发一个软件, 应该着重从它的后 台制作入手,不能做出一个中看不中用的程序或者软件。 相信这次的课程设计使我的 C 语言知识扎实了很多。 由于这是第一次进行设计,写文档,难免会写得不好!7 源程序7. 1 链表#include stdio.h#include stdlib.h#include string.hint shoudsave=0; /* */ struct studentchar num10;/* 学号 */char name20;char sex4;int cgrade;int mgrade;int egrade;int
12、totle;int ave;char neartime10;/* 最近更新时间 */;typedef struct nodestruct student data;struct node *next;Node,*Link;void menu()printf( * *); printf(t1 printf(t3 printf(t5 printf(t7 printf(t9登记学生资料 查询学生资料 显示学生资料 排序语文成绩 排序英语成绩ttttt2删除学生资料 修改学生资料 统计学生资料 排序数学成绩n); n); n); n);ttttt4ttttt6ttttt8ttttt10 选出分段分数
13、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(Node *p)/* 本函数用于输出英文 */printf(%-12
14、s%st%st%dt%dt%dt %dt %dn,p-data.num,,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(strcmp(r-data.num
15、,findmess)=0) return r;r=r-next;else if(strcmp(nameornum,name)=0) /* 按姓名查询 */ r=l-next; while(r!=NULL) if(strcmp(,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( 请你输入
16、学号 (以 0返回上一级菜单 :); 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-da
17、);getchar();printf( 请你输入性别 :); 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-d
18、ata.ave=p-data.totle / 3;/* 信息输入已经完成 */ p-next=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,f
19、indmess,num);if(p)printf(tttt 查找结果 n);printstart();printc();printe(p);printstart();elseNofind();else if(sel=2) /* 姓名 */printf( 请你输入要查找的姓名 :); scanf(%s,findmess);p=Locate(l,findmess,name);if(p)printf(tttt 查找结果 n);printstart();printc();printe(p);printstart();elseNofind();elseWrong();void Del(Link l) /
20、* 删除 */ int sel;Node *p,*r;char findmess20; 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)r=l;while(r-next!=p) r=r-next;r-next=p-next;free(p);printf(n= 提示 : 该学生已经成功删除 !n);
21、 shoudsave=1; else Nofind();else if(sel=2)printf( 请你输入要删除的姓名 :); scanf(%s,findmess);p=Locate(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;elseNofind();elseWrong();void Modify(Link l)Node *p;char findmess20;if(!l-next)printf(n= 提
22、示 : 没有资料可以修改 !n);return;printf( 请你输入要修改的学生学号 :); scanf(%s,findmess);p=Locate(l,findmess,num);if(p)printf( 请你输入新学号 (原来是 %s):,p-data.num); scanf(%s,p-data.num);printf( 请你输入新姓名 (原来是 %s):,); scanf(%s,);getchar();printf( 请你输入新性别 (原来是 %s):,p-data.sex); scanf(%s,p-data.sex);printf( 请你
23、输入新的语文成绩 (原来是 %d 分 ):,p-data.cgrade); scanf(%d,&p-data.cgrade);getchar();printf( 请你输入新的数学成绩 (原来是 %d 分 ):,p-data.mgrade); scanf(%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-da
24、ta.totle/3;printf(n= 提示 : 资料修改成功 !n); shoudsave=1;elseNofind();void Disp(Link l)int count=0;Node *p; p=l-next;if(!p)printf(n= 提示 : 没有资料可以显示 !n); 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,*p
25、a; /* 用于指向分数最高的接点 */ 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.mgrade=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
26、;printf( 统计结果 n);printf( 总分最高者 :t%s %d 分 n,,pt-data.totle); printf( 平均分最高者 :t%s %d 分 n,,pa-data.ave);printf( 英语最高者 :t%s %d 分 n,,pe-data.egrade); printf( 数学最高者 :t%s %d 分 n,,pm-data.mgrade); printf( 语文最高者 :t%s %d 分 n,,pc-data.cgrade); printst
27、art();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(Node); /* 新建接点用于保存信息 */ s-data=p-data;s-next=NULL;rr=ll;while(rr-next!=NULL & rr-next-data.egrade=p-dat
28、a.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); /* 用于做新的连表 */ ll-next=NULL;if(l-next=NULL)printf(n= 提示 : 没有资料可以排序 !n); return
29、;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);l-next=ll-next; printf(n= 提示 : 排序已经完成 !n);void English(Lin
30、k 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 & rr-next-data.cgrade=p-data.cgra
31、de) 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.英语 );scanf(%d,&i);if(i=1)pr
32、intf( 请输入筛选分数的上限: ); 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)总分printf( 学
33、号 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)ne
34、xt;elseWrong();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+;elseflag=0;break;if(flag).)n,count);printf(n=提示:文件保存成功.(有d条记录已经保存shoudsave=0;fclose(fp);void
35、main()Link l;/* 连表 */FILE *fp; /* 文件指针 */int sel;char ch;char jian;int count=0;Node *p,*r;printf(tttt 学生成绩管理系统 n ttt 06 自动化 2 班 蔡晓庆 3106000849ttttn); 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();
36、printf(n= 提示 : 资料已经改动 ,是否将改动保存到文件中 (y/n)?n); scanf(%c,&ch);if(ch=y|ch=Y)Save(l); 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;/* 修改学生 */
37、 case 5:Disp(l);goto loop;break;/* 显示学生 */ case 6:Tongji(l);goto loop;break;/* 统计学生 */ case 7:Chinese(l);goto 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;/*
38、保存学生 */case 12:printf(ttt= 帮助信息 =n);goto loop;break; default: Wrong();getchar();break;7. 2结构体 #include #include #include struct studentchar 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();
39、void charu(); void tongji();void xiugai();void shanchu(); void paixu();void tuichu();FILE *fp;/ 指向学生信息的文件指针void main() loop:printf(tt*ttn);printf(tt欢迎使用学生信息管理系统ttn);printf(ttttn);printf(tt制作人:电力 4史素芬 ttn);printf(ttttn);printf(ttttn); tongji();printf(tt*ttn);printf(tt1. 录入学生成绩 n);printf(tt2. 排序学生成绩 n
40、);printf(tt3. 统计输出成绩 n);printf(tt4. 查询学生成绩 n);printf(tt5.插入学生成绩n);printf(tt6.修改学生成绩n);printf(tt7.删除学生成绩n);printf(tt8.退出管理系统n);int n;printf( 请选择功能 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(
41、tt 统计输出学生成绩 nn);goto loop; case 4: printf(tt 查询学生成绩 nn); chaxun();goto loop; case 5: printf(tt 插入学生成绩 nn); charu();goto loop; case 6: printf(tt 修改学生成绩 nn); xiugai();goto loop; case 7: printf(tt 删除学生成绩 nn); shanchu();goto loop; case 8: printf(tt 程序退出。 t 谢谢使用 !nn); exit(0);default:printf( 您的输入有误,请重试!
42、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 请输入第 %d 位学生的成绩 :n,i+1); printf( 班级 :);scanf(%s,stui.class_0);printf( 学号 :); scanf(%s,stui.num);printf( 姓名 :); scanf(%s,stui.nam
43、e);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,&stui.sport); stui.ave=(stui.c_prog+stui.eng+stui.math+stui.polity+stui.sport)/5;fp=fopen(stud.c,w);
44、 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+) fread(&stui,sizeof(struct student),1,fp);printf(n%-6s%-6s%-6s%-9.2f%-10.2f%-9.2f%-17.2f%-
45、9.2f%-6.2fn,stui.class_0, stui.num,,stui.math,stui.c_prog,stui.eng, stui.polity,stui.sport,stui.ave);fclose(fp);getchar();void paixu()loop:printf(t=1, printf(t=2, printf(t=3,C printf(t=4, printf(t=5, printf(t=6, printf(t=7, printf( 请输入你的选择 n); int t;平均成绩排序 =n); 高数成绩排序 =n);语言成绩排序 =n) 英语成绩排序
46、=n); 马克思经济学成绩排序 =n); 大学体育成绩排序 =n); 学号排序 =n);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=x;for(x=0;xz;x+)for(y=x+1;yz;y+) if(stux.avestuy.ave) temp=s
47、tux; 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_0, stux.num,,stux.math,stux.c_prog,stux.
48、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); fclose(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.math); printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程机械产业园建设项目规划设计方案
- 城市排水管网提标改造工程商业计划书
- 2025年中级经济师《知识产权》试题及答案
- 2025年放射科影像学诊断分析案例研究卷答案及解析
- 2025年传染病学院防控流行病学策略考核答案及解析
- 2025年营养科学科疾病营养支持方案评估答案及解析
- 上海完形填空真题及答案
- 2025年精神科精神障碍病例分析模拟考试答案及解析
- 2025年精神科常见精神疾病诊断与护理考核答案及解析
- 飞天临空课件
- 泛光夜景照明亮化工程项目实施的重点难点和解决方案
- 输血科三基培训课件
- 小区监控维修方案
- 塑料成型工艺课件
- 《西餐烹调基础》 课件 第六章 基础汤、基础少司和配菜制作
- 高血压 糖尿病 健康宣教
- 孕产妇增补叶酸培训课件
- 传奇类手游运营计划书
- 2024年云南文山交通运输集团公司招聘笔试参考题库含答案解析
- 新视野商务英语视听说(第三版)(下) Unit 1-电子教案
- 《高二化学反应原理》课件
评论
0/150
提交评论