c++学生成绩管理系统课设报告含程序和截图.docx
- 文档编号:12311375
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:41
- 大小:476.38KB
c++学生成绩管理系统课设报告含程序和截图.docx
《c++学生成绩管理系统课设报告含程序和截图.docx》由会员分享,可在线阅读,更多相关《c++学生成绩管理系统课设报告含程序和截图.docx(41页珍藏版)》请在冰豆网上搜索。
c++学生成绩管理系统课设报告含程序和截图
《C++程序设计》
课程设计报告
设计题目:
学生成绩管理系统
一、设计任务与要求…………………………………………3
1.设计容………………………………………………3
2.课程设计的要求………………………………………3
二、系统分析(需求分析)…………………………………3
1.需求分析…………………………………………3
2.系统性能要求……………………………………3
3.系统的功能分析……………………………………3
4.系统功能模块……………………………………3
5.模块框架图…………………………………………3
三、系统设计与实现……………………………………4
1.界面设计…………………………………………4
2.功能设计与实现………………………………4
四、运行显示……………………………………4
五、总结…………………………………………11
六、参考资料……………………………………11
附录:
源程序……………………………………11
一、设计任务与要求
1.目的:
通过一个实际的系统开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练的掌握C++程序开发的基本方法和基本步骤,对系统开发时间又进一步体会。
从而综合复习《C++程序设计语言》的所有知识点,进一步熟练面向对象程序的开发方法和流程,提高学生独立分析问题和解决问题的能力。
真正理解书本知识,牢固掌握课堂教学容。
为毕业设计及毕业后从事专业技术工作打下基础,提高学生全面素质。
2.课程设计的要求:
(1)要求用VC++语言来实现一个简单的学生数据管理系统,该系统完成后基本上要能够无错运行,能达到学生成绩管理系统的基本要求。
(2)各个功能分别是用函数来完成,函数存放在一个.cpp文件中。
(3)准备系统运行的模拟数据不得少于十条。
(4)成绩管理系统至少具有以下功能:
1)输入:
学生的基本信息,包括学号、姓名、性别、籍贯、VC++成绩、英语成绩、物理成绩等;
2)计算:
每个学生的总成绩、平均成绩所有学生单科的平均成绩,找出总成绩和单科成绩最高的学生并输出;
3)查询:
可以按学好姓名等进行查询;
4)排序:
可以按学号、姓名、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
#include
#include
#include
#include
#include
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;
strcpy(this->native,native);
strcpy(this->sex,sex);
this->cpro=cc;
this->english=eng;
this->physical=phy;
this->allscore=as;
this->average=av;
}
doublegetcpro()
{
returnthis->cpro;
}
doublegetenglish()
{
returnthis->english;
}
doublegetphysical()
{
returnthis->physical;
}
doublegetalls()
{
returnthis->allscore;
}
doublegetAverage()
{
returnthis->average;
}
char*getname()
{
returnthis->name;
}
intgetnumber()
{
returnthis->number;
}
friendvoidShowHightsrcore();
friendvoidShowStuInfo();
friendvoidQueryByNumber();
friendvoidQueryByName();
friendvoidSaveFlie();
friendvoidInputStudentInfo();
};
students[50];//指针对象,最多存50个学生数据
intindex=0;
voidShowMenu()
{
cout<<"******************************************"< cout<<"****学生成绩管理系统****"< cout<<"******************************************"< cout<<"0、输入学生信息"< cout<<"1、显示各单科成绩平均分"< cout<<"2、显示总成绩和各单科分最高的同学"< cout<<"3、删除学生的信息"< cout<<"4、按姓名查询"< cout<<"5、按学号查询"< cout<<"6、排序分系统"< cout<<"7、显示所有学生信息"< cout<<"8、保存文件"< cout<<"9、退出系统"< cout<<"********************************************"< cout<<"选择0-9数字进行操作"< cout<<"********************************************"< } 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;//名次 cout<<"请按照提示输入学生信息......"< do { cout< "; cin>>number; boolIsOk; do { boolIsOk=true; for(intn=0;n { if(number==s[n].number) { cout<<"输入的学号重复,请重新输入: "< cin>>number; IsOk=false; break; } } }while(! IsOk); cout< "; cin>>name; cout< "; cin>>sex; cout< "; cin>>native; cout< "; cin>>cpro; cout< "; cin>>english; cout< "; cin>>physical; cout< allscore=cpro+english+physical;//计算该生的总成绩 cout<<"总成绩: "< average=allscore/3;//技术该生平均成绩总成绩/科目数 cout<<"平均成绩: "< s[index]=student(name,number,sex,native,cpro,english,physical,allscore,average); cout<<"数据输入成功,想继续输入吗? (y继续/任意键退出录入): "; cin>>getkey; index++; }while(getkey=='y'||getkey=='Y'); cout<<"学生数据录入完毕,键入任意键返回主菜单。 "; getchar(); getchar(); } voidShowAverage() { if(index==0) { cout<<"管理系统中没有输入数据! "< cout< "< getchar(); getchar(); return; } doublecpro_ave=0; doubleenglish_av=0; doublephysical_ave=0; for(inti=0;i { cpro_ave+=s[i].getcpro(); english_av+=s[i].getenglish(); physical_ave+=s[i].getphysical(); } cout<<"该班级各单科总平均分分别为: "< cout<<"VC++平均成绩为"< cout<<"英语平均成绩为"< cout<<"物理平均成绩为"< cout< "< getchar(); getchar(); } voidShowStuInfo() { cout<<"学号姓名c++英语物理总成绩平均成绩"< for(inti=0;i { cout< < < < } } voidShowHightsrcore() { if(index==0) { cout<<"管理系统中没有输入数据! "< cout< "< getchar(); getchar(); return; } doubleallscoretmp=0;//用来存放总分最高的临时变量 doublecprotmp=0;//用来存放VC最高的临时变量 doubleenglishtmp=0;//用来存放英语最高的临时变量 doublephysicaltmp=0;//用来存放物理最高的临时变量 inti; for(i=0;i { allscoretmp=allscoretmp s[i].getalls(): allscoretmp; cprotmp=cprotmp s[i].getcpro(): cprotmp; englishtmp=englishtmp s[i].getenglish(): englishtmp; physicaltmp=physicaltmp s[i].getphysical(): physicaltmp; } cout<<"总成绩最高的学生为: "< cout<<"学号姓名c++英语物理总成绩平均成绩"< for(i=0;i { if(allscoretmp==s[i].getalls()) { cout< < < } } cout<<"VC成绩最高的学生为: "< cout<<"学号姓名c++英语物理总成绩平均成绩"< for(i=0;i { if(cprotmp==s[i].getcpro()) { cout< < < } } cout<<"英语成绩最高的学生为: "< cout<<"学号姓名c++英语物理总成绩平均成绩"< for(i=0;i { if(englishtmp==s[i].getenglish()) { cout< < < } } cout<<"物理成绩最高的学生为: "< cout<<"姓名学号c++英语物理总成绩平均成绩"< for(i=0;i { if(physicaltmp==s[i].getphysical()) { cout< < < } } cout< "< getchar(); getchar(); } voidDelete() { if(index==0) { cout<<"管理系统中没有输入数据! "< cout< "< getchar(); getchar(); return; } while (1) { boolIsfind=false; cout<<"请输入你要删除的学生姓名: "; charnametmp[20]; cin>>nametmp; for(inti=0;i { if(strcmp(s[i].getname(),nametmp)==0)//在数组中找到要删除学生 { Isfind=true; for(intj=i;j { s[j]=s[j+1];//将删除的学生后的数据全部往前移一位 } index--; cout<<"删除成功! "< } } if(! Isfind)//没有找到输入的学生的姓名 { cout<<"没有找要删除的学生的信息,请查证后再试。 "< } cout<<"要删除其他的学生么? (Y/N)"; chargetkey; cin>>getkey; if(getkey! ='y'&&getkey! ='Y') { cout< break; } }//while (1) cout< "< getchar(); getchar(); } voidQueryByNumber() { if(index==0) { cout<<"管理系统中没有输入数据! "< cout< "< getchar(); getchar(); return; } chargetkey; do{ boolIsFind=false; intnumbertmp; cout<<"请输入你要查询的学生的学号: "; cin>>numbertmp; cout< for(inti=0;i { if(s[i].number==numbertmp) { IsFind=true; cout<<"您要查询的学生是: "<<(s[i]).name< cout<<(s[i]).name<<"的成绩是: " <<"C++: "<<(s[i]).c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 学生 成绩管理系统 报告 程序 截图