- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
成绩统计验报告
河北工业大学计算机软件技术基础(VC)201年课程设计报告
学院 班级 姓名 学号 成绩____
题目:
成绩统计
设计思路
总体设计
分析程序的功能
本程序是一个学生成绩统计系统。主要包括学生分数求和、各分数段的人数及百分比、以及按照总分由高到低输出学生信息。
学生分数求和:首先由使用者输入一批学生某门课程考试的各题的分数,然后计算每个人的总分。
各分数段的人数及百分比:各分数段的人数及百分比,统计各分数段0~49, 50~59,60~69,70~79, 80~89, 90~100的人数及占总人数的百分比。
按照总分由高到低输出学生信息:学生的信息按总分排名输出。
成绩统计界面如下:
---------成绩统计--------
请输入总题数:
请输入学生信息:
请输入该学生单题得分:
请输入该学生单题得分:
请输入该学生单题得分:
请输入该学生单题得分:
总分:
系统总体结构:
确定总题数
输入学生信息
输入学生各题分数
总和各学生总分
统计各分数段的人数及百分比
根据各学生的总分,对他们的信息进行排序
输出学科情况。
输出排序后的学生信息。
模块
函数名称
输入学生信息
Information
输入各题分数
Score
总分数
Sum
该分数段人数
Quantity
百分比
Percent
学生总分排序
Sort
各功能模块的设计:说明各功能模块的实现方法
Information模块
首先利用结构体把学生的信息汇集到一起,使得程序可以方便的处理后边的复杂数据。先是日期的结构体,把年、月、日汇总。然后是学生信息的结构体,把课程名称,考试时间,班号,学生姓名,学号,及学生课题的成绩新近汇总。
代码参见结构体
Score模块
通过设计一个函数,输入学生各题分数。利用for循环语句对各题分数进行输入
Sum模块
利用循环语句对学生的信息进行输入,并计算总分。因为学生数量较多,因此用了数组,对于数组的输入,需要运用循环语句。
Quantity和Percent模块
利用if与循环语句,对各分数段人数进行统计,在分数段内,则对应的分数段+1,最后再通过计算求出百分比。如果学生的总分在90~100之间,则a+1,若在80~89之间,则b+1,若在70~79之间,则c+1,若在60~69之间,则d+1,若在50~59之间,则e+1,若在0~79之间,则f+1。最后根据统计后的人数来求所占总人数的比例。
Sort模块
该函数利用冒泡法,对学生的总分进行比较,如果没有函数,输出的结果则只是总分的排序改变了,而学生的其他信息没有随着改变,此处利用函数,可以在对总分进行比较排序的时候,使学生的其他信息随着总分一起进行排序,保证了每个学生的信息的完整。
输入学科情况
首先输出的是学生的课程名称,考试日期,班级号码,各阶段的人数及所占总人数的百分比。
排序后的学生情况
因为学生信息是数组,所以输出学习成绩时,需要用循环语句。
创新部分
设计中主要的困难和解决方案
在进行按总分排序的时候,似乎只有总分排序了,而其他数据没有跟着总分一块调整顺序,后来引用了函数,各个学生的信息随着总分的变化一起变化。
在计算百分比是,用的定义是double,而double会把小数点后的数约掉,因此最后总是0%,改进的是先*100再除以总人数,这样便可以求出百分比了。
所设计的程序最终完成的功能
说明编制的程序能完成的功能
能够由用户输入30个学生各题成绩,然后对成绩进行总和,
准备的测试数据及运行结果
因30个数据过多,因此取2个学生的成绩来做测试。
程序清单
1结构体
//结构体声明
struct worktime
{
int year;
int month;
int day;
};
struct student
{
char subject[20];
worktime wt;
int classnum;
char name[20];
int num;
int s[100];
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(stu[k].sumstu[k+1].sum)
{
temp=stu[k];
stu[k]=stu[k+1];
stu[k+1]=temp;
文档评论(0)