学生成绩单管理系统源代码

上传人:z****2 文档编号:71578687 上传时间:2022-04-07 格式:DOC 页数:8 大小:89.50KB
收藏 版权申诉 举报 下载
学生成绩单管理系统源代码_第1页
第1页 / 共8页
学生成绩单管理系统源代码_第2页
第2页 / 共8页
学生成绩单管理系统源代码_第3页
第3页 / 共8页
资源描述:

《学生成绩单管理系统源代码》由会员分享,可在线阅读,更多相关《学生成绩单管理系统源代码(8页珍藏版)》请在装配图网上搜索。

1、学生成绩单管理系统利用面向对象编程方法设计一个学生成绩单管理系统,要现以下功能:录入(添加) 学生信息: 学号、平时成绩和考试成绩, 系统自动计算总评成绩 (平 时成绩占 20%,考试成绩占 80%)。可以一次录入多名学生的信息。 查询学生成绩:输入要查询的学生的学号,查询该学生的信息并显示。 显示学生成绩单:按学号顺序显示学生成绩单。 删除学生信息:输入要删除的学生的学号,得到用户确认后,删除该学生的信息。 修改学生信息: 输入要修改的学生的学号, 显示该学生的原有信息, 用户输入修改 后的信息。对成绩进行统计分析: 可以对总成绩进行统计分析, 分别统计出各个成绩段的人数 和比例 , 本课程

2、班级平均成绩等。实验步骤如下:1. 创建项目创建一个 Win32 Console Application ,项目名为“ StudentScore”。2. 定义学生类 CStudent( 1)新建一个“ C/C+ Header File ”,文件名为“ student.h ”,代码如下:/ student.h 学生类的定义class CStudent public:CStudent( char * id=, char *na=,int us=0, int ts=0 ); /构造函数CStudent( const CStudent &s ); / 拷贝构造函数CStudent();char* Ge

3、tID(); / 获取学生的学号double GetTotalScore();/ 获取总评成绩static void TableHead( );/ 输出表头void Display( ); / 显示学生信息private:char ID5; char name10;int UsualScore;/int TestScore;/double TotalScore; / void CalcTotalScore();/ 学号/ 平时成绩 / 考试成绩 / 总评成绩/ 计算总评成绩;(2)新建一个C+ Source File ”,文件名为student.cpp”,代码如下: / student.cpp

4、 学生类的成员函数实现#include #include #include student.hCStudent:CStudent( char * id, char *na,int us, int ts )/ 构造函数strcpy(ID,id); strcpy(name,na);UsualScore=us;TestScore=ts;CalcTotalScore();CStudent:CStudent( const CStudent &s )/ 拷贝构造函数strcpy( ID, s.ID );strcpy( name, s.name );UsualScore=s.UsualScore;TestS

5、core=s.TestScore;TotalScore=s.TotalScore;CStudent:CStudent() char* CStudent:GetID() / 取得学生的学号 return ID; double CStudent:GetTotalScore() / 获取总成绩 return TotalScore;void CStudent:TableHead( ) / 输出学生信息表头coutsetw(4) 学号 setw(10)setw(10) 平时成绩 setw(10) 考试成绩 setw(12) 总成绩 n;void CStudent:Display( ) / 显示学生信息

6、coutsetw(3)IDsetw(10)namesetw(10)UsualScore setw(10)TestScoresetw(10)TotalScoreendl;void CStudent:CalcTotalScore() / 计算总成绩 TotalScore= UsualScore*0.2 + TestScore*0.8;3. 定义成绩单类 CStuDataBase(1) 新建一个C/C+ Header File ”,文件名为StuDataBase.h”,代码如下: / StuDataBase.h 定义成绩单类,用来管理所有学生的成绩信息#include student.hconst

7、int MaxStuNum=51; / 班级学生人数最多 50 人class CStuDatabase public:CStuDatabase();/ 构造函数,从文件中读入学生成绩信息CStuDatabase();/ 析构函数,将学生成绩信息写入到文件中void ListScore( );/ 显示成绩单,输出所有学生信息void SelectStuInfo( );/ 查询学生信息void AddStuInfo( );/ 添加学生成绩void DelStuInfo( );/ 删除学生信息void EditStuInfo( );/ 修改学生信息void AnalyScore( );/ 对成绩进行

8、统计分析void StuDBM( int );/ 成绩库维护int FunctionMenu(); / 功能菜单private:int num;/ 学生人数CStudent stuMaxStuNum;/ 学生数组 ,stu0 不用int SearchStu(const char* id); / 查找指定学号的学生 void SortStu( );/ 按学号从小到大对成绩单排序;(2) 新建一个C+ Source File ”,文件名为StuDataBase.cpp”,代码如下: / StuDataBase.cpp 成绩单类的实现#include #include #include #inclu

9、de #include #include StuDataBase.hint InputScore( )/ 输入百分制成绩int score;cinscore;while ( score100 ) coutscore;return score;CStuDatabase:CStuDatabase() / 从文件中读入学生信息 CStudent s; / 学生对象num=0;fstream StuFile; / 该文件用来保存学生信息StuFile.open( StuInfo.dat, ios:in );if ( !StuFile ) cout 文件 StuInfo.dat 不能打开! n;retu

10、rn;StuFile.read( (char*)&s, sizeof(s) );while ( !StuFile.eof() ) num+;stunum=s;StuFile.read( (char*)&s, sizeof(s) );StuFile.close();CStuDatabase:CStuDatabase() / 将学生信息写入到文件中fstream StuFile; / 该文件用来保存学生信息StuFile.open( StuInfo.dat, ios:out );if ( !StuFile ) cout 文件 StuInfo.dat 不能创建! n;return;for ( int

11、 i=1; i=num; i+ ) StuFile.write( (char*)&stui, sizeof(stui) ); StuFile.close();int CStuDatabase:SearchStu(const char * id) / 查找指定学号的学生for ( int i=1; i=num; i+ )if ( strcmp(stui.GetID(),id)=0 )return i;return -1;int CStuDatabase:FunctionMenu() / 功能菜单 int FuncNum; / 保存操作编号system(cls); / 清屏coutnnn;cout

12、setw(20) H*nnn;查询学生成绩 nn 显示学生成绩单 nn 添加学生信息 nn 删除学生信息 nn 修改学生信息 nncoutsetw(24) 请选择要进行的操作 :nn;coutsetw(28) 1 -setw(28) 2 -setw(28) 3 -setw(28) 4 -setw(28) 5 -setw(28) 6 - 对成绩进行统计分析 nn setw(28) 0 - 退出 nnn;coutsetw(20) FuncNum;while ( FuncNum6 )cout 请重新选择要进行的操作: FuncNum;return FuncNum;void CStuDatabase:

13、StuDBM( int FuncNum ) / 成绩维护switch ( FuncNum ) case 1: SelectStuInfo(); break; / 查询学生成绩 case 2: ListScore( ); break;/ 显示成绩单case 3: AddStuInfo( ); break; / 添加学生信息 case 4: DelStuInfo( ); break;/ 删除学生信息case 5: EditStuInfo( ); break; / 修改学生信息 case 6: AnalyScore( ); break; / 对成绩进行统计分析 void CStuDatabase:S

14、electStuInfo( ) / 查询学生信息system(cls); / 清屏char no5; / 临时保存学号coutn 请输入要查询的学生学号: no;int i=SearchStu(no);if ( i=-1 ) coutn 你查找的学生不存在! n; else coutn 你所查找的学生成绩如下: nn ; CStudent:TableHead( ); / 输出表头 stui.Display();coutn 按任意键返回 endl;getch();void CStuDatabase:ListScore( ) / 显示成绩单system(cls); / 清屏if ( num = 0

15、 ) cout 当前还没有学生成绩! n; elseSortStu( ); / 按学号对成绩单排序 CStudent:TableHead( ); / 输出表头 for ( int i=1; i=num; i+ ) stui.Display();coutn 共有 num 条学生成绩信息 n; coutn 显示成绩完毕 !nn 按任意键返回 endl;getch();void CStuDatabase:AddStuInfo( ) / 添加学生成绩 system(cls); / 清屏char no5; / 临时保存学号coutno;while ( strcmp(no,-1)!=0 )int i=Se

