学生成绩管理系统C++.docx
《学生成绩管理系统C++.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++.docx(26页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C++
本科生课程设计
课程名称
C++课程设计
课程编号
1620001x2-0
学号
学生姓名
所在专业
所在班级
指导教师
成绩
教师签字
2009年月日
课程设计时间:
2009年10月10日
至2008年11月28日
目录:
(1)目的与要求
(2)系统需求分析与功能设计
(3)内容设计
(4)功能介绍
(5)实验总结
附件:
程序代码
正文
一、目的与要求
通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。
掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。
培养使用面向对象的程序设计方法编写计算机程序的能力。
通过设计一个《学生成绩管理系统》,进一步熟悉C++中类的概念、类的封装的实现方式。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
程序设计是一门实践性很强的课程,必须十分重视实践环节。
许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
二、系统需求分析与功能设计
系统需求:
学生管理系统要求利用C语言面向过程的编程思想来完成系统的设计,除了要突出C语言的函数特征,以多个函数实现每一个子功能外,还要画出功能模块图;另外,要求我们进行简单界面设计,能够实现友好的交互,熟练掌握C语言对文件的各种操作。
功能设计:
1.学生基本信息及成绩所选科目成绩的录入。
2.基本信息的查询与修改。
3.对该班各科成绩进行分析(即求平均成绩);
4.对所开课程的成绩分析(求最高分和及格人数);
三、设计内容
学生成绩管理系统
本《学生成绩管理系统》程序是一个具有对学生信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括最高分,最低分,及格率和需要补考的学生),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。
一切功能都可以在运行的软件中运行。
四、系统功能介绍:
通过主函数显示程序的主界面,通过输入的数字不同,函数会进入不同功能的函数继续运行。
输入1时,
进入学生资料管理的界面!
选择1-5数字
选择各个不同的小功能。
输入1时,
进行学生资料的录入,
输入2时,
进行学生资料的删除
输入3时,
进行学生资料的添加
输入4时,
进行学生资料的修改
输入5时,
进行学生资料的读取
输入0时,可以返回主界面
回到主界面后,输入2时,进入学生成绩统计管理功能的界面
可以输入0-8任意数字选择各个不同的小功能。
输入1时,
进行学生成绩总分排名
输入2时,
进行学生高数分数排名
输入3时,
进行学生英语分数排名
输入4时,
进行学生C++分数排名
输入5时,显示学生最高总分
输入6时显示学生最低总分
输入7时,进行学生平均分排名
输入8时,进行及格率计算
输入0时,可以返回主界面
回到主界面后,输入3时,进入学生成绩统计管理功能的界面。
可以输入0-3的任意数字,选择各个不同的功能
输入1时,进行按学号查询学生资料的功能
输入2时,进行按姓名查询学生资料的功能
输入3时,进行按所在班级查询学生资料的功能
输入0时,可以返回主界面
回到主界面后,输入4时,进入关于系统信息的界面
回到主界面后,输入0时,可以退出主界面,结束系统运行
五、实验总结
附件:
(程序代码)
#include
#include//输入输出文件
#include
#include//输出格式控制
usingnamespacestd;
charpress;intchoose;intn;
classStudent
{public:
intnum;
stringname;
intbj;
charsex;
floatMath;
floatEnglish;
floatCjj;
floatsum;
floataverage;
};
Studentstud[100];
//————————————————读取资料——————————————————
voidread()
{charfilename[20];
cout<<"从文件中读取信息!
"<cout<<"请输入文件名:
"<cin>>filename;
ifstreaminfile(filename,ios:
:
in|ios:
:
out);//定义输入文件流对象,以输出方式打开用户自定义的磁盘文件
if(!
infile)
{cerr<<"openerror!
"<(1);}//输出出错信息
do{inti=0;
infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].bj;//从磁盘读取学生的信息
infile>>stud[i].Math>>stud[i].English>>stud[i].Cjj;
cout<<"学生的学号:
"<<<"姓名:
"<<<"性别:
"<<<"班级:
"<<<"高数成绩:
"<<<"大学英语成绩:
"<<<"C++成绩:
"<while(!
infile.eof());//判断是否为文件尾
infile.close();
cout<<"读取成功!
"<//————————————————保存资料——————————————————voidsave()
{inti;
charfilename[20];
for(i=0;i{cout<<"学生的学号:
"<<<"姓名:
"<<<"性别:
"<<<"班级:
"<<<"高数成绩:
"<<<"大学英语成绩:
"<<<"C++成绩:
"<cout<<"将记录保存在文件夹!
"<cout<<"请输入文件名:
";
cin>>filename;
ofstreamoutfile(filename);
if(!
outfile){cerr<<"openerror!
"<for(i=0;i{outfile<<""<outfile<outfile.close();cout<<"保存成功!
"<//————————————————输入资料——————————————————
voidSR()
{cout<<"请根据你的需要输入学生的个数:
";
cin>>n;for(inta=0;a{cout<<"请输入第"<"<cout<<"学号:
"<<'';cin>>stud[a].num;
cout<<"姓名:
"<<'';cin>>stud[a].name;
cout<<"性别:
"<<'';cin>>stud[a].sex;
cout<<"班级:
"<<'';cin>>stud[a].bj;
cout<<"高数成绩:
"<<'';cin>>stud[a].Math;
cout<<"大学英语成绩:
"<<'';cin>>stud[a].English;
cout<<"C++成绩:
"<<'';cin>>stud[a].Cjj;
stud[a].sum=stud[a].Math+stud[a].English+stud[a].Cjj;
stud[a].average=(stud[a].Math+stud[a].English+stud[a].Cjj)/3;}
cout<<"输入成功,学生资料是否保存?
(y/n)"<>press;
switch(press)
{case'y':
save();break;default:
cout<<"不保存!
";break;}}
//————————————————删除资料——————————————————
voidSC()
{do{stringSC_name;
cout<<"请输入你要删除的学生名字:
"<>SC_name;
while(stud[i].name!
=SC_name&&iif(stud[i].name==SC_name)
{for(intj=i;j{stud[i].num=stud[i+1].num;
stud[i].name=stud[i+1].name;
stud[i].sex=stud[i+1].sex;
stud[i].bj=stud[i+1].bj;
stud[i].Math=stud[i+1].Math;
stud[i].English=stud[i+1].English;
stud[i].Cjj=stud[i+1].Cjj;}
cout<<"删除成功!
"<elseif(i==n){cout<<"can'tfindthisname"<"<cout<<"(是否继续操作?
(y/n))"<>press;}while(press=='y'||press=='Y');}
//————————————————添加资料——————————————————
voidTJ()
{do{cout<<"请添加新的学生信息"<cout<<"新的学生学号:
"<>stud[n].num;
cout<<"新学生姓名:
"<>stud[n].name;
cout<<"新学生性别:
"<>stud[n].sex;
cout<<"新学生班级:
"<>stud[n].bj;
cout<<"新学生的高数成绩:
"<>stud[n].Math;
cout<<