沈阳航空航天大学实验报告课程名称:面向对象程序设计及C++实验题目:学生奖学金评定系统院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:一、实验目的达到对所学面向对象程序设计知识的一次综合运用,熟练掌握面象对象分析问题、解决问题的方法。二、实验内容描述该实验室评定学生奖学金的一个系统,包括查看学生奖学获得的情况,以及录入学生信息,修改学生信息,查看个人奖学金等功能。结果都将保存在文件中,在下次程序开始时会自动调用上一次修改的结果。三、类设计及描述派生name(姓名)学生类number(学号)sex(性别)GPA(绩点)money(钱数)mo(期末成绩)Zhong(期中成绩)Pingding(成员函数,由成绩计算出该学生的绩点以及奖学金数额)考试类(基类)English(英语成绩)Math(数学成绩)Sport(体育成绩)Practise(实践成绩)Zong(总成绩)期中考试类Zong(计算期中总成绩)Zong(计算期末总成绩)考试类期末考试类四、关键函数描述初始化学生信息函数chushihua();:把文件中已有的学生信息读取出来查寻学生获得奖学金信息函数paihang();:查询所有学生奖学金获得情况录入学生成绩函数fun1();:录入新学生姓名,性别,学号,以及成绩修改学生成绩函数amend();:可以修改已有学生任何一次考试的任何一门成绩查寻个人奖学金函数find();:可以查寻已有学生奖学金获得的情况。五、程序测试/运行的结果图4.1******************查询文件中已有学生信息********************图4.2************************初始化学生信息***************************图4.3*******************查询学生获得奖学金信息************************图4.4********************查询结果************************图4.5**********************如果没有录入此人信息**************六、实验总结这是我第一次做比较大的C++程序,在制作的过程中遇到过很多问题,不过还在在老师和同学的帮助下把这些问题都得到了解决。程序可以流畅运行,但是依然存在着很多缺陷,比如说界面,做的并没有呢么完美,功能方面也有待加强,我会继续努力,争取做出更好的作品。附录(实验代码)#includeiostream#includemath.h#includestring#includefstreamusingnamespacestd;staticintn=0;classexam//成绩类{public:floatMath;floatEnglish;floatSport;floatpractise;floatzong;};classfinal:publicexam{public:floatzongchengji(floata=0,floatb=0,floatc=0,floatd=0);};classmidterm:publicexam{public:floatzongchengji(floata=0,floatb=0,floatc=0,floatd=0);};floatmidterm::zongchengji(floata,floatb,floatc,floatd){zong=a+b+c+d;returna+b+c+d;}floatfinal::zongchengji(floata,floatb,floatc,floatd){zong=a+b+c+d;returna+b+c+d;}classstudent//学生类{public:floatpingding();public:stringname;//姓名stringnumber;//学号charsex[5];//性别intmoney;//奖学金数额floatGPA;//绩点midtermzhong;//期中考试成绩finalmo;//期末考试成绩};floatstudent::pingding(){floata,b;a=(mo.Math*4+mo.English*3+mo.Sport*2+mo.practise*1.5)*0.7/10.5/10;b=(zhong.English*3.5+zhong.Math*4+zhong.practise*1.5+zhong.Sport*2)*0.3/10.5/10;GPA=a+b;if(GPA=8)money=1000;elseif(GPA=7&&GPA8)money=500;elseif(GPA=6&&GPA7)money=300;elseif(GPA6&&GPA=5)money=150;elsemoney=0;returnGPA;;}classguanli{public:voidprint();intgameprint1();voidfun1(student*stu);voidpaihang(student*stu);voidfind(student*stu);voidamend(student*stu);voidchushi(student*stu);};voidguanli::print()//打印界面函数{cout┃------------------------------------┃endl;cout┃*********奖学金评定*********┃endl;cout┃*********1初始化学生信息*********┃endl;cout┃*********2查看奖学金信息*********┃endl;cout┃*********3查询个人奖学金*********┃endl;cout┃*********4修改个人成绩*********┃endl;cout┃*********5退出*********┃endl;cout┃------------------------------------┃endl;}intguanli::gameprint1()//打印函数{inta;cout继续操作请按1,退出请按0endl;cina;returna;}voidguanli::chushi(student*stu)//初始化学生信息函数{ifstreamp;inti;p.open(E:\\基本信息.txt);if(!p){cout打开失败endl;exit(0);}while(!p.eof()){pstu[n].namestu[n].numberstu[n].sexstu[n].mo.Mathstu[n].mo.Englishstu[n].mo.Sportstu[n].mo.practisestu[n].zhong.Mathstu[n].zhong.Englishstu[n].zhong.Sportstu[n].zhong.practise;n++;}for(i=0;in;i++)stu[i].pingding();p.close();}voidguanli::fun1(student*stu)//录入学生信息函数{floata,b,c,d,i;cout输入学生姓名,学号,性别endl;cinstu[n].namestu[n].numberstu[n].sex;cout请选择输入stu[n].name的成绩endl;cout请输入该生期中成绩--请按--数学英语体育实践的顺序输入,否则默认为0endl;cinabcd;stu[n].zhong.Math=a;stu[n].zhong.English=b;stu[n].zhong.Sport=c;stu[n].zhong.practise=d;stu[n].zhong.zongchengji(a,b,c,d);cout请输入该生期末考试成绩--请按--数学英语体育实践的顺序输入,否则默认为0endl;cinabcd;stu[n].mo.Math=a;stu[n].mo.English=b;stu[n].mo.Sport=c;stu[n].mo.practise=d;stu[n].mo.zongchengji(a,b,c,d);ofstreamp;p.open(E:\\基本信息.txt,ios::app);if(!p){cout打开失败endl;exit(0);}pendlstu[n].namestu[n].numberstu[n].sexstu[n].mo.Mathstu[n].mo.Englishstu[n].mo.Sportstu[n].mo.practisestu[n].zhong.Mathstu[n].zhong.Englishstu[n].zhong.Sportstu[n].zhong.practise;n++;}voidguanli::paihang(student*stu)//查看奖学金信息函数{inti;cout姓名绩点奖学金数额endl;for(i=0;in;i++){stu[i].pingding();coutstu[i].namestu[i].GPAstu[i].moneyendl;}}voidguanli::find(student*stu)//查询奖学金函数{inta;floatb;cout请输入所查询学生学号endl;stringch;cinch;inti;for(i=0;in;i++){if(ch==stu[i].number){b=stu[i].pingding();if(b=6&&b7)cout恭喜stu[i].name获得综合三等奖学金,数额为300endl;elseif(b=5&&b6)cout恭喜stu[i].name获得单项奖学金,数额为150endl;elseif(b=7&&b8)cout恭喜stu[i].name获得综合二等奖学金,数额为500endl;elseif(b=8)cout恭喜stu[i].name获得综合一等奖学金,数额为1000endl;elsecout该生未获得奖学金,请继续努力endl;return;}}cout查无此人endl;}voidguanli::amend(student*stu)//修改学生成绩函数{strings;inti=0,a,b;charch;floataa;cout请输入修改学生的姓名endl;cins;for(i=0;in;i++)if(stu[i].name==s){ofstreamp;p.open(E:\\基本信息.txt);if(!p){cout打开失败endl;exit(0);}loop1:cout请输入要修改的成绩endl;cout1期中endl;cout2期末endl;cina;if(a==1){cout请输入要修改的学科endl;cout1数学endl;cout2英语endl;cout3体育endl;cout4实践endl;cinb;cout请输入修改后的成绩endl;cinaa;switch(b){case1:stu[i].zhong.Math=aa;break;case2:stu[i].zhong.English=aa;break;case3:stu[i].zhong.Sport=aa;break;case4: