C++奖学金评定系统课设报告.docx
《C++奖学金评定系统课设报告.docx》由会员分享,可在线阅读,更多相关《C++奖学金评定系统课设报告.docx(18页珍藏版)》请在冰点文库上搜索。
![C++奖学金评定系统课设报告.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/148e4f2b-1908-46b4-b74b-3a6867bf509b/148e4f2b-1908-46b4-b74b-3a6867bf509b1.gif)
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;istu[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;iif(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);}}}