ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:18.45KB ,
资源ID:9902100      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9902100.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩单管理系统源代码.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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”,代码如下:

4、/ student.cpp 学生类的成员函数实现#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 ); UsualS

5、core=s.UsualScore; TestScore=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

6、:Display( ) / 显示学生信息 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 定义成绩单类,用来管理所有学生的成绩信息#in

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

8、/ 修改学生信息 void AnalyScore( ); / 对成绩进行统计分析 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

9、.cpp 成绩单类的实现#include #include #include #include #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 );

10、if ( !StuFile ) cout文件StuInfo.dat不能打开!n; return; 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 ( !

11、StuFile ) cout文件StuInfo.dat不能创建!n; return; for ( int 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()

12、 /功能菜单 int FuncNum; / 保存操作编号 system(cls); /清屏 coutnnn; coutsetw(20) *nnn; coutsetw(24) 请选择要进行的操作:nn; coutsetw(28) 1 - 查询学生成绩nn setw(28) 2 - 显示学生成绩单nn setw(28) 3 - 添加学生信息nn setw(28) 4 - 删除学生信息nn setw(28) 5 - 修改学生信息nn setw(28) 6 - 对成绩进行统计分析nn setw(28) 0 - 退出nnn; coutsetw(20) FuncNum; while ( FuncNum6

13、) cout请重新选择要进行的操作:FuncNum; return FuncNum;void CStuDatabase: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; / 修改学

14、生信息 case 6: AnalyScore( ); break; / 对成绩进行统计分析 void CStuDatabase:SelectStuInfo( ) / 查询学生信息 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(); vo

15、id CStuDatabase:ListScore( ) / 显示成绩单 system(cls); /清屏if ( num = 0 ) cout当前还没有学生成绩!n; else SortStu( ); / 按学号对成绩单排序 CStudent:TableHead( ); / 输出表头 for ( int i=1; i=num; i+ ) stui.Display(); coutn共有 num 条学生成绩信息n; coutn显示成绩完毕!nn按任意键返回.endl; getch(); void CStuDatabase:AddStuInfo( ) / 添加学生成绩 system(cls); /

16、清屏 char no5; / 临时保存学号 coutno; while ( strcmp(no,-1)!=0 ) int i=SearchStu( 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 = InputSc

17、ore(); CStudent s(no,na,us,ts); stunum=s; coutno; coutn本次操作完成!nn按任意键返回.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.

18、Display();char anser;coutanser;if ( anser=y | anser=Y) for ( int j=i+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;

19、 else coutn您所修改的学生成绩如下:nn ; CStudent:TableHead( ); / 输出表头 stui.Display(); 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( ) / 对成绩进行统

20、计分析 system(cls); / 清屏 int c5=0; / 用来保存各个分数段的人数 double AveScore=0; / 用来保存所有学生的平均成绩 double ts; / 临时保存总评成绩 for ( int i=1; i=num; i+ ) ts=stui.GetTotalScore(); AveScore+=ts; switch ( int( ts/10 ) ) case 10: case 9: c0+; break; / 90(含90)分以上人数 case 8: c1+; break; / 80(含80)-90(不含90) 分人数 case 7: c2+; break;

21、 / 70(含70)-80(不含80) 分人数 case 6: c3+; break; / 60(含60)-70(不含70) 分人数 default: c4+; break; / 不及格人数 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占 double(c4)/num*100 %nn; cout学生总人数为:numendl; coutn班级平均成绩为:AveScoreendl; coutn按任意键返回.endl; getch(); void CStuDatabase:SortStu( ) / 按学号从小到大对成绩单排序 int i, j,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1