成绩统计实验报告_第1页
成绩统计实验报告_第2页
成绩统计实验报告_第3页
成绩统计实验报告_第4页
成绩统计实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号:11河北工业大学计算机软件技术基础(VC)201年课程设计报告学院 班级 姓名 学号 成绩_一、 题目: 成绩统计二、 设计思路1、 总体设计1) 分析程序的功能本程序是一个学生成绩统计系统。主要包括学生分数求和、各分数段的人数及百分比、以及按照总分由高到低输出学生信息。学生分数求和:首先由使用者输入一批学生某门课程考试的各题的分数,然后计算每个人的总分。各分数段的人数及百分比:各分数段的人数及百分比,统计各分数段049, 5059,6069,7079, 8089, 90100的人数及占总人数的百分比。按照总分由高到低输出学生信息:学生的信息按总分排名输出。成绩统计界面如下:-成绩统计- 请输入总题数:请输入学生信息:请输入该学生单题得分:请输入该学生单题得分:请输入该学生单题得分:请输入该学生单题得分:总分:2) 系统总体结构:1. 确定总题数2. 输入学生信息3. 输入学生各题分数4. 总和各学生总分5. 统计各分数段的人数及百分比6. 根据各学生的总分,对他们的信息进行排序7. 输出学科情况。8. 输出排序后的学生信息。模块函数名称输入学生信息Information输入各题分数Score总分数Sum该分数段人数Quantity百分比Percent学生总分排序Sort2、 各功能模块的设计:说明各功能模块的实现方法1) Information模块首先利用结构体把学生的信息汇集到一起,使得程序可以方便的处理后边的复杂数据。先是日期的结构体,把年、月、日汇总。然后是学生信息的结构体,把课程名称,考试时间,班号,学生姓名,学号,及学生课题的成绩新近汇总。代码参见结构体2) Score模块通过设计一个函数,输入学生各题分数。利用for循环语句对各题分数进行输入3) Sum模块利用循环语句对学生的信息进行输入,并计算总分。因为学生数量较多,因此用了数组,对于数组的输入,需要运用循环语句。4) Quantity和Percent模块利用if与循环语句,对各分数段人数进行统计,在分数段内,则对应的分数段+1,最后再通过计算求出百分比。如果学生的总分在90100之间,则a+1,若在8089之间,则b+1,若在7079之间,则c+1,若在6069之间,则d+1,若在5059之间,则e+1,若在079之间,则f+1。最后根据统计后的人数来求所占总人数的比例。5) Sort模块该函数利用冒泡法,对学生的总分进行比较,如果没有函数,输出的结果则只是总分的排序改变了,而学生的其他信息没有随着改变,此处利用函数,可以在对总分进行比较排序的时候,使学生的其他信息随着总分一起进行排序,保证了每个学生的信息的完整。6) 输入学科情况首先输出的是学生的课程名称,考试日期,班级号码,各阶段的人数及所占总人数的百分比。7) 排序后的学生情况因为学生信息是数组,所以输出学习成绩时,需要用循环语句。8) 创新部分 3、 设计中主要的困难和解决方案 在进行按总分排序的时候,似乎只有总分排序了,而其他数据没有跟着总分一块调整顺序,后来引用了函数,各个学生的信息随着总分的变化一起变化。 在计算百分比是,用的定义是double,而double会把小数点后的数约掉,因此最后总是0%,改进的是先*100再除以总人数,这样便可以求出百分比了。4、 所设计的程序最终完成的功能1) 说明编制的程序能完成的功能能够由用户输入30个学生各题成绩,然后对成绩进行总和,2) 准备的测试数据及运行结果因30个数据过多,因此取2个学生的成绩来做测试。三、 程序清单1结构体/结构体声明struct worktimeint year;int month;int day;struct studentchar subject20;worktime wt;int classnum;char name20;int num;int s100;int sum;2.Sort函数/函数原型说明void sort(student stu,int n);sort(stu,30);/调用排序函数void sort(student stu,int n)/排序函数定义student temp;for(int i=0;in-1;i+)for(int k=0;kn-1-i;k+)if(stuk.sumstuk+1.sum)temp=stuk;stuk=stuk+1;stuk+1=temp;3.Main函数/主函数void main()int a=0,b=0,c=0,d=0,e=0,f=0,N;double u=0.00,v=0.00,w=0.00,x=0.00,y=0.00,z=0.00;student stu30;int i=0;cout请输入总题数N;while(i30)stui.num;/输入学生信息stui.sum=0;for(int j=0;jN;j+)/利用for循环语句对各题分数进行输入coutstui.sj;stui.sum+=stui.sj;/对学生的各题求和,得出总分cout总分stui.sumendl;i+;/统计各分数段所含人数for(i=0;i=90&stui.sum=80&stui.sum=70&stui.sum=60&stui.sum=50&stui.sum=59)e+;elsef+;/求各分数段人数占总人数的百分比u=a*100/30;v=b*100/30;w=c*100/30;x=d*100/30;y=e*100/30;z=f*100/30;sort(stu,30);/调用排序函数cout课程名称t考试日期t学生班号t90100人数t90100百分比t8089人数t8089百分比t7079人数t7079百分比t6069人数t6069百分比 5059人数 5059百分比 049人数 049百分比endl;coutstu0.subjecttstu0.wt.year/stu0.wt.month/stu0.wt.daytstu0.classnumtatu%tbtv%tctw%tdtx%tety%tftz%endl;/对课程信息进行输出,输出1cout课程名称t考试日期t学生班号t学生姓名t学号t总分endl;for(i=0;i30;i+)coutstui.subjecttstui.wt.year/stui.wt.month/tstui.numtstui.sumendl;/对排序后的学生信息进行输出,输出24.while循环语句while(i30)stui.num;/输入学生信息stui.sum=0;for(int j=0;jN;j+)/利用for循环语句对各题分数进行输入coutstui.sj;stui.sum+=stui.sj;/对学生的各题求和,得出总分cout总分stui.sumendl;i+;5.For循环与if语句 /统计各分数段所含人数for(i=0;i=90&stui.sum=80&stui.sum=70&stui.sum=60&stui.sum=50&stui.sum=59)e+;elsef+;6.For循环的输入与输出语句输入:for(int j=0;jN;j+)/利用for循环语句对各题分数进行输入coutstui.sj;stui.sum+=stui.sj;/对学生的各题求和,得出总分输出:for(i=0;i30;i+)coutstui.subjecttstui.wt.year/stui.wt.month/stui

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论