您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++高级语言程序设计综合实验报告
一、综合实验的目的与要求1实验的目的通过用C++编写一个学生考试成绩信息系统,强化面向对象程序设计思想,使学生能够将C++程序设计中的面向对象、重载、模板、文件等各种概念,灵活的运用到实际的程序设计中去。2实验要求1)录入课程和选课学生的信息;2)录入成绩3)学生信息和成绩的修改;4)统计学生成绩;5)成绩排序;按成绩排序6)统计成绩分布功能:即各成绩段学生的数量:“优”:90~100;“良”:80~90;“中”:70~80;“及格”:60~70;“不及格”60。并输出统计分布结果;7)查找:能够查找指定学生的各门成绩和平均分及其名次;3实验原理实验使用面向对象的设计思想,在学生成绩考试系统中,主要涉及的是学生和课程,对于所有的学生,都具有共性,因此可以抽象为一个学生类,同理可以得到课程类。二、设计正文1.正文为宋体,五号字行间距为211.1------------1.2------------三、综合实验总结或结论1.正文为宋体,五号字行间距为211.1------------1.2------------四、参考文献[1]作者1,作者2书名.出版单位,版本.出版日期附录(设计流程图、程序、表格、数据等)一、综合实验的目的与要求1.1实验目的通过用C++编写一个学生考试成绩信息系统,强化面向对象程序设计思想,使学生能够将C++程序设计中的面向对象、重载、模板、文件等各种概念,灵活的运用到实际的程序设计中去。1.2实验要求1)录入课程和选课学生的信息;2)录入成绩3)学生信息和成绩的修改;4)统计学生成绩;5)成绩排序;按成绩排序6)统计成绩分布功能:即各成绩段学生的数量:“优”:90~100;“良”:80~90;“中”:70~80;“及格”:60~70;“不及格”60。并输出统计分布结果;7)查找:能够查找指定学生的各门成绩和平均分及其名次;二、实验正文2.1实验原理实验使用面向对象的设计思想,在学生成绩考试系统中,主要涉及的是学生和课程,对于所有的学生,都具有共性,因此可以抽象为一个学生类,同理可以得到课程类。2.2类的设计实验首先设计两个类:学生类和课程类,并根据面向对象的信息隐蔽原则,设置相应的类成员的访问属性。(1)学生类(a)属性:主要包括学生的个人信息,包括学号、姓名、班级、成绩等。(b)操作:学生信息的输入、输入函数,学生成绩(以高数、大英、大物、体育四门课为例)的设置和获取函数,学生信息的修改函数等等。(2)课程类(a)属性:主要包括课程号、课序号、学分、任课教师、选课人数、学生成绩表。(b)操作:包括课程信息的录入、录入选课学生信息、录入选课学生的成绩,成绩统计、成绩分析、成绩排序等。2.3系统功能模块学生成绩查询系统有:录入学生信息、查询学生信息、录入学生成绩、查询学生成绩、统计学生成绩、各科成绩排名、修改学生信息2.4实验所需仪器、设备本实验基于window平台,使用VC++为开发工具。三、综合实验总结或结论通过这次的实验,我对C++的应用有了更深的体会,同时也加深了对类的认识。这次程序设计实习我最大的收获并不仅是对书本知识的巩固,而是通过实验我的自学能力得到了很好的锻炼,实践能力也提高了不少。由于之前对类的掌握不牢固,在实验的开始阶段进展很慢。但是通过网上查资料,与同学讨论,互相学习渐渐的有了思路。后来的实验也就没有那么摸不着门路了。当然,在这次程序设计中我还有没有解决的问题:题目中要求的类模板没有实现,根本原因是对这块知识的不熟悉,通过阅读书籍和查找资料,我逐渐了解了有关类模板内容,并尝试着往程序里加入,可是加入此段程序后出现了一些BUG导致程序不能执行,我向周围的同学求助仍然未能得到解决,最后为了以大局为重也是因为时间不够的原因我最终没有加入类模板,对于这一点我有很大的遗憾。本系统具有传输可靠,操作简单,安全可靠等优点。由于时间问题,以及我个人所学知识有限,本系统还未能做到十全十美,有很多方面的实际问题没有考虑完全,对于课程类的设计相对粗糙,对此我会再接再厉,努力学习充实自己,进而完善本系统。四、参考文献作者:吕凤翥书名:《c++语言基础教程》出版社:清华大学出版社版本:第二版出版日期:2007年2月附录(设计流程图、程序、表格、数据等)流程图:程序源代码:#includeiostream.h#includestring.hclassStudent{private:staticintlessencount;//学生选课数量intsum1;//总成绩intxuehao;//设置学号intmclass;//设置班级inti;public:staticintcount;//学生计数charname[8];//学生姓名intgrades[100];//成绩数组intstuave;//平均成绩voidsetstudent()系统功能列表录入学生信息查询学生信息录入学生成绩查询学生成绩统计学生成绩各科成绩排名修改学生信息以及成绩退出学号、姓名、班级学号、姓名、班级课程号、课序号、老师、学分、选课人数学生各科分数学生各科成绩、学分、老师改信息改成绩改信息及成绩各科平均分及档次{cout请输入学生的信息;信息包括学生的学号,姓名,班级:endl;cinxuehaonamemclass;}voidgetstudent(){cout学号:xuehao姓名:name班级:mclassendl;}voidchangestudent(intxuehao,char*name,intmclass){this-xuehao=xuehao;strcpy(this-name,name);this-mclass=mclass;}voidsetgrades(intv){cout请输入学生十门课成绩,若未选择输入-1,若缺考输入0:endl;for(i=0;iv;i++){cout课程iendl;cingrades[i];}}voidgetgrades(intb){for(i=0;ib;i++){cout该学生第i门课程的成绩为grades[i]endl;cout注:若未选该门课程成绩为-1;}}voidchangegrade(intgrade,intbianhao){this-grades[bianhao]=grade;}intsum(){sum1=0;for(intj=0;jcount;j++){if(grades[j]=0){sum1+=grades[j];lessencount++;}elsesum1+=0;}cout此学生各门课程的总分为:sum1;returnsum1;}intaverage(){intave=sum1/lessencount;cout此学生各科的平均成绩为:aveendl;stuave=ave;returnave;}};intStudent::count=0;intStudent::lessencount=0;classSubject:publicStudent{private:intbianhao;//课程编号intkexuhao;//课序号intxuefen;//学分charteacher[8];//教师名字staticints1,s2,s3,s4,s5;//优良中及格不及格人数staticinti;public:staticintsubjectcount;//课程计数longkechenghao;//课程号voidsetsubject(){cout请输入此学科的课程号,课序号,学分,任课教师:endl;bianhao=count+1;cinkechenghaokexuhaoxuefenteacher;}voidgetsubject(){cout该科目的课序号为:kexuhaoendl该科目的学分为:xuefenendl该科目的任课教师为:teacherendl;}staticvoidbubble(Studentstudent[],intm);staticvoidfenduan(Studentstudent[],intm);staticvoidbubble1(Studentstudent[],intm,intn);staticvoidfenduan1(Studentstudent[],intm,intn);voidchangesubject(intmkexuhao,intmkechenghao,intmxuefen,charteaname[]){kexuhao=mkexuhao;kechenghao=mkechenghao;xuefen=mxuefen;strcpy(teacher,teaname);}};intSubject::subjectcount=0;intSubject::s1=0;intSubject::s2=0;intSubject::s3=0;intSubject::s4=0;intSubject::s5=0;intSubject::i=0;voidSubject::bubble(Studentstudent[],intm){intt=0,j=0;for(i=1;im;i++)for(j=m-1;j=i;j--)if(student[j].stuavestudent[i].stuave){t=student[j].stuave;student[j].stuave=student[i].stuave;student[i].stuave=t;}cout所有同学的平均成绩由小到大排序为:endl;for(i=0;im;i++){coutstudent[i].stuaveendl;}}voidSubject::fenduan(Studentstudent[],intm){for(i=0;im;i++){if(student[i].stuave=90&&student[i].stuave=100)s1++;elseif(student[i].stuave=80)s2++;elseif(student[i].stuave=70)s3++;elseif(student[i].stuave=60)s4++;elses5++;cout此课程分布结果为:优:s1人;良:s2人;中:s3人;及格:s4人;不及格:s5人endl;}}voidSubject::bubble1(Studentstudent[],intm,intn){intt=0,j=0;for(i=1;im;i++)for(j=m-1;j=i;j--)if(student[j].grades[n]student[i].grades[n]){t=student[j].grades[n];student[j].grades[n]=student[i].grades[n];student[i].grades[n]=t;}cout所有同学的本科成绩由小到大排序为:endl;for(i=0;im;i++){coutstudent[i].grades[n]endl;}}voidSubject::fenduan1(Studentstudent[],intm,intn){for(i=0;im;i++){if(student[i].grades[n]=90&&student[i].grades[n]=100)s1++;elseif(student[i].grades[n]=80)s2++;elseif(student[i].grades[n]=70)s3++;elseif(student[i].grades[n]=60)s4++;elses5++;cout此课程分布结果为:优:s1人;良:s2人;中:s3
本文标题:C++高级语言程序设计综合实验报告
链接地址:https://www.777doc.com/doc-6773677 .html