已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合程序实验实验者姓名:何彦辉 学号: 实验日期:2012/6/9一、 实验题目学生信息管理程序二、 实验的目的和要求有一个班级的学生(不超过50人),每个学生的数据包括学号、姓名、五门课(英语、高数、马哲、计算机、电子技术)的成绩,从键盘输入此数据,要求按总分从高到低的顺序保存到cj.dat中,并按按学号大小从小到大排序打印出没门课的成绩,以及总分最高分的学生的数据(包括学号、姓名、各门课的成绩、平均分数)。要求:用input函数输入学生数据,用printscore(x)函数打印出课程x的成绩表;用max函数找出最高分数数据;最高分的学生在主函数中输出。三、程序设计思路、流程图1、程序设计思路: 定义结构体数组来存放学生信息。用input函数输入学生数据 ,for循环输入学生数据。再编写printscore(x)函数打印出课程x的成绩表,其中用了冒泡排序法对学号的排序,还用了if语句对分数范围的判断,来统计人数以及计算比例,在输出统计结果。用max函数找出最高分数数据,用for语句遍历一遍,晒筛选出最高分成绩的学生数据,再返回结构体函数值。文件的打开以及输入数据到文件中再关闭,其中用了for语句对文件的输出,使用了函数fprintf,fopen,fclose等。最后用main函数调用这些函数,再在main函数里输出最高成绩的学生数据即完成。2、程序流程图:for(i=0;in;i+)返回最高分的学生结构体数组 所有的学生的总分大于第一个学生的总分YN进行交换下标输出某科的全班平均分以及每个分数段的人数以及比例 for(k=0;k5;k+)计算每个分数段的比例for(i=0;in;i+)算出总成绩以及每个分数段的人数输出某个科目的数据 for (i=0;in;i+))for(j=0;j stuj yn前一项与后一项交换 计算总成绩赋值给结构体存放以及平均值存放到结构体stu中 scanf()输入学生数据赋值给结构体数组stu,数据的输入n-s图直到i大于n(学生人数)输入数据,并排序:对其中一门课程的成绩输出,并进行了统计: for(i=0;in;i+)输出某个科目的数据for(i=0;in;i+)算出总成绩以及每个分数段的人数 for(k=0;k5;k+)计算每个分数段的比例输出某科的全班平均分以及每个分数段的人数以及比例筛选最高分的成绩的学生数据:for(i=0;in;i+) 所有的学生的总分大于第一个学生的总分YN进行交换下标返回最高分的学生结构体数组四、关键部分的源代码定义结构体:struct Studentlong int num;char name20;float grade5;float aver;float total;对最高分的输出:max_stu=Max(p,n);printf(n);printf(输出最高分的学生数据:n学号 姓名 英语 高数 马哲 计算机 电子技术n);printf(%-10d%8s%6.2f%6.2f%6.2f%6.2f%6.2fn,max_stu.num,max_,max_stu.grade0,max_stu.grade1,max_stu.grade2,max_stu.grade3,max_stu.grade4);输入的关键for循环输入学生数据:for(i=0;iN;i+) scanf(%d %s %f %f %f %f %f,&stui.num,,&stui.grade0,&stui.grade1,&stui.grade2,&stui.grade3,&stui.grade4);stui.total=stui.grade0+stui.grade1+stui.grade2+stui.grade3+stui.grade4;stui.aver=stui.total/5.0;冒泡排序算法:使用了两次;一次是对学号的排序,另一次是对总成绩的排序:for (i=0;iN;i+)for(j=0;jstuj.total)t=stuj;stuj=stuj+1;stuj+1=t;文件的打开以及输入数据到文件中在关闭的程序代码:fp=fopen(cj.dat,w+);for(i=0;inum,p-name);for(j=0;jgradej);fputs(n,fp);fclose(fp);如下是对其中一门课程的成绩输出,并进行了统计:其实可以用一个函数把这些代码包含在里面,之后再调用五次就可以完成五门课的成绩表输出了.但由于程序已经写好了,不怎么想改动。就免了,其实改过了也很方便,用个一个形参输入即可控制哪一门的输出。此处在源程序代码中copy了五次。printf(课程名称:英语n);print1();for(i=0;i3;i+)printf(%-10ld%5s%8.2fn,stui.num,,stui.grade0);print2();for(i=0;i=90) rs0+=1;if(stui.grade0=80&stui.grade0=70&stui.grade0=60&stui.grade070) rs3+=1;if(stui.grade060) rs4+=1;for(k=0;k5;k+)blk=100.0*rsk/n;printf(90100分(优):%4d占%6.2f%n,rs0,bl0);printf(8089分(良):%4d占%6.2f%n,rs1,bl1);printf(7079分(中):%4d占%6.2f%n,rs2,bl2);printf(6069分(及格):%4d占%6.2f%n,rs3,bl3);printf(059分(不及格):%4d占%6.2f%n,rs4,bl4);筛选最高分的成绩的学生数据:for(i=0;iN;i+)if(stuk.totalstui.total)k=i;return stuk;五、实验运行结果的典型画面六、实验总结这个实验真有点难,算法不难,很简单,但是格式的要求等等以及语法会经常出错,这个程序我调试了好久,终于完成了。很高兴,不仅因为程序完成了,更是因为从中学会了很多,有很多以前不太注意的,现在大部分发现了。在今
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急救药品、物品管理评价标准
- 个人房屋改造装修合同范本(12篇)
- 2026年高端私人影院建设公司投影幕布设备采购管理制度
- 字母设计素描结构分析
- 餐饮服务营养膳食培训
- 护士如何做好健康宣教
- 2025-2026学年北京市高三上学期第二次统练试历史试卷
- 营养补品营销案例
- 胃溃疡临床表现及护理技巧训练
- 快速记忆法训练
- 柳林风声导读课件
- 2026年开封文化艺术职业学院单招职业技能考试题库附答案
- 中医适宜技术推广与运用医学课件
- 2025高二语文选择性必修语文基础知识卷
- 企业创新激励政策
- 2025北京外国语大学财务专业技术岗位招聘笔试考试参考题库及答案解析
- 2025年门球一级裁判试题及答案
- 电缆桥架安装与敷设施工方案
- 慢性胸痛疾病诊断治疗指南
- GB/T 5169.1-2025电工电子产品着火危险试验第1部分:着火试验术语
- 魅力连云港课件
评论
0/150
提交评论