c++课程设计09154_第1页
c++课程设计09154_第2页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

1、目录学生成绩管理系统 .21、需求分析 .22概要设计 .23详细设计 .33、1.信息录入功能 .33、2.增加功能 .53、3.删除功能 .73、4.修改功能 .83、5.查询各个学生平均分 .103、6.信息浏览功能 .114该设计所用的技术. . 115课程设计总结 .126参考文献 .127全部代码 .13学生成绩管理系统1、需求分析学校的学生成绩信息管理就是学校管理中的一项重要任务,以往的手工操 作已经不能适应现在办公的需要、为了摆脱繁琐的劳动,提高工作效率,利用计算 机进行信息处理成为必然、开发功能完善及安全可靠的管理系统可以大大提高学 校资源的利用率,及时,准确地获取需要的信息

2、,充分发挥人员的工作潜力。因此, 不难想象,正就是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱、 同 时,编写一套完善的学生成绩管理系统的任务就显得尤为重要。软件开发的意图 为便于学校的管理,方便查瞧有关学校及学生的情况。如教务处对学生成绩的修 改、删除、查找、添加等。2概要设计设计一个学生成绩管理系统,使之能完成以下功能:1. 信息录入功能2. 信息查询功能3. 信息删除功能4. 信息修改功能5. 信息浏览功能6 查询各个学生平均分7、 各科不及格人数8、 各学生按总分排名使用的关于学生信息的信息表 2-1 学生表名称标识符类型备注索引In dexInt自加 1学号IDInt唯一性姓名

3、NameStri ng不唯一数学成绩MDouble非空英语成绩EDouble非空C+成绩CDouble非空总分SumDouble非空平均分AvgFloat非空I3 详细设计学生成绩管理系统的界面如下:E c:users1 5z-1528documentsvisual studio 2010ProjectsfiS询D亡bu.XX语Lv/uy媚耳或以想继续录 z 讹少心 软和音问捷半:2输入数学成绩:请输入亡成绩,2输入英语成绩:9Sc:users15E-1523docurrienTsvisual studio 2010Project$59Debu.ccC123号号K成成成+ + +99S7767