16、archStu( no );while ( i!=-1 ) coutno;if ( strcmp(no,-1)=0 )coutn 本次操作完成 !nn 按任意键返回 endl;getch();return; i=SearchStu( no );num+;char na10;coutna;coutn 请输入要添加的学生的平时成绩: n;int us = InputScore();coutn 请输入要添加的学生的考试成绩: n;int ts = InputScore();CStudent s(no,na,us,ts);stunum=s;coutno;coutn 本次操作完成 !nn 按任意键返回

17、endl;getch();void CStuDatabase:DelStuInfo( ) / 删除学生信息模块 system(cls); / 清屏char no5; / 临时保存学号 coutn 请输入要删除的学生学号: no;int i=SearchStu( no );if ( i=-1 ) coutn 你要删除的学生不存在! n; else coutn 您所删除的学生信息如下: nn ; CStudent:TableHead( ); / 输出表头 stui.Display();char anser;coutanser;if ( anser=y | anser=Y)for ( int j=i

18、+1; j=num; j+ ) stuj-1=stuj;num-;coutn 删除信息成功! endl;coutnn 按任意键返回 endl;getch();void CStuDatabase:EditStuInfo( ) / 修改学生信息模块 system(cls); / 清屏char no5; / 临时保存学号coutn 请输入要修改的学生学号: no;int i=SearchStu( no );if ( i=-1 ) coutn 你要修改的学生不存在! n; else coutn 您所修改的学生成绩如下: nn ; CStudent:TableHead( ); / 输出表头 stui.D

19、isplay();coutn 请输入学生的新信息: ; coutna;coutn 请输入学生的平时成绩: n; int us = InputScore();coutn 请输入学生的考试成绩: n; int ts = InputScore();CStudent s(no,na,us,ts); stui=s;coutn 修改信息成功! endl;coutnn 按任意键返回 endl;getch();void CStuDatabase:AnalyScore( ) / 对成绩进行统计分析 system(cls); / 清屏int c5=0; / 用来保存各个分数段的人数 double AveScore

20、=0; / 用来保存所有学生的平均成绩 double ts; / 临时保存总评成绩for ( int i=1; i=num; i+ )ts=stui.GetTotalScore(); AveScore+=ts;case 9:c0+;break;/ 90(含 90)分以上人数case 8:c1+;break;/ 80(含 80) -90(不含90)分人数case 7:c2+;break;/ 70(含 70) -80(不含80)分人数case 6:c3+;break;/ 60(含 60) -70(不含70)分人数default: c4+; break; / 不及格人数 switch ( int(

21、ts/10 ) ) case 10:AveScore/=num;coutn 学生成绩分布情况如下: nn;cout 优秀( 90 分 -100 分)人数: c0 ,t 占 double(c0)/num*100 %nn;cout良好(80 分-89 分)人数:c1 , t 占” double(c1)/num*100 %nn;cout 中等( 70 分- 79 分)人数: c2 , t 占 double(c2)/num*100 %nn;cout及格(60 分-69 分)人数:c3 , t 占” double(c3)/num*100 %nn;cout 不及格( 60 分以下 )人数: c4 , t

22、占double(c4)/num*100 %nn;cout 学生总人数为: numendl;coutn 班级平均成绩为: AveScoreendl;coutn 按任意键返回 endl;getch();void CStuDatabase:SortStu( )/ 按学号从小到大对成绩单排序 int i, j, k;for ( i=1; inum; i+ )k=i;for ( j=i+1; j=num; j+ )if ( strcmp( stuj.GetID(),stuk.GetID() )0 )k=j;CStudent temp=stui;stui=stuk;stuk=temp;4. 定义主程序新建

23、一个“ C+ Source File ”,文件名为“ StudentScoreMain.cpp ”,代码如下:#include #include #include StuDataBase.hvoid welcome();void main()welcome(); / 欢迎画面CStuDatabase stuDB; / 生成成绩单对象/ 显示功能菜单/ 学生库管理int FuncNum;/ 保存操作编号FuncNum=stuDB.FunctionMenu(); while ( FuncNum!=0 )stuDB.StuDBM( FuncNum );FuncNum=stuDB.FunctionMenu();void welcome()coutnnn;*nnn;coutsetw(20) coutsetw(24) 欢迎使用学生成绩单管理系统 nnn;*nnn;coutsetw(20) coutn 按任意键继续 endl;getch();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!