最新c++学生成绩管理系统课设报告含程序和截图Word文档下载推荐.docx
- 文档编号:18159446
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:34
- 大小:481.11KB
最新c++学生成绩管理系统课设报告含程序和截图Word文档下载推荐.docx
《最新c++学生成绩管理系统课设报告含程序和截图Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《最新c++学生成绩管理系统课设报告含程序和截图Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
可以按学号、姓名、VC++成绩、英语成绩、物理成绩、总成绩、平均成绩等进行排序并输出;
5)删除:
删除某条记录;
6)帮助和关于;
7)退出:
推出整个系统的运行。
8)一些时间富裕的学生可以增加更多的菜单项,比如设置颜色、字体风格等。
二、系统分析(需求分析)
1.需求分析:
a.能对学生各科成绩进行录入。
b.能显示各科成绩平均分。
c.能显示总成绩和单科分最高的同学。
d.能对删除学生信息。
e.能对学生的成绩按姓名、学号进行查询。
f.能按学号和成绩排序。
g.能显示所有学生信息。
2.系统性能要求:
a.系统安全、可靠;
b.功能齐全;
c.操作方便、界面友好;
d易于维护和扩充。
3.系统的功能分析:
资料维护:
系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。
系统功能:
可以对数据表中的信息进行浏览。
系统查询:
可以对学生的信息进行查询。
4.系统功能模块
学生成绩查询系统有:
成绩录入、删除,数据查询,排序显示构成。
5.模块框架图
三、系统设计与实现
1.界面设计
程序运行后会出现一个简捷的窗口,便于用户查询数据。
2.功能设计与实现
通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。
应用系统主控界面包括记录编辑和记录查询等功能模块。
记录编辑功能完成学生成绩记录编辑和记录查询功能。
记录查询功能可以对数据各分类的记录进行查询。
四、运行显示
1.初始页界面:
2.输入学生信息界面:
“请按照提示输入学生信息……”是帮助和关于,其他同学的信息如该截图依照提示录入即可。
录入完毕显示界面为:
3.显示总成绩和各单科分最高的同学的界面为:
4、删除学生的信息界面为:
5.按姓名查询:
6.按学号查询:
7.排序分系统:
1)姓名排序:
2)学号排序:
3)VC++成绩排序:
其他排序法与以上一样,此处不再一一显示。
8.显示所有学生信息:
9.保存文件:
10退出系统:
.
此外,界面的颜色与文字的颜色,也是可以改变的。
system("
color97"
);
//设置背景和字体颜色F是背景颜色的设置值0是字体颜色的设置值(程序第764行)
改变9和7的值即改变颜色。
五、总结
此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;
进一步加深对C++语言的理解和掌握。
理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。
我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
六、参考资料
C++程序设计谭浩强清华大学出版社
源程序
#include<
stdlib.h>
#include<
conio.h>
iostream>
string>
fstream>
iomanip>
usingnamespacestd;
classstudent
{
private:
charname[20];
//姓名
charsex[8];
//性别
charnative[8];
//籍贯
doublecpro;
doubleenglish;
doublephysical;
doubleallscore;
doubleaverage;
//课程
intorder;
//名次
intnumber;
//学号
public:
student(){}
student(char*n,intnu,char*sex,char*native,doublecc,doubleeng,doublephy,doubleas,doubleav)
{
strcpy(this->
name,n);
this->
number=nu;
native,native);
sex,sex);
cpro=cc;
english=eng;
physical=phy;
allscore=as;
average=av;
}
doublegetcpro()
returnthis->
cpro;
doublegetenglish()
english;
doublegetphysical()
physical;
doublegetalls()
allscore;
doublegetAverage()
average;
char*getname()
name;
intgetnumber()
number;
friendvoidShowHightsrcore();
friendvoidShowStuInfo();
friendvoidQueryByNumber();
friendvoidQueryByName();
friendvoidSaveFlie();
friendvoidInputStudentInfo();
};
students[50];
//指针对象,最多存50个学生数据
intindex=0;
voidShowMenu()
{
cout<
<
"
******************************************"
endl;
****学生成绩管理系统****"
0、输入学生信息"
1、显示各单科成绩平均分"
2、显示总成绩和各单科分最高的同学"
3、删除学生的信息"
4、按姓名查询"
5、按学号查询"
6、排序分系统"
7、显示所有学生信息"
8、保存文件"
9、退出系统"
********************************************"
选择0-9数字进行操作"
}
voidInputStudentInfo()
chargetkey=0;
//是否录入的选择标记
charname[20]={0};
//姓名临时中间变量
intnumber=0;
charsex[8]={0};
charnative[8]={0};
doublecpro=0;
//c语言成绩
doubleenglish=0;
//英语成绩
doublephysical=0;
//物理成绩
doubleallscore=0;
//总成绩
doubleaverage=0;
//平均成绩
intcore=0;
请按照提示输入学生信息......"
do
cout<
endl<
学号:
;
cin>
>
boolIsOk;
do
{
boolIsOk=true;
for(intn=0;
n<
index;
n++)
{
if(number==s[n].number)
{
cout<
输入的学号重复,请重新输入:
cin>
IsOk=false;
break;
}
}
}while(!
IsOk);
姓名:
性别:
sex;
籍贯:
native;
C++成绩:
英语成绩:
物理成绩:
allscore=cpro+english+physical;
//计算该生的总成绩
总成绩:
allscore<
//显示该生总成绩
average=allscore/3;
//技术该生平均成绩总成绩/科目数
平均成绩:
average<
//显示该生平均成绩
s[index]=student(name,number,sex,native,cpro,english,physical,allscore,average);
数据输入成功,想继续输入吗?
(y继续/任意键退出录入):
getkey;
index++;
}while(getkey=='
y'
||getkey=='
Y'
);
学生数据录入完毕,键入任意键返回主菜单。
getchar();
voidShowAverage()
if(index==0)
管理系统中没有输入数据!
键入任意键返回主菜单。
getchar();
return;
doublecpro_ave=0;
doubleenglish_av=0;
doublephysical_ave=0;
for(inti=0;
i<
i++)
cpro_ave+=s[i].getcpro();
english_av+=s[i].getenglish();
physical_ave+=s[i].getphysical();
该班级各单科总平均分分别为:
VC++平均成绩为"
cpro_ave/index<
分"
英语平均成绩为"
english_av/index<
物理平均成绩为"
physical_ave/index<
voidShowStuInfo()
学号姓名c++英语物理总成绩平均成绩"
{
s[i].number<
setw(7)<
s[i].name<
setw(4)
<
s[i].cpro<
setw(5)<
s[i].english<
setw(5)
s[i].physical<
setw(6)<
s[i].allscore<
setw(10)
s[i].average<
voidShowHightsrcore()
doubleallscoretmp=0;
//用来存放总分最高的临时变量
doublecprotmp=0;
//用来存放VC最高的临时变量
doubleenglishtmp=0;
//用来存放英语最高的临时变量
doublephysicaltmp=0;
//用来存放物理最高的临时变量
inti;
for(i=0;
i++)//遍历存储学生信息的数组,找出总分VC英语物理的最高分
allscoretmp=allscoretmp<
s[i].getalls()?
s[i].getalls():
allscoretmp;
cprotmp=cprotmp<
s[i].getcpro()?
s[i].getcpro():
cprotmp;
englishtmp=englishtmp<
s[i].getenglish()?
s[i].getenglish():
englishtmp;
physicaltmp=physicaltmp<
s[i].getphysical()?
s[i].getphysical():
physicaltmp;
总成绩最高的学生为:
学号姓名c++英语物理总成绩平均成绩"
i++)//遍历数组,输出总分最高的学生信息
if(allscoretmp==s[i].getalls())
cout<
<
(s[i]).english<
setw(6)
setw(10)<
}
VC成绩最高的学生为:
if(cprotmp==s[i].getcpro())
英语成绩最高的学生为:
if(englishtmp==s[i].getenglish())
物理成绩最高的学生为:
姓名学号c++英语物理总成绩平均成绩"
if(physicaltmp==s[i].getphysical())
voidDelete()
while
(1)
boolIsfind=false;
请输入你要删除的学生姓名:
charnametmp[20];
nametmp;
for(inti=0;
{
if(strcmp(s[i].getname(),nametmp)==0)//在数组中找到要删除学生
Isfind=true;
for(intj=i;
j<
j++)
s[j]=s[j+1];
//将删除的学生后的数据全部往前移一位
index--;
cout<
删除成功!
if(!
Isfind)//没有找到输入的学生的姓名
没有找要删除的学生的信息,请查证后再试。
"
<
要删除其他的学生么?
(Y/N)"
chargetkey;
if(getkey!
='
&
getkey!
='
)
break;
}//while
(1)
voidQueryByNumber()
chargetkey;
do{
boolIsFind=false;
intnumbertmp;
请输入你要查询的学生的学号:
numbertmp;
if(s[i].number==numbertmp)
IsFind=true;
您要查询的学生是:
(s[i]).name<
的成绩是:
<
C++:
(s[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 c+ 学生 成绩管理系统 报告 程序 截图
