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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

学生成绩管理系统C++.docx

1、学生成绩管理系统C+ 学生成绩管理系统C+ 课程名称 C+课程设计 课程编号 1620191x2-0 学号 学生姓名 所在专业 所在班级 指导教师 成绩 教师签字 2009 年 月 日 课程设计时间: 2009 年 10 月 10 日 至 2008 年 11 月 28 日 1通过本课程设计的实践, 全面总结 C+课程学习中的的数据类型、 程序结构、 数组、 函数、 指针、 结构体等基本概念, 掌握其使用 方法。 掌握面向对象程序设计中有关类、 对象、 继承、 重载、 多态性、 输入输出流类体系、 文件操作的基本概念, 初步学会用 类与 2对象这种面向对象的程序设计方法编写应用 程序。 培养使用

2、 面向对象的程序设计方法编写计算机程序的能力。 通过设计一个学生成绩管理系统, 进一步熟悉 C+中类的概念、 类的封装的实现方式。 了 解系统开发的需求分析、 类层次设计、模块分解、 编码测试、 模块组装与整体调试的全过程, 加深对 C+的理解与 Visual C+环境的使用 ; 逐步熟悉程序设计的方法, 并养成良好的编程习 惯。 程序设计是一门实践性很强的课程, 必须十分重视实践环节。 许多 实际的知识不是靠听课和看书学到的, 而是通过长时间的实践积累的。 学生管理系统要求利用 C 语言面向过程的编程思想来完成系统的设计, 除了 要突出 C 语言的函数特征, 以多 个函数实现每一个子功能外,

3、 还要画出功能模块图; 另 外, 要求我们进行简单界面设计, 能够实现友好的交互, 熟练掌握 C 语言对文件的各种操作。 1. 学生基本信息及成绩所选科目 成绩的录入。 2. 基本信息的查询与修改。 3. 对该班各科成绩进行分析( 即求平均成绩) ; 4. 对所开课程的成绩分析( 求最高分和及格人数) ; 本学生成绩管理系统 程序是一个具有对学生信息进行录入、 3添加、 删除、 根据学号进行学生信息的查询、 显示已有学生信息的显示、 对学生成绩进行统计( 包括最高分, 最低分, 及格率和需要补考的学生), 可以对已有的学生信息进行修改, 保存和读取输入的数据等功能。 一切功能都可以在运行的软件

4、中运行。 通过主函数显示程序的主界面, 通过输入的数字不同, 函数会进入不同功能的函数继续运行。 输入 1 时, 进入学生资料管理的界面! 选择 1-5 数字 选择各个不同的小功能。 输入 1 时, 4进行学生资料的录入, 输入 2 时, 进行学生资料的删除 输入 3 时, 进行学生资料的添加 输入 4 时, 进行学生资料的修改 5输入 5 时, 进行学生资料的读取 输入 0 时, 可以返回主界面 回到主界面后, 输入 2 时,进入学生成绩统计管理功能的界面 可以输入 0-8 任意数字选择各个不同的小功能。 输入 1 时, 进行学生成绩总分排名 输入 2 时, 进行学生高数分数排名 输入 3

5、时, 进行学生英语分数排名 输入 4 时, 进行学生 C+分数排名 6输入 5 时, 显示学生最高总分 输入 6 时 显示学生最低总分 输入 7 时, 进行学生平均分排名 输入 8 时, 进行及格率计算 输入 0 时, 可以返回主界面 回到主界面后, 输入 3 时, 进入学生成绩统计管理功能的界面。 可以输入 0-3 的任意数字, 选择 各个不同的功能 输入 1 时, 进行按学号查询学生资料的功能 7输入 2 时, 进行按姓名查询学生资料的功能 输入 3 时, 进行按所在班级查询学生资料的功能 输入 0 时, 可以返回主界面 回到主界面后, 输入4 时, 进入关于系统信息的界面 回到主界面后,

6、 输入0 时, 可以退出主界 8面, 结束系统运行 #includeiostream #includefstream /输入输出文件 #includestring #includeiomanip /输出格式控制 using namespace std; char press; int choose; int n; class Student public: int num; string name; int bj; char sex; float Math; float English; float Cjj; float sum; float average; ; Student stud10

7、0; /读取资料 void read() char filename20; cout从文件中读取信息!endl; cout请输入文件名: endl; cinfilename; ifstream infile(filename, ios: : in| ios: : out) ; /定义输入文件流对象, 以输出方式打开用户自定义的磁盘文件 9 if(!infile) cerropen error!endl; exit(1) ; /输出出错信息 do int i=0; infilestudi. numstudi. namestudi. sexstudi. bj; /从磁盘读取学生的信息 infile

