面向对象的编程技术成绩管理.doc_第1页
面向对象的编程技术成绩管理.doc_第2页
面向对象的编程技术成绩管理.doc_第3页
面向对象的编程技术成绩管理.doc_第4页
面向对象的编程技术成绩管理.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象的编程技术课程设计实验报告学 号:班 级:专 业:姓 名:设计时间:课程设计一、使用c+的面向对象程序设计方法(类机制)设计程序课程题目:学生成绩管理系统1、 实验目的1.在编辑应用程序过程中,逐步加深对C+语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步C+编程的能力,为以后的学习奠定基础。二、实验内容学生成绩管理系统 本学生成绩管理系统程序是一个具有对学生信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括总分,平均分等),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。一切功能都可以在运行的软件中运行。三、功能要求(1)信息维护:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)信息查询:查询时可实现按姓名查询、按学号查询(3) 成绩统计:输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者)4、 流程图学生成绩管理系统 主菜单界面删 除 学 生 成 绩添 加 学 生 成 绩输 入 学 生 成 绩读 取 学 生 成 绩学生总分和平均分修 改 学 生 成 绩成 绩 查 询 系 统四、运行环境 VC+6.0。五、实验代码处理#include#include#includeclass stuchar name20;double math,chinese,english,average,sum;public:stu()stu(char n20,double ma,double chin,double eng)strcpy(name,n);math=ma;chinese=chin;english=eng;double getsum()sum=chinese+english+math;return sum;double getaver()average=getsum()/3;return average;friend void main();void main()cout*欢迎来到学生成绩管理系统*endl; cout*endl; cout* 请选择您需要的操作!*endl;cout* 操作: *endl;cout*(0)数据录入*endl;cout*(1)增加人员*endl;cout*(2)删除人员*endl;cout*(3)修改数据*endl;cout* 查询: *endl;cout*(4)按总成绩查询*endl;cout*(5)按姓名查询*endl;cout*(6)输出所有学生的数据*endl;cout* 成绩名词 *endl;cout*(7)按总分查询排名*endl;cout*(8)按语文查询排名*endl;cout*(9)按数学查询排名*endl;cout*(y)按英语查询排名*endl;cout选择相关操作请输入相对的括号里的阿拉伯数字!endl; cout*p;if(p=0&p=10)flag2=1;elsecout指令错误!请重新输入:endl;while(flag2=0);doswitch(p)case 0:char c;char name20;double math,chinese,english;docout请输入姓名name;cout请输入数学成绩:math;cout请输入语文成绩:chinese;cout请输入外语成绩:english;filej=new ofstream(d:document,ios:ate);*filej姓名name数学成绩math语文成绩chinese外语成绩englishendl;j+;si=new stu(name, math, chinese, english);i+;cout数据录入成功,想继续录入吗(y/n)c;flag2=0;doif(c!=y&c!=n)cout指令错误!请重新输入!c;elseflag2=1;while(flag2=0);while(c=y);break;case 4:double t;char c;doint flag1=0;cout请输入你要查询学生的总成绩t;for(int q=0;qgetsum()=t)flag1=1;cout您要查询的学生是:(*sq).nameendl;if(flag1=0)cout对不起!您要查询的学生不存在!endl;cout您想继续查询吗?(y/n)c;if(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y);break;case 5:char n20;int j=0;char c;doint flag=0;cout请输入你要查询的学生姓名n;for(int j=0;ji;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout您要查询的学生是:(*sj).nameendl;cout(*sj).name的总成绩成绩是(*sj).getsum()endl平均成绩是:(*sj).getaver()endl;if(flag=0)cout对不起!您要查询的学生不存在!endl;cout您想继续查询吗?(y/n)c;if(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y);break;case 1:char name20;double math,chinese,english;char c;docout请输入您要增加的学生的姓名:name;cout请输入数学成绩:math;cout请输入语文成绩:chinese;cout请输入外语成绩:english;filej=new ofstream(d:document,ios:ate);*filej姓名name数学成绩math语文成绩chinese外语成绩englishendl;j+;si=new stu(name, math, chinese, english);i+;cout数据录入成功,想继续录入吗(y/n)c;if(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y);break;case 2:char name20;bool flag3=0;char c;docout请输入您要删除的学生姓名:name;for(int h=0;hname)=0)flag3=1;i-;dosh=sh+1;h+;while(h=i);if(flag3=0)cout您要求删除的对象本来就不存在!请检查输入的正确性!;cout要继续删除吗?(y/n)c;if(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y);break;case 3:char name20;double mat,chin,eng;flag2=0;char c;docout请输入您要修改的学生的姓名:name;for(int h=0;hname)=0)flag2=1;cout请输入新的数学成绩:mat;cout请输入新的语文成绩:chin;cout请输入新的外语成绩:eng;sh-chinese=chin;sh-math=mat;sh-english=eng;cout数据修改成功!;if(flag2=0)cout您要修改的学生本来就不存在!请检查重新输入!endl;cout想继续修改吗(y/n)c;if(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y);break;case 6:cout本系统所有学生数据如下:endl;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!endl;for(int k=0;ki;k+)coutk+1 姓名: name语文: chinese数学: math外语: english总分: (*sk).getsum()平均分: (*sk).getaver()endl;break;case 7:int t;stu b;cout本系统所以学生排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ygetsum()getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)coutk+1 姓名: name语文: chinese数学: math外语: english总分: getsum()平均分: getaver()endl;break;case 8:int t;stu b;cout本系统所以学生语文排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ychinese)chinese)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)coutk+1 姓名: name语文: chinese数学: math外语: english总分: getsum()平均分: getaver()endl;break;case 9:int t;stu b;cout本系统所以学生数学排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ymath)math)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)coutk+1 姓名: name语文: chinese数学: math外语: english总分: getsum()平均分: getaver()endl;break;case y:int t;stu b;cout本系统所以学生英语排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;yenglish)english)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)coutk+1 姓名: name语文: chinese数学: math外语: english总分: getsum()平均分: getaver()endl;break;cout您想继续进行其他操作吗?(y/n)w;if(w!=y&w!=n)cout指令错误!请重新输入!endl;elseflag4=1;while(flag4=0);if(w=y)cout请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)p;while(w=y);for(int x=0;xi;x+)delete sx;coutdelete all members!endl;6、 程序运行结果1主菜单界面2添加学生记录3显示学生记录4按姓名查找学生成绩5按总分排名6增加成员7删除成员8修改成员数据四、 课程设计总结 这是一个综合性较强,很实际的一个编程实例。刚学C+时候,感觉类和对象还挺有意思的,刚接触到这个题目时,觉得应该没什么大问题吧,我自认为一些基本知识点都已经掌握了。可是,真的当我动手编程的时候,才发现并没有想象中的那么简单。单个知识点是弄清了,但是,将所有的知识点综合起来运用时,就碰到了各种各样的问题了。有时候,一个错误得找好久,才能发现。本系统的重点就是要会建立两个类。一个是学生类,用来存放一个学生的成绩记录,相当于一个结构体的功能吧。另一个类是学生成绩记录系统类,该类用来存放多个学生的成绩记录。难点就是学生类里各个功能的实现。总的来说,添加,显示

温馨提示

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

评论

0/150

提交评论