

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、封面 作者: PanHongliang 仅供个人学习 设计任务与要求: 设计一个学生成绩管理系统,包含学号、姓名、课程、成绩、数据录入、查 询、修改、排序等功能 . 根据 C+课程所学的概念、理论和方法,按照 C+程序设计的基本步骤,设 计出一个适当规模的程序来实现设计课程内容中的全部功能自己根据能力及需要添加相应功能模块,增强模拟系统功能 .包括系统的功能分析、系统的功能模 块设计、程序流程图或结构框图、结构设计等 . 需求分析: a. 能对学生各科成绩进行录入:. b. 能对学生的成绩进行增加. c. 能对学生的成绩进行删除. d. 能对学生的成绩进行修改. e. 能对学生的成绩按总成绩,
2、姓名,进行查询. f. 能输出学生的所有数据. g. 能进行成绩统计 h 能进行总分查询排名 . 系统性能要求: a. 系统安全、可靠; b. 功能齐全; c. 操作方便、界面友好; d 易于维护和扩充 . 一、 实验目的 进一步巩固所学 C+的基本概念和理论;能够完成简单的程序设计;进一 步培养实际分析问题和实践动手编程的能力; 二、 实验内容 采用 vc6.0 环境编译学生成绩管理系统 .运用 char,int,float 等数据类型,输入 学生的学号、姓名、班级及各科成绩并对各科成绩进行分析 .并对学生各科成绩 进行录入,对学生的成绩进行增加,对学生的成绩进行删除 .对学生的成绩进行 修
3、改 .对学生的成绩按总成绩,姓名,进行查询等 . 三、 设计思想及主界面设计 运用“数组”对程序进行编写,按照 C+设计的基本步骤逐步编写运行.设 置学生的成绩信息:学生学号、姓名、课程及成绩 .计算学生总成绩:总评成绩 =各科成绩之和; 显示学生的姓名、平均成绩及总成绩;并能对成绩进行查 询;用冒泡法进行排序 . 四、 程序结构 在 main ()函数中主要是通过” switch()选择判断来调用相关功能模块.在 主界面并选择“退出本系统”时退出程序 .主函数代码为: void main() for(。) switch() case 0: 输入学生成绩 break。 case 1:增加学生数
4、据 break case 2:修改学生数据 strcmp( name,sh. name breaks case 3:按姓名查询 break。 case 4:按学号查询 break。 case 5:按平均分排序 breaks case 6:按总分排序 breaks case 7:退出程序 五、程序功能模块图 功能: 学生成绩查询系统有:成绩录入、增加、修改,数据查询,排序 模块框架图: 六、程序 #in clude #in clude #in clude #include #include class student private: char name4。 /姓名 double cpro,e
5、nglish,math,sport,allscore,average / 课程 int order, number。 /名次,学号 public: student() student(char n4,int nu,double cc,double eng,double ma,double sp,double as,double av) strcpy(name,n)。 number=nu。 cpro=cc。 english=eng。 math=ma。 sport=sp。 allscore=as。 average=av。 friend void main()。 。 void main() doub
6、le allscore。 double average。 cout 欢迎使用学生管理系统 endl。 cout 0、输入数据 endl。 cout 1、增加数据 endl。 cout 2、修改数据 endl。 cout 3、按姓名查询 endl。 cout 4、按学号查询 endl。 cout 5、按平均分排序 endl。 cout 6、按总分高低排序 endl。 cout 7、退出系统 endl。 cout 选择 0-7 数字进行操作 p 。 if(p=0&p=7) flag=1。 else cout 指令错误!请重新输入: endl。 while(flag=0) 。 do swit
7、ch(p) /接收功能选项 case 0: /输/ 入数据 char c。 char number。double cpro,english,math,sport do coutendlname。 coutendlnumber。 coute ndlvv C+成绩:。 cincpro。 coutendlenglish。 coutendlmath。 coutendlsport。 allscore=cpro+english+math+sport 。 cout 总成绩 :allscoreendl。 average=(cpro+english+math+sport)/4。 cout 平
8、均成绩 :averageendl。 filej=new ofstream(D:student.dat,ios:ate)。 *filej 姓名 name 学号 number C+ 成绩 cpro 英语成绩 english 线代成绩 math 体育成绩 sport总成绩vvallscorevv平均成绩averageend。 j+ 。 si= stude nt(n ame, nu mber,cpro,e nglish,math,sport,allscore,average) i+。 coutc。 coutendl。 do if(c!=y&c!=n) cout 指令错误!请重新输入! endl
9、c。 else flag=1。 while(flag=0) 。 while(c=y) 。 break。 case 1: /增/ 加数据 char name20。 int number。double cpro,english,math,sport char c。 do coutname。 coutendlnumber。 coute ndlvv C+成绩:。 cincpro。 coutendlenglish。 coutendlmath。 coutendlsport。 coutendl。 allscore=cpro+english+math+sport。 cout 总成绩 :allscoreendl
10、。 average=(cpro+english+math+sport)/4。 cout 平均成绩 :averageendl。 filej=new ofstream(D:student.dat,ios:ate) 。 *filej 姓名 name 学号 number C+ 成绩 cpro 英语成绩 english 线代成绩 math 体育成绩 sport总成绩vvallscorevv平均成绩averageendl。 j+ 。 si= stude nt(n ame, nu mber,cpro,e nglish,math,sport,allscore,average) i+。 coutc。 coute
11、ndl。 if(c!=y&c!=n) cout 指令错误!请重新输入! endlc。 while(c=y) 。 break。 case 2: /修/ 改数据 char nu。double cc,eng,ma,sp,as,av flag=O。 char c。 if(i=0) cout 系统中找不到这个学生 。 do coutname。 coutendl。 for(int h=0。hi。 h+) h 纪录要修改学生的位置 if(strcmp( name,sh. name)=0) 找到要修改名字的位置 flag=1 。 coutnu。 coutendlvv C+成绩:。
12、 cincc。 coutendleng。 coutendlma。 coutendlsp。 as=cc+eng+ma+sp。 coutendl 总成绩 :as。 av=as/6。 coutendl 平均成绩 :av。 coutendl。 sh.cpro=cc。 sh.english=eng。 sh.math=ma。 sh.sport=sp。 sh.number=nu。 cout 数据修改成功! endl 。 if(flag=0) cout 您要修改的学生本来就不存在!请检查重新输入! coutc。 coutendl。 if(c!=y&c!=n) cout 指令错误!请重新输入! endl
13、c。 while(c=y) 。 break。 case 3: /按/ 姓名查询 char j=0。char Co if(i=0) cout 管理系统中没有输入数据! endl。 break。 do int flag=0。 coutn。 coutendl。 for(int j=0 。 ji 。 j+) if(strcmp(n,(sj).name)=0) flag=1 。 cout 您要查询的学生是 :(sj).nameendl 。 cout(sj).name 的 成 绩 是 : C+: (sj).cpro 英 语 (sj).english 线代: (sj).math 体育: (s
14、j).sport 总成绩 (sj).allscore 平均成绩 (sj).averageendl。 endl。 if(flag=0) cout 对不起 !您要查询的学生不存在 !endl 。 coutc。 coutendl。 if(c!=y&c!=n) cout 指令错误!请重新输入! c。 while(c=y) 。 break。 case 4: /按/ 学号查询 int n,j=0。 char c。 if(i=0) cout 管理系统中没有输入数据! endl 。 break。 do int flag=0 。 coutn 。 coutendl。 for(int j=0 。 ji 。
15、j+) if(sj.number=n) flag=1。 cout 您要查询的学生是: (sj).nameendl 。 cout(sj).name 的 成 绩 是 : C+ : (sj).cpro 英 语 : (sj).english 线 代 : (sj).math 体 育 : (sj).sport 总 成 绩 :(sj).allscore 平均成绩 :(sj).averageendl。 if(flag=0) cout 对不起 !您要查询的学生不存在 !endl 。 coutc 。 coutendl。 if(c!=y&c!=n) cout 指令错误!请重新输入! c 。 while(c=
16、y) 。 break。 case5:/平均分排序 student temp。 for(int a=0。 ai。a+) for(int b=a+1。 bi。 b+) while (sa.averageyn。 while(yn!=y&yn!=n) coutvv操作错误! !请重新输入:。 cinyn。 if(yn=y) cout所有学生的成绩按总分从高到低的排名是:e ndl。 cout 本系统所有学生数据如下: endl。 if(i=0) cout 管理系统中没有输入数据! endl。 coutvv姓名 学号 C+英语线代体育总成绩平均成绩endl for(int b=0 。 bi。 b
17、+) vvsetw(7)vvsb.numbervvsetw(4) vv(sb).cprovvsetw(5)vv(sb).englishvvsetw(5) vv(sb).mathvvsetw(4)vv(sb).sportvvsetw(5) vvsb.allscorevvsetw(10)vv(sb).averageyn。 while(yn!=y&yn!=n) coutvv 操作错误!请重新输入: 。 cinyn。 if(yn=y) coutvv所有学生的成绩按总分从高到低的排名是:vvendl。 coutvv 本系统所有学生数据如下: vvendl。 if(i=0
18、) coutvv 管理系统中没有输入数据! vvendl。 coutvv姓名 学号 c+英语线代体育总成绩平均成绩vvendl for(int k=0 。 kvi 。 k+) vvsetw(7)vvsk.numbervvsetw(4) (sk).cprosetw(5)(sk).englishsetw(5) (sk).mathsetw(4)(sk).sportsetw(5) sk.allscoresetw(10)(sk).averagesetw(7)endl。 break。 case7:/退出 exit(0) 。 coutBye bye!endl 。 coutw 。 c
19、outendl。 if(w!=y&w!=n) cout 指令错误!请重新输入! endl 。 else flag=1。 while(flag=0) 。 if(w=y) cout 请输入操作代码 :0 输入数据 endl 。 cout 1 增加数据 endl。 cout 2 修改数据 endl。 cout 3 按姓名查询 endl。 cout 4 按学号查找 endl。 cout 5 按平均分高低排序 endl。 cout 6 按总分高低排序 endl。 cout 7 退出系统 p。 while(w=y) 。 七、程序未完成和添加的功能 程序未完成功能有对学生的成绩进行删除和按总成绩查询
20、 .添加的功能有按 平均分排序 . 八、总结及参考资料 参考资料: C+全方位学习中国铁道出版社,C+程序设计题解与上机指导 清 华大学出版社,C+语言基础教程人民邮电出版社, C+程序设计基础 (第 3 版),以及上网查询资料等 . 总结: 此次 C+课程设计,在指导教师的精心教导下,我们学会了如何用 C+编 写一个简单的应用程序首先要对程序的设计要求有一个比较明确的认识,然后 系统分析与系统设计,最后是代码设计与调试 程序实现上,设计了简单的查询 界面,将各个功能集中出来按照程序编写原则,便于查询 通过这次 C+程序设计,我从中得到很大的收益,并且学的了很多知 识.C+已 经学了一个学期了
21、,有许多知识都存在似懂非懂的现象,这种现象通 过实际的上机操作,已经减少了许多 对这些知识也有了更深的理解和很好的掌 握.我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核 心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的 措施,这样花费时间在想补救措施是很不值得的 同时我还深刻的认识到,实践 是检验真理的唯一标准.没有实践,就不会发现和深刻体会它的真实所在 .只有通 过检验的真理,在自己的心里,才会认可它的真实性 我从中深深的感觉到实践 和理论的差异,只懂理论而没有实践是不行的,只有把理论和实践相结合才能 才能更好的了解程序设计的开发和运行,才能从中有所收益
22、 程序设计的完成, 使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌 握的知识.措施是很不值得的 同时,在此我对在程序过程中,老师同学给了我很多宝贵的建议和指点, 我很感谢他们.使他们让我学到了很多知识,让我对所学知识有了更深层次的理 解我从中受益很多 版权申明 本文部分内容,包括文字、图片、以及设计等在网上搜集整 理。版权为潘宏亮个人所有 This article in eludes some parts, in cludi ng text, pictures, and desig n. Copyright is Pan Hon glia ngs pers onal ow
23、n ership. 用户可将本文的内容或服务用于个人学习、研究或欣赏,以及 其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关 法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权 利人的书面许可,并支付报酬。 Users may use the contents or services of this article for pers onal study, research or appreciati on, and other non-commercial or non-profit purposes, but at t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 篮球班安全协议书
- 维修店纠纷协议书
- 屋面做防水协议书
- 购买宅基地协议书
- 学校寒假看协议书
- 有小孩退婚协议书
- 私下购楼房协议书
- 女婿被逼签协议书
- 解除协议收回原协议书
- 替别人卖货协议书
- 最好用的太阳能光伏发电站IRR财务分析模型-含节能数据-傻瓜式操作
- 《大学生职业发展与生涯规划(高职版)》 教案 第3课 探索自己的职业兴趣
- 基于主题意义的小学英语单元整体教学 论文
- 中山职业技术学院宿舍宽带接入校园网连接技术方案
- 陶行知教育名篇读书分享ppt
- 癌性伤口的处理教学课件
- 血栓与止血检验及其相关疾病-血栓与止血检验(血液学检验课件)
- 深圳中考志愿表格模板
- 村卫生室医保自查自纠报告及整改措施
- 【电气专业】15D501建筑物防雷设施安装
- 中国传统文化知到章节答案智慧树2023年西安理工大学
评论
0/150
提交评论