8、studi. Mathstudi. Englishstudi. Cjj; cout学生的学号: studi. num /向显示器输出学生的信息 姓名: studi. name 性别: studi. sex 班级: studi. bj 高数成绩: studi. Math 大学英语成绩: studi. English C+成绩: studi. Cjjendl; i+; while(!infile. eof() ) ; /判断是否为文件尾 infile. close() ; cout读取成功!endl; /保存资料void save() int i; char filename20; for(i=0

9、; in; i+) cout学生的学号: studi. num 姓名: studi. name 性别: studi. sex 班级: studi. bj 高数成绩: studi. Math 大学英语成绩: studi. English C+成绩: studi. Cjjendl; cout将记录保存在文件夹!endl; cout请输入文件名: ; cinfilename; ofstream outfile(filename) ; if(!outfile) cerropen error!endl; for(i=0; in; i+) outfile studi. num studi. name st

10、udi. bj ; outfilestudi. Math studi. English studi. Cjj; outfile. close() ; cout保存成功!endl; /输入资料 void SR() cout请根据你的需要输入学生的个数: ; cinn; for(int a=0; an; a+) studi. sex 10cout请输入第a+1个学生资料: endl; cout学号: ; cinstuda. num; cout姓名: ; cinstuda. name; cout性别: ; cinstuda. sex; cout班级: ; cinstuda. bj; cout高数成绩

11、: ; cinstuda. Math; cout大学英语成绩: ; cinstuda. English; coutC+成绩: ; cinstuda. Cjj; studa. sum=studa. Math+studa. English+studa. Cjj; studa. average=(studa. Math+studa. English+studa. Cjj) /3; cout输入成功, 学生资料是否保存?(y/n) endl; cinpress; switch(press) case y : save() ; break; default: cout不保存!; break; /删除资料

12、 void SC() dostring SC_name; cout请输入你要删除的学生名字: endl; int i=0; cinSC_name; while(studi. name!=SC_namein) i+; /查找判断 if(studi. name=SC_name) for(int j=i; jn-1; j+) studi. num=studi+1. num; studi. name=studi+1. name; studi. sex=studi+1. sex; studi. bj=studi+1. bj; studi. Math=studi+1. Math; studi. Engli

13、sh=studi+1. English; studi. Cjj=studi+1. Cjj; cout删除成功!endl; n=n-1; else if(i=n) coutcan t find this nameendl; cout该信息不存在, 无法删除!endl; cout(是否继(y/n) ) endl; cinpress; while(press= y | | press= Y ) ; /添加资料 void TJ() docout请添加新的学生信息endl; cout新的学生学号: endl; cinstudn. num; cout新学生姓名:endl; cinstudn. name;

14、cout新学生性别:endl; cinstudn. sex; cout新学生班级:endl; cinstudn. bj; cout新学生的高数成绩: endl; cinstudn. Math; cout新学生的大学英语成绩: endl; cinstudn. English; cout新学生的 C+成绩: endl; cinstudn. Cjj; studn. sum=studn. Math+studn. English+studn. Cjj; studn. average=(studn. Math+studn. English+studn. Cjj) /3; n+; 续操作? 11cout(是

15、否继续操作? (y/n) ) endl; cinpress; while(press= y | | press= Y ) ; cout添加成功, 学生资料是否保存?(y/n) endl; cinpress; switch(press) case y : save() ; break; default: cout不保存!; break; /修改资料 void XG() begin: string find_name; int i; cout请输入你要修改的学生名字: endl; cinfind_name; for(i=0; in; i+) if(studi. name=find_name) co

16、utstudi. name has been found: endl; cout学生的学号: studi. num 姓名:studi. name 性别: studi. sex 班级: studi. bj 高数成绩:studi. Math 大学英语成绩:studi. English C+成绩: studi. Cjjendl; break; if(studi. name!=find_name) coutcan t find this nameendl; cout请重新查找!endl; goto begin; for(int j=0; jn; j+) cout请输入新的信息:endl; cout学号

17、: ; cinstudj. num; cout姓名: ; cinstudj. name; cout性别: ; cinstudj. sex; cout班级: ; cinstudj. bj; cout高数成绩: ; cinstudj. Math; cout大学英语成绩: ; cinstudj. English; coutC+成绩: ; cinstudj. Cjj; studi. num=studj. num; studi. name=studj. name; studi. sex=studj. sex; studi. bj=studj. bj; studi. Math=studj. Math; s

18、tudi. English=studj. English; studi. Cjj=studj. Cjj; break; cout修改成功, 是否保存?(y/n) endl; cinpress; switch(press) case y : save() ; break; default: cout存!; break; /按总分排名 void zf() int m, t; string na; float z, h, e, c, p; char s; for(int j=0; jn-1;j+) /选择法排序 for(int i=0; in-1-j; i+) /以下的按各单科成绩和平均分也是运用选

19、择不 保 12法排序 if(studi. sumstudi+1. sum) m=studi. num; studi. num=studi+1. num; studi+1. num=m; na=studi. name; studi. name=studi+1. name; studi+1. name=na; s=studi. sex; studi. sex=studi+1. sex; studi+1. sex=s; t=studi. bj; studi. bj=studi+1. bj; studi+1. bj=t; h=studi. Math; studi. Math=studi+1. Math

20、; studi+1. Math=h; e=studi. English; studi+1. English=e; c=studi. Cjj; studi. Cjj=studi+1. Cjj; studi+1. Cjj=c; z=studi. sum; studi. sum=studi+1. sum; studi+1. sum=z; p=studi. average; studi+1. average=p; cout学生按总分排名:endl; cout学号 姓名 性别 班级 总分endl; for(int i=0; in; i+) coutstudi. num studi. name studi

21、. sex studi. bj studi. sumendl; coutendl; /按高数分数排名 void gs() int g, t; float z, h, e, c, p; string na; char s; for(int j=0; jn-1;j+) for(int i=0; in-1-j; i+) if(studi. Mathstudi+1. Math) g=studi. num; studi. num=studi+1. num; studi+1. num=g; na=studi. name; studi. name=studi+1. name; studi+1. name=n

22、a; s=studi. sex; studi. sex=studi+1. sex; studi+1. sex=s; t=studi. bj; studi. bj=studi+1. bj; studi+1. bj=t; h=studi. Math; studi. Math=studi+1. Math; studi+1. Math=h; e=studi. English; studi+1. English=e; c=studi. Cjj; studi. Cjj=studi+1. Cjj; studi+1. Cjj=c; z=studi. sum; studi. sum=studi+1. sum;

23、studi+1. sum=z; p=studi. average; studi+1. average=p; cout学生按高数分数排名: endl; cout学号 姓名 性别 班级 高数分数endl; for(int i=0; in; i+) coutstudi. num studi. name studi. sex studi. English=studi+1. English; studi. average=studi+1. average; studi. English=studi+1. English; studi. average=studi+1. average; 13 /按英语分

24、数排名 void yy() int g, t; float z, h, e, c, p; string na; char s; for(int j=0; jn-1;j+) for(int i=0; in-1-j; i+) if(studi. Englishstudi+1. English) g=studi. num; studi+1. num=g; na=studi. name; studi+1. name=na; s=studi. sex; studi+1. sex=s; t=studi. bj; studi+1. bj=t; h=studi. Math; studi+1. Math=h;

25、e=studi. English; studi+1. English=e; c=studi. Cjj; studi+1. Cjj=c; z=studi. sum; studi+1. sum=z; p=studi. average; studi+1. average=p; cout学生按英语分数排名: endl; cout学号 姓名 性别 班级 英语分数endl; for(int i=0; in; i+) coutstudi. num studi. name studi. sex studi. bj studi. Englishendl; coutendl; /按 C+分数排名 void cy(

26、) int g, t; float z, h, e, c, p; string na; char s; for(int j=0; jn-1;j+) for(int i=0; in-1-j; i+) if(studi. Cjjstudi+1. Cjj) g=studi. num; studi. num=studi+1. num; studi+1. num=g; na=studi. name; studi. name=studi+1. name; studi+1. name=na; s=studi. sex; studi. sex=studi+1. sex; studi+1. sex=s; stu

27、di. bj studi. Mathendl; coutendl; studi. num=studi+1. num; studi. name=studi+1. name; studi. sex=studi+1. sex; studi. bj=studi+1. bj; studi. Math=studi+1. Math; studi. English=studi+1. English; studi. Cjj=studi+1. Cjj; studi. sum=studi+1. sum; studi. average=studi+1. average; 14 t=studi. bj; studi.

28、bj=studi+1. bj; studi+1. bj=t; h=studi. Math; studi. Math=studi+1. Math; studi+1. Math=h; e=studi. English; studi+1. English=e; c=studi. Cjj; studi+1. Cjj=c; z=studi. sum; studi. sum=studi+1. sum; studi+1. sum=z; p=studi. average; studi+1. average=p; cout学生按 C+分数排名: endl; cout学号 姓名 性别 班级 C+分数endl; f

29、or(int i=0; in; i+) coutstudi. num studi. name studi. sex studi. bj studi. Cjjendl; coutendl; /计算最高总分 void max_student() float max; max=stud0. sum; for(int j=0; jn; j+) if(studj. summax) max=studj. sum; cout最高总分为:maxendl; /计算最低总分 void min_student() float min; min=stud0. sum; for(int j=0; jn; j+) if(

30、studj. summin) min=studj. sum; cout最低总分为:minendl; /按平均分排名 void aver() float z, h, e, c, p;int m, b; string na; char s; for(int j=0; jn-1;j+) for(int i=0; in-1-j; i+) if(studi. averagestudi+1. average) m=studi. num; studi. num=studi+1. num; studi+1. num=m; na=studi. name; studi+1. name=na; s=studi. sex; studi+1. sex

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

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