4、-8787亟成歸成学字宁代码如下3、1.信息录入功能界面如下:数扌居昱人成功.担继续录人吗 3 丿n请输入姓名:藕人学号:case 1: /数据的录入char c; / 用于在小项中选择就是否继续操作char name20;int number;float math,cpp,english;docout 请输入姓名 :name;cout 请输入学号 :number;cout 请输入数学成绩 :math;cout 请输入 C+ 成绩 :cpp;cout 请输入英语成绩 :english;fstream out; / 作一个文本文档在文件夹中用于显示所录入的数据 out(f1 、txt,ios:o

5、ut|ios:app);if(!file) coutf1 、 txt can not open 、 n; return;outfilename 学号 :number 数学成绩 :math绩 :cpp 外语成绩 :englishendl;out();in(f1 、 txt,ios:in);if(!file) / 判断文件就是否打开 coutf1 、 txt can not open 、 n;return;char ch; while(in(ch) coutch; coutendl; in(); j+;si=new Tstu(name, number,math, cpp, english); i+

6、;cout 数据录入成功 ,想继续录入不 (y/n)c;chris1=0; do if(c!=y&c!=n) cout指令错误!请重新输入! c;elsechris1=1;while(chris 1=0);while(c=y); / 重复输入break;C+ 成3、2增加功能界面如下:代码如下:case 2: /增加学生数据char n ame20;int nu mber;float math,cpp,e nglish; char c;docout请输入您要增加的学生的姓名:e ndl;cinn ame;cout 请输入您要增加的学生的学号 :number;cout 请输入数学成绩 :

7、math;cout请输入 C+ 成绩:cpp;cout 请输入英语成绩 :english;fstream out;out(f1 、txt,ios:out|ios:app);if(!file)coutf1 、 txt can not open 、 n;return;outfilename 学号 :number 数学成绩 :mathC+ 成绩 :cpp 外语成绩 :englishendl;out();in(f1 、txt,ios:in);if(!file)coutf1 、 txt can not open 、 n; return;char h; while(in(h) couth;coutendl

8、;in();j+;si=new Tstu(name,number, math, cpp, english);i+;cout 数据录入成功 ,想继续录入不 (y/n)c;if(c!=y&c!=n)cout 指令错误!请重新输入! c;while(c=y);break;3、3删除功能界面如下:代码如下:case 3:/删除学生信息char c;string xingming,line,str,name;do ifstream fin(f1、txt);fstream outfile(f2、txt,ios:trunc|ios:out); / 作一个文本文档在文件 夹中用于显示所录入的数据cou

9、t请输入您要删除的学生的姓名:e ndl;cinxingming;while(!fin、eof()getl in e(fi n,l in e);istri ngstream stream(li ne);name = line、substr(O,line、find( ,0); 找到名字,判断就是否 相等if(n ame != xingming) outfileli nee ndl;out();fin、close();fstream f(f1、txt,ios:trunc|ios:out);ifstream outf(f2、txt);foutf、rdbuf();outf、close();f、clos

10、e();cout数据删除成功,想继续删除不(y/n) c;if(c!=y&c!= n)cout指令错误!请重新输入! c;while(c=y);break;3、4修改功能界面如下:代码如下:case 4:/修改数据string sname,line,str,name;int nu ;float en g,ma,com;i nt flag;char c;if(i=0)cout 系统中没有输入数据 ,请先输入数据 !endl;break;doflag=0;coutname;fstream fin(f1 、 txt,ios: :in);ofstream outfile(f 、txt,ios:

11、trunc|ios:out); coutendl;while(!fin 、 eof() ) / 在文件中查找getline(fin,line); istringstream stream(line); sname = line、 substr(0,line 、find( ,0); if(name!=sname)outfilelineendl;else flag=1;fin 、 close();if(flag=1)coutnamenumacomeng;coutendl;outfilename 学 号 :nu 数 学 成C+ 成绩 :com 外语成绩 :engendl;out();fstream

12、outf(f1 、 txt,ios:trunc|ios:out); fstream inf(f 、 txt,ios: :in); outfinf 、rdbuf()endl; outf 、 close();inf 、 close();if(flag=0)cout 对不起 ,您要修改的学生不存在!请查证后输入!coutc; coutendl;if(c!=y&c!=n)绩:maendl;cout 指令错误!请重新输入!e ndl c;while(c=y); break;3、5.查询各个学生平均分界面如下:代码如下:case 8:/统计每个学生的平均成绩if(i=0)cout系统中没有输入数据

13、,请先输入数据!endl;break;for(i nt m=0;mi;m+)cout(*sm) 、name学号:(*sm) 、number总分:(*sm)、getsum() 均分:(*sm)、getaver()endl;break;II.八a呎SS0:急总gma-lj亠且匕行4:5拼蛀号号号号号f鬲跻三三三四更六七翁6667整牯蛰作谙洞人相对的拮号里的阿拉慟字履字母!Si?灘率有舉生的数扌居 寫事学生的干塩成绩 響今粒不及格人加 临7.c:users1SE-1 SSocumernsvisual studio 2010Proje2322034th.111294日3、6.信息浏览功能界面如下:代码

14、如下:case 7:输出所有学生数据cout所有学生数据如下:endl; ifstream file;(f1、txt,ios:in);cout();();break;4 该设计所用的技术使用 C+面向对象语言开发,代码中使用了 for,while,if,switch等循环判87890学号=1张三站7数学咸绩沔E外语咸绩:刃匚“成绩諒诫3i瑚帝耐:、:J:、;1C:LIsers15z-1立说doc u nn entswis u al stud io 010P rojects5EffiSrDeb u ” -号号号廉成成*3578689.二!二345一*S8799-S绩绩绩応成成+ + +断语句,主

15、函数依次调用外围函数,各个函数之间使用数组首地址传递,各个模块 之间坚持高内聚低耦合的原则,最大程度上改善本软件的健壮性与可修改性。5 课程设计总结课程设计结束了 , 在这次的课程设计中不仅检验了我所学习的知识 , 也培养 了我如何去把握一件事情 ,如何去做一件事情 , 又如何完成一件事情。在设计过程 中,与同学分工设计 ,与同学们相互探讨 ,相互学习 ,相互监督。学会了合作 ,学会 了运筹帷幄 ,学会了宽容 ,学会了理解 ,也学会了做人与处世。 课程设计就是我们专业课程知识综合应用的实践训练 , 着就是我们迈向社会 , 从 事职业工作前一个必不少的过程 . ”千里之行始于足下” ,通过这次课

16、程设计 , 我 深深体会到这句千古名言的真正含义 .我今天认真的进行课程设计 , 学会脚踏实 地迈开这一步 , 就就是为明天能稳健地在社会大潮中奔跑打下坚实的基础 . 通过这次模具设计 ,本人在多方面都有所提高。 通过这次模具设计 , 综合运用本专 业所学课程的理论与生产实际知识进行一次冷冲压模具设计工作的实际训练从 而培养与提高学生独立工作能力 , 巩固与扩充了冷冲压模具设计等课程所学的内 容,掌握冷冲压模具设计的方法与步骤 , 掌握冷冲压模具设计的基本的模具技能 懂得了怎样分析零件的工艺性 , 怎样确定工艺方案 ,了解了模具的基本结构 , 提高 了计算能力 , 绘图能力 ,熟悉了规范与标准

17、 , 同时各科相关的课程都有了全面的复 习,独立思考的能力也有了提高。在这次设计过程中 , 体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情 , 从中发现自己平时学习的不足 与薄弱环节 , 从而加以弥补。在此感谢我们的老师、 , 老师严谨细致、一丝不苟的作风一直就是我工作、学习 中的榜样 ;老师循循善诱的教导与不拘一格的思路给予我无尽的启迪 ; 这次模具 设计的每个实验细节与每个数据 , 都离不开老师您的细心指导。而您开朗的个性 与宽容的态度 ,帮助我能够很顺利的完成了这次课程设计。 同时感谢对我帮助过的同学们 ,谢谢您们对我的帮助与支持 , 让我

18、感受到同学的 友谊。由于本人的设计能力有限 ,在设计过程中难免出现错误 , 恳请老师们多多指教 ,我 十分乐意接受您们的批评与指正 , 本人将万分感谢。6 参考文献1、 C+程序设计课程设计刘振安编著2、 C+ Builder 与 Delphi 课程设计与系统开发案例 伍俊良 清华大学出 版社3、 Visual C+ 课程设计案例精编 严华峰 中国水利水电出版社 20044、 Visual C+ 课程设计与系统开发案例 伍俊良 清华大学出版社 20025、 Visual C+ 语言课程设计 : 案例精选与编程指导 陈清华朱红 东南大学出 版社20036、 VisualC+ 课程设计案例精编 中

19、国水利水电出版社 20027、 数据结构课程设计案例精编:用 C/C+苗述李建学李光元吴春芳 清华大 学出版社 7-302-14536-9 20078、谭浩强、C 程序设计(第三版)M、北京:清华大学出版社,2007、7 全部代码#include #include #include #include #include usingnamespace std; class Tstu /通过定义一个类来定义数据录入的函数char name20;int number;float math,cpp,english,average,sum;public:Tstu();Tstu ( char n20,int

20、 num,float ma,float cj,float eng ) ;float getsum();/ 得到总分的函数float getaver(); / 得到平均分的函数friend void main(); / 将主函数定义为友元函数,方便访问类中的成员;Tstu:Tstu ( char n20,int num,float ma,float cj,float eng )strcpy(name,n); / 得到姓名 number=num; / 得到学号 math=ma; / 得到数学成绩 cpp=cj; / 得到 c+成绩 english=eng; / 得到英语成绩float Tstu:g

21、etsum() / 得到总分的函数sum=cpp+english+math;return sum;float Tstu:getaver() / 得到平均分的函数average=getsum()/3; return average;void main()cout*欢迎来到学生成绩查询系统 *endl;cout 请选择您需要的操作! endl; / 菜单的输出cout 操作 :endl;cout(1) 数据录入 endl;cout(2) 增加学生 endl;cout(3) 删除学生 endl;cout(4) 修改数据 endl;cout 查询 :endl;cout(5) 按总成绩查询 endl;c

22、out(6) 按姓名查询 endl;cout(7) 输出所有学生的数据 endl; cout 成绩统计 :endl;cout(8) 每个学生的平均成绩 endl;cout(9) 各科不及格人数 endl;cout 排名 :endl;cout(10) 按总分查询排名 endl;cout(11) 退出 endl;cout 选择相关操作请输入相对的括号里的阿拉伯数字及字母! p;if(p=1&p=11) chris1=1; else cout 指令错误!请重新输入 :endl;while(chris1=0);do switch(p)case 1: /数据的录入char c; / 用于在小项中

23、选择就是否继续操作 char name20;int number;float math,cpp,english;docout 请输入姓名 :name;cout 请输入学号 :number;cout 请输入数学成绩 :math;cout 请输入 C+ 成绩 :cpp;cout 请输入英语成绩 :english;fstream out; / 作一个文本文档在文件夹中用于显示所录入的数据 out(f1 、txt,ios:out|ios:app);if(!file) coutf1 、 txt can not open 、 n; return;outfilename 学号 :number 数学成绩 :m

24、ath绩 :cpp 外语成绩 :englishendl;out();in(f1 、 txt,ios:in);if(!file) / 判断文件就是否打开 coutf1 、 txt can not open 、 n;return;char ch; while(in(ch) coutch; coutendl; in(); j+;si=new Tstu(name, number,math, cpp, english); i+;cout 数据录入成功 ,想继续录入不 (y/n)c;C+ 成chris1=0; do if(c!=y&c!=n) cout 指令错误!请重新输入! c;else chr

25、is1=1;while(chris1=0); while(c=y); / 重复输入break;case 2: /增加学生数据char name20; int number;float math,cpp,english;char c;docout 请输入您要增加的学生的姓名 :name;cout 请输入您要增加的学生的学号 :number;cout 请输入数学成绩 :math;cout请输入 C+ 成绩:cpp;cout 请输入英语成绩 :english;fstream out;out(f1 、txt,ios:out|ios:app);if(!file)coutf1 、 txt can not

26、open 、 n; return;outfilename 学号 :number 数学成绩 :mathC+ 成绩 :cpp 外语成绩 :englishendl;out();in(f1 、txt,ios:in);if(!file)coutf1 、 txt can not open 、 n; return;char h; while(in(h) couth;coutendl;in();j+;si=new Tstu(name,number, math, cpp, english);i+;cout 数据录入成功 ,想继续录入不 (y/n)c;if(c!=y&c!=n)cout 指令错误!请重新输

27、入! c;while(c=y);break;case 3:/删除学生信息char c;string xingming,line,str,name;doifstream fin(f1 、 txt);fstream outfile(f2 、 txt,ios:trunc|ios:out); / 作一个文本文档在文件 夹中用于显示所录入的数据cout 请输入您要删除的学生的姓名 :xingming;while(!fin 、 eof() )getline(fin,line);istringstream stream(line);name = line 、 substr(0,line 、 find( ,0

28、);/ 找到名字 ,判断就是否 相等if(name != xingming) outfilelineendl;out();fin 、 close();fstream f(f1 、 txt,ios:trunc|ios:out);ifstream outf(f2 、 txt);foutf 、 rdbuf();outf 、 close();f、 close();cout 数据删除成功 ,想继续删除不 (y/n)c;if(c!=y&c!=n)cout 指令错误!请重新输入! c;while(c=y);break;case 4:/修改数据string sname,line,str,name;in

29、t nu;float eng,ma,com;int flag;char c;if(i=0)cout 系统中没有输入数据 ,请先输入数据 !endl;break;doflag=0;coutname;fstream fin(f1 、 txt,ios:in);ofstream outfile(f 、 txt,ios:trunc|ios:out);coutendl;while(!fin 、 eof() ) / 在文件中查找getline(fin,line);istringstream stream(line);sname = line、 substr(0,line 、 find( ,0);if(nam

30、e!=sname)outfilelineendl;else flag=1;fin 、 close();if(flag=1)coutnamenumacomeng;coutendl;outfilename 学 号 :nu 数 学 成 绩 :maC+ 成绩 :com 外语成绩 :engendl;out();fstream outf(f1 、 txt,ios:trunc|ios:out);fstream inf(f 、 txt,ios:in);outfinf 、 rdbuf()endl;outf 、 close();inf 、 close();if(flag=0)cout 对不起 ,您要修改的学生不存

31、在!请查证后输入! endl;coutc;coutendl;if(c!=y&c!=n)cout 指令错误!请重新输入! endlc;while(c=y);break;case 5:/按总分查询int j=0;float SUM;char c;int flag;if(i=0)cout 系统中没有输入数据 ,请先输入数据 !endl;break;doflag=0;cout 请输入您要查询的学生的总成绩 :SUM;for(int j=0;jgetsum()=SUM)flag=1;cout 您要查询的学生就是 :(*sj) 、 nameendl;cout 该生的信息为 :endl;cout 学

32、号 :(*sj) 、number数学分数 :(*sj) 、math C+ 分数:(*sj)、cpp英语分数(*sj)、englishendl;if(flag=0)cout 对不起 !您要查询的学生不存在 !endl;cout c;if(c!=y&c!=n)cout 指令错误!请重新输入! c;while(c=y); break;case 6:/按姓名查询char n20;char c;int j=0;int flag;if(i=0)cout 系统中没有输入数据 ,请先输入数据 !endl;break;doflag=0;cout 请输入要查询的名字 : n;for(int j=0;ji;j+)if(strcmp(n,(*sj) 、 name)=0)flag=1;cout 您要查询的学生就是 :(*sj) 、 nameendl; cout 该生的信息就是 :学号 :(*sj) 、number 数学 分数 :(*sj) 、mathc+ 分数 :(*sj) 、cpp英语分数 :(*sj) 、 englishendl;if(flag=0) cout 对不起您要查询的学生不存在 ,请查证后再输入 !endl;coutc; if(c!=y&c!=n)cout 指令错误!请重新输入 :c;while(c=y);

温馨提示

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

评论

0/150

提交评论