成绩统计系统(C++课程设计)(2)

2019-08-17 13:01

《面向对象程序设计语言》课程设计

for(int s=0;s

out<

out.close();

ifstream in(\定义输入文件流对象in,打开输入文件f1.text int j=0;

while(!in.eof())//直到文件末尾跳出循环

{ in>>stu2[j].name>>stu2[j].sno>>stu2[j].Math>>stu2[j].English>>stu2[j].Cjj;//依次读入学生信息

score1[j]=stu2[j].getMath(); score2[j]=stu2[j].getEnglish(); score3[j]=stu2[j].getCjj();

score4[j]=stu2[j].Totalscore();//分别将学生数学成绩、英语成绩、C++成绩、总分成绩放入一个数组中

j++; } int t; do{

cout<<\请输入菜单相应功能数字:\cin>>t; if(t等于1)

{ 调用求取最高分函数,显示学生各科及总分最高分; } if(t等于2)

{ 调用求取最低分函数,输出学生各科及总分最低分; }

if(t等于3)

{ 调用求取平均分函数,输出学生各科及总分平均分; } if(t等于4)

{ 调用排序函数并输出学生成绩总分排名及全体成员各科信息;

中南民族大学计算机科学学院 专业 软件工程 学号: 201421092073 姓名 :柳真 6

《面向对象程序设计语言》课程设计

} if(t等于5)

{ cout<<\学生成绩总分分数段统计情况****\

int Total1[N]={0},Total2[N]={0},Total3[N]={0}; //定义三个数组,数组成员并初始化为零,存放各个分数段学生总分成绩

for(j=0;j

if(某学生总分大于290分) Total1[j]=某学生总分; else if(某学生总分大于280分)

Total2[j]=某学生总分;

else if(某学生总分大于等于270分) Total3[j]=某学生总分;

}

cout<

{if(Total1[j])//如果Total1[j]不为零则执行if内语句

cout<<

cout<

for(j=0;j

{ if(Total2[j])//如果Total2[j]不为零则执行if内语句 cout<< Total2[j]<

cout<

{if(Total3[j]) //如果Total3[j]不为零则执行if内语句 cout<

break;

中南民族大学计算机科学学院 专业 软件工程 学号: 201421092073 姓名 :柳真 7

《面向对象程序设计语言》课程设计

}

}

if(t!=1&&t!=2&&t!=3&&t!=4&&t!=5&&t!=6) //错误判断

cout<<\输入错误!\

}while(t);

in.close();//关闭文件f1.text return 0;

五 调试分析

在调试过程中,令我印象最深刻的是在定义Student类对象并初始化时,其中部分输入使用了中文字符,导致在调试检查时花了很长时间才发现这个错误。

其次,在调用求取最高分、最低分、平均分函数时,由于一个学生有多个信息,在使用相应学生信息作为实参来调用函数时,我用类似stu2.getMath()这样的形式作为数组名,结果一直显示错误,最后通过score1[j]=stu2[j].getMath();这一语句来转换,成功解决了这一错误。

其中,在实现总分排名这一功能时,我是使用了一个排序函数,然后取用在数组中相应位置数作为排名成绩,在操作调试过程中因为排序函数定义成void或者int型错误以及在使用for循环逻辑错误,使得结果一直无法输出学生总分成绩以及排名信息。不过,经过耐心的调试和修改,最后成功解决了这一问题。

最后,最重要的是文件操作部分的内容,这是本次课程设计中的难点。当时,我是依据课本上的一个例子仿照编写的,直接在main函数里定义文件,向文件里编写数据,然后读取。后面功能函数实现所调用的实参均是按照文件读取中格式输入,结果导致每次运行添加的学生信息在下一次运行时无法保留。我自己在百度上参考了一些例子,也参照了班里同学的例子。由于在编写程序初设计程序整体功能结构框架没有重视文件操作这一功能,导致在修改源程序达到永久保存添加学生信息功能时,修改时有点繁琐。不过,经过和同学讨论和书本上相关例子,最终解决了文件添加学生信息的功能。

六 测试结果

以下是我编写成绩统计系统过程中使用的初步学生成绩信息,其中总分、最高分、最低分、平均分均是经过实际验证得到的数据。 姓名 王 李 赵 柳 洪 梁 学号 2011 2012 2013 2014 2015 2016 数学成绩 90 95 95 96 94 97 英语成绩 91 92 98 97 95 98 C++成绩 92 94 99 98 96 99 总分 273 281 292 291 285 294 中南民族大学计算机科学学院 专业 软件工程 学号: 201421092073 姓名 :柳真 8

《面向对象程序设计语言》课程设计

最高分 最低分 平均分 图一:

97 90 94.5 98 91 95.17 99 92 96.33 294 273 286 上图一是文件f1.text中原本保留的学生成绩信息截图显示。

图二:

图三:

上图二、三是查询各科及总分最高分运行结果。 图四:

中南民族大学计算机科学学院 专业 软件工程 学号: 201421092073 姓名 :柳真 9

《面向对象程序设计语言》课程设计

上图四是查询各科及总分最低分运行结果。

图五:

上图五是查询各科及总分平均分结果显示。

图六:

上图六是查询学生成绩总分排名及各科信息结果显示。 图七:

中南民族大学计算机科学学院 专业 软件工程 学号: 201421092073 姓名 :柳真

10


成绩统计系统(C++课程设计)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:梦圆飞天(第二课时)教学设计与反思

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: