实验11文件.docx

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

实验11.文件---10101 学生成绩管理(文件)1.?【问题描述】学生成绩管理,每个学生的数据包括学号、姓名、3门课的成绩,数据保存在文件中(内存中只保留一个学生的信息,处理后写回文件)。分别用若干个函数实现如下各操作,根据选择执行相应功能。?????????????????????? 1) 输入学生成绩;???????????????????????2) 给出学号或姓名,找到该学生的信息。???????????????????????3) 给出学号或姓名,修改某学生的信息。???????????????????????4) 找出某门课程不及格的学生,并输出其学号和不及格课程的成绩;若不存在,则打印no。???????????????????????5) 给出所有学生的各科平均成绩和总平均成绩。【输入形式】第一行为一个整数N,表示学生数;接下来的N行中每行包含5个数据:学号(字符串)、姓名(字符串)、3门课的成绩(成绩为整数);第N+2行为一个字符串,表示要查找的学生学号;第N+3行为6个数据(姓名、学号、姓名、3门课的成绩),表示要修改信息的学生姓名以及欲修改的该学生信息;第N+4行为数字(1、2或3),表示要查找的是第几门课程。【输出形式】第1行为给定学号的学生信息;第2行为给定姓名的已经修改的学生信息;第3行为指定课程中不及格学生的学号以及不及格课程的成绩(各数之间由空格分隔);第4行为所有学生的各科平均成绩和总平均成绩(各数之间由空格分隔,保留两位有效数字)。【样例输入】3??????????????????? 070001 ZhangLi?? 90 80 85??????????????????? 070002 WangHua?86 55 90??????????????????? 070003 ChenHai ??58 42 84??????????????????? 070002??????????????????? ChenHai 070003 ChenHai 58 42 90??????????????????? 2【样例输出】070002 WangHua??86??55 ?90??????????????? ????070003 ChenHai?58 ?42 ?90??????????????????? 070002 55 070003 42??????????????????? 78.00 59.00 88.33 75.11【样例说明】以样例中的输入输出数据作为测试数据,检查自己的程序正确与否。【评分标准】本题有1个测试点,共2.0分。主要考察学生的文件操作能力。?????????????????? 请严格按照题目中的文件操作要求上传程序,否则扣减得分。???#include stdio.h#include string.h #include malloc.h #define S_STU_LEN sizeof(struct s_stu)struct s_stu{char xh[20];char xm[20];int cj[3];struct s_stu *next;};int n=0;void oallscore(struct s_stu *head){struct s_stu *temp;float zcj[4]={0};int i;temp=head;while(temp!=NULL){for(i=0;i3;i++){zcj[i]+=temp-cj[i];zcj[3]+=temp-cj[i];}temp=temp-next;}printf(%.2f %.2f %.2f %.2f\n,zcj[0]/n,zcj[1]/n,zcj[2]/n,zcj[3]/n/3);}void edit(struct s_stu *head,char *xm,struct s_stu *chg){struct s_stu *temp;temp=head;while(temp!=NULL){if(strcmp(temp-xm,xm)==0){strcpy(temp-xh,chg-xh);temp-cj[0]=chg-cj[0];temp-cj[1]=chg-cj[1];temp-cj[2]=chg-cj[2];break;}temp=temp-next;}}void outputbadscore(struct s_stu *head){struct s_stu *temp;int cz=0,i,cj;temp=head;while(temp!=NULL){cj=100;for(i=0;i3;i++){if(temp-cj[i]60){cj=temp-cj[i];cz++;}}if(cj60)printf(%s %d ,te

文档评论(0)

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

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

1亿VIP精品文档

相关文档