同济大学c++复习文件管理系统开发案例.ppt

同济大学c++复习文件管理系统开发案例.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
同济大学c复习文件管理系统开发案例

8、count函数的设计 分析: 该函数的功能是对学生成绩表的统计,统计的内容可以很多,包括每门课程和总分的最高最低分、包括各分数段的人数等,也适宜设计成二级菜单的形式供用户选择,请大家自行完善。本例中为简单起见,只实现了按分数段统计人数的功能。 void count(student stu[],int len) { int i,j,pa,pb,pc,pd,pe; for(i=0;i3;i++) { pa=pb=pc=pd=pe=0; for(j=0;jlen;j++) if(stu[j].s[i]=90) pa++; else if(stu[j].s[i]=80) pb++; else if(stu[j].s[i]=70) pc++; else if(stu[j].s[i]=60) pd++; else pe++; if(i==0) cout语文:endl; else if(i==1) cout数学:endl; else cout英语:endl; cout\t优:pa\t良:pb\t中:pc\t cout及格:pd\t不及格:peendl; } cout按任意键返回!endl; getchar(); } 思考:若不在该函数内部输出统计结果,而是通过一个数组参数存放统计结果,该函数如何修改? 9、sort函数的设计 设计思路: 该函数的功能是对学生成绩表按条件排序,排序的条件可以是学号、成绩等,也适宜设计成二级菜单的形式供用户选择,请大家自行完善。本例中为简单起见,只实现了按总分由高到低排序的功能,采用冒泡法进行排序。 void sort(student stu[],int len) { int i,j,totalf,totalb;//totalf、totalb分别代表前后相邻两个学生的总分 for(i=0;ilen-1;i++) for(j=0;jlen-1-i;j++) { totalf=stu[j].s[0]+stu[j].s[1]+stu[j].s[2]; totalb=stu[j+1].s[0]+stu[j+1].s[1]+stu[j+1].s[2]; if(totalftotalb ) { student t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } } display(stu,len); cout按任意键返回endl; getchar(); } 10、save函数的设计 分析: 该函数实现的是将存储于结构数组中的学生记录写入磁盘文件的功能。对结构数组适宜选择块读写。函数中注意对文件正确打开与否的判别、对读写成功与否的不同提示等等。 void save(student stu[],int len) { FILE *fp; fp=fopen(c:\\student,wb); if(fp==NULL) { cout\n文件打开失败,按任意键返回!\n; getchar(); return; } for(int i=0;ilen;i++) fwrite(stu[i],sizeof(student),1,fp); if(len0) { cout\n保存成功,文件中记录数为:lenendl; cout按任意键继续endl; getchar(); } else { system(cls); cout无记录被保存,按任意键继续\n; getchar(); } fclose(fp); } 11、readfile函数的设计 分析: 函数实现从磁盘文件读学生数据到结构数组的功能。对结构数组选择块读写。设计中两个关键点: 因学生表的初始长度取决于文件中的记录数,所以读文件的过程中要记录下学生记录的总数,作为函数的返回值提供给其它操作使用。 因数据可从文件读也可从键盘输入,所以以读的方式打开一个可能存在也可能不存在的文件应选用“ab+”方式。 int readfile(student stu[]) { FILE *fp; int i=0,len; fp=fopen(c:\\student,ab+ ); if(fp==NULL) { cout无法打开文件 student\n; exit(0); } while(!feof(fp)) { if(fread(stu[i],sizeof(student),1,fp)==1) i++;

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档