C++奖学金评定系统课设报告.docx
- 文档编号:19651704
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:18
- 大小:157KB
C++奖学金评定系统课设报告.docx
《C++奖学金评定系统课设报告.docx》由会员分享,可在线阅读,更多相关《C++奖学金评定系统课设报告.docx(18页珍藏版)》请在冰豆网上搜索。
C++奖学金评定系统课设报告
航空航天大学
实验报告
课程名称:
面向对象程序设计及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++程序,在制作的过程中遇到过很多问题,不过还在在老师和同学的帮助下把这些问题都得到了解决。
程序可以流畅运行,但是依然存在着很多缺陷,比如说界面,做的并没有呢么完美,功能方面也有待加强,我会继续努力,争取做出更好的作品。
附录(实验代码)
#include
#include
#include
#include
usingnamespacestd;
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&&GPA<8)
money=500;
elseif(GPA>=6&&GPA<7)
money=300;
elseif(GPA<6&&GPA>=5)
money=150;
else
money=0;
returnGPA;;
}
classguanli
{
public:
voidprint();
intgameprint1();
voidfun1(student*stu);
voidpaihang(student*stu);
voidfind(student*stu);
voidamend(student*stu);
voidchushi(student*stu);
};
voidguanli:
:
print()//打印界面函数
{
cout<<"┃------------------------------------┃"< cout<<"┃*********奖学金评定*********┃"< cout<<"┃*********1初始化学生信息*********┃"< cout<<"┃*********2查看奖学金信息*********┃"< cout<<"┃*********3查询个人奖学金*********┃"< cout<<"┃*********4修改个人成绩*********┃"< cout<<"┃*********5退出*********┃"< cout<<"┃------------------------------------┃"< } intguanli: : gameprint1()//打印函数 { inta; cout<<"继续操作请按1,退出请按0"< cin>>a; returna; } voidguanli: : chushi(student*stu)//初始化学生信息函数 { ifstreamp; inti; p.open("E: \\基本信息.txt"); if(! p) { cout<<"打开失败"< exit(0); } while(! p.eof()) { p>>stu[n].name>>stu[n].number>>stu[n].sex>>stu[n].mo.Math>>stu[n].mo.English>>stu[n].mo.Sport>>stu[n].mo.practise>>stu[n].zhong.Math>>stu[n].zhong.English>>stu[n].zhong.Sport>>stu[n].zhong.practise; n++; } for(i=0;i stu[i].pingding(); p.close(); } voidguanli: : fun1(student*stu)//录入学生信息函数 { floata,b,c,d,i; cout<<"输入学生,学号,性别"< cin>>stu[n].name>>stu[n].number>>stu[n].sex; cout<<"请选择输入"< cout<<"请输入该生期中成绩--请按--数学英语体育实践的顺序输入,否则默认为0"< cin>>a>>b>>c>>d; 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<<"请输入该生期末考试成绩--请按--数学英语体育实践的顺序输入,否则默认为0"< cin>>a>>b>>c>>d; 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<<"打开失败"< exit(0); } p< n++; } voidguanli: : paihang(student*stu)//查看奖学金信息函数 { inti; cout<<""<<""<<"绩点"<<""<<"奖学金数额"< for(i=0;i { stu[i].pingding(); cout< } } voidguanli: : find(student*stu)//查询奖学金函数 { inta; floatb; cout<<"请输入所查询学生学号"< stringch; cin>>ch; inti; for(i=0;i { if(ch==stu[i].number) { b=stu[i].pingding(); if(b>=6&&b<7) cout<<"恭喜"< elseif(b>=5&&b<6) cout<<"恭喜"< elseif(b>=7&&b<8) cout<<"恭喜"< elseif(b>=8) cout<<"恭喜"< else cout<<"该生未获得奖学金,请继续努力"< return; } } cout<<"查无此人"< } voidguanli: : amend(student*stu)//修改学生成绩函数 { strings; inti=0,a,b; charch; floataa; cout<<"请输入修改学生的"< cin>>s; for(i=0;i if(stu[i].name==s) { ofstreamp; p.open("E: \\基本信息.txt"); if(! p) { cout<<"打开失败"< exit(0); } loop1: cout<<"请输入要修改的成绩"< cout<<"1期中"< cout<<"2期末"< cin>>a; if(a==1) { cout<<"请输入要修改的学科"< cout<<"1数学"< cout<<"2英语"< cout<<"3体育"< cout<<"4实践"< cin>>b; cout<<"请输入修改后的成绩"< cin>>aa; switch(b) { case1: stu[i].zhong.Math=aa; break; case2: stu[i].zhong.English=aa; break; case3: stu[i].zhong.Sport=aa; break; case4: stu[i].zhong.practise=aa; break; } } elseif(a==2) { cout<<"请输入要修改的学科"< cout<<"1数学"< cout<<"2英语"< cout<<"3体育"< cout<<"4实践"< cin>>b; cout<<"请输入修改后的成绩"< cin>>aa; switch(b) { case1: stu[i].mo.Math=aa; break; case2: stu[i].mo.English=aa; break; case3: stu[i].mo.Sport=aa; break; case4: stu[i].mo.practise=aa; break; } } else { cout<<"输入错误请重新输入"< gotoloop1; } cout<<"继续修改? cin>>ch; if(ch=='y') gotoloop1; for(i=0;i { p< } p.close(); return; } cout<<"查无此人"< } voidmain() { system("color8c"); studentstu[100],*CH; guanlia; CH=stu; a.chushi(stu); inti,lin; loop1: a.print(); cin>>i; if(i! =1&&i! =2&&i! =3&&i! =4&&i! =5) { cout<<"输入错误,请重新输入"< gotoloop1; } else { switch(i) { case1: a.fun1(CH); lin=a.gameprint1(); if(lin==1) gotoloop1; elseexit(0); case2: a.paihang(CH); lin=a.gameprint1(); if(lin==1) gotoloop1; elseexit(0); case3: a.find(CH); lin=a.gameprint1(); if(lin==1) gotoloop1; elseexit(0); case4: a.amend(CH); lin=a.gameprint1(); if(lin==1) gotoloop1; elseexit(0); case5: exit(0);}}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 奖学金 评定 系统 报告