C++学生成绩管理系统课程设计_第1页
C++学生成绩管理系统课程设计_第2页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

1、1目录1、C+课程设计实验目的 .22、课程设计内容 .22.1课程设计的题目及简介 .22.2设计思路说明 .32.3程序实现 .32.4程序流程图 .42.5文件流的实现 .73、运行结果截图 .94、学习小结 .1121、C+课程设计实验目的这次C+课程设计实验通过设计一个学生成绩管理系统 ,使学生 分析模块的实现并用掌握系统各功能模块的基本工作原理,从而掌握C+ +的面向对象基本编程原理和及基本的编程方法,在编写模板过程中学会系统调试分部调试。进而培养分析、解决问题的能力,与此 同时提高软件文档写作能力。2、课程设计内容2.1 课程设计的题目及简介请用C+编写一系统,实现学生信息管理,

2、软件的入口界面应包括如下几个方面:(一) 功能要求:(1)信息维护: 要求:学生信息数据要以文件的形式保存,能实现 学生信息的 维护,此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)信息查询: 要求:查询时可实现按姓名查询、按学号查询(3)成绩统计: 要求:A输入任意的一个课程名(如数学)和一个 分数段(60-70),统计出在此分数段的学生情况。B能统计学生的成绩,求学生 的总分及平均分,并能根据学生的平均成绩进行排序(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生 数据并显示,排序结果(使用表格的形式显示排序后的输出结果) (使用多种方法排序者,加分)(二)

3、其它要求:3(1) 只能使用C+语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档2.2 设计思路说明(1) 定义student类,然后进行全局变量声明及初始化,这些变量包含了Save(保存学生信息);Add(增加学生信息);Delete(删除学生信息);Modify(修改学生信息);Show(打印学生信息);Search(查找学生信息);GradeSelect(按分数查询);SortNum(根据学号排序);SortGrade(成绩分段统计)(2)文件

4、流实现对文件的打开读取和保存(3)设置一个验证函数bool Find来验证学号的存在与否(4)各函数功能的实现及主函数(包含了文本菜单界面)2.3 程序实现(1) 取再以write_file对文件进行保存,使之本身有一个学生成绩 数据库,方便实现程序功能的操作,避免了每次测试程序都 输入学生信息(2)switch语句的多次使用使程序简便易读,僻如对学生信息进行修改,用switch语句针对要修改的项目而不用将不要修改 的重新输入,同时主菜单界面也是通过它实现的(3)各程序模块间相互调用,以实现功能,例如Modify函数调用了Search函数(4)在main函数中运用了switch语句对菜单进行选

5、择。运行时菜 单显示如图所示:通过ifstream& openfile实现对文件的打开, 通过read_file对文件进行读取,再通过ofstream fout函数对 文件进行保存。4仃灯*介亡七十:Tit:讥昱!U M童莊东:N:?立青心右仃 r 亡血it作寻放师-:iw.-,- I-:-:- -r ,- -r -J- - , -L-L-l-L-L-.请总样屋徉毋作I图 2-1 程序的选择菜单界面2.4 程序流程图i出主菜亀-广 % *图2-2主函数流程图(1)流程图说明:输出欢迎界面,输入功能选项;通过调用各模块功能函数实现以iriMKnr string iti :;in;in D

6、penf f il c_str(J J;9retiirft in;图 2-5 文件的打开与返回in.open(file.c_str()用一般的文件打开方式不能打开字符串,打开是乱码,不直接用 in.open(file)打开文件,而要在要在 file 后面加.c_str。(2)文件的读取,代码如下图所示:int readfilBConst string lifllF)itFstmm input;岬販ile( 4ii|i Lit4file ;rLjl .11 ne)(isti丄(电、;Wil i4case 11uor d;b-reate;c和叢?:stui9Hianp=iJRirrt;brejk;

7、case 8;stuij.ltatlri-atQi(tKrdBc_str():terpdk;btuivEngllsh-ditQi(iMUirdiAc_5;t.r);b厂32图2-6文件的读取代码之所以定义string word,并且之后有atoi(word.c_str()是因为word里面存了一个单词,这样可以读取。atoi函数的作用是将字符转换为整形,由于我没有和数组保存数据信息,故用字符串的话用书上的文 件流读取方式后打开是乱码,不是可以看懂的整形,故些处使用atoi函数进行转换克服这一难题。使用getline获取数据时遇空格可接受。(3)写文件,代码如图所示:vein uritr fil

8、rtcnnt string tHle) string str:rukitccstufi _nijiT,:routc( (Etul.naM( ( ”;Hd;10f-nut *F| i j .l-nyl;fui ttfe 1 . CdivuterCFout($tulii.GrdBe眄_-n?i呵罩r.站旳52009*2009120092/曲酣KKNMWNH兒农胃总:7:7详.什!:!=-巨戶14J4.14J4.-T-T主主見主主号淌.,段”T.T.r rLCrLCrT T* *龙7171险主茂忆墙塢寻出. +归.:退二;?亠亠二二二二!.+门宀二二;12谓选羟具体捧作:2请綸入要删除的学生学号2G

9、99I65爭号姓名底数英谨计算机平均分2G031张二:68859181确认辆象该学生信息?: V/N)V该记录已删除!图 3-3 删除学生信息请选择具体操作:5按学号杳询请按1按姓名杳询谨按2请选择具体操作:1请输人学号:20091|该学号不存在”请重新输入!图 3-4 查找学生信息请选扯具忖佗:T【口数学【即英硯 谓妨入捕序方tH降月5【2齐序1(31.1 M1时T均筍学号絵富英审;计亜机图 3-5 根据成绩排序学号288128B92200932989412SB3S8 8 5 5 5 5 7 7 5 5 5 5 E E T T S S & & 3 3 ? ?裁stst平均分图

10、 3-2 增加学生信息13话迤择具那换作用 清範入课程霑鄭:淸縮入片敦下限,fQ苗的入分敌上限:W匕分数设内学生为:学号姓名宴数29093王五$520035計静85图 3-7 根据分数段排序-_ . _ 丄.-u”*一.B. _% 2iLL中r:|上i| 1_, -._ .- :亠图 3-8 退出系统4、学习小结通过这次C+的课设,我进一步了解了C+面对对象的编程方法,印象最深的是文件流的使用。在文件流的使用中遇到许多问题,比如打开TXT文档是乱码,因为使用的文件打开方式是适合数组而不适合字符 串的。同样在这样艰难的过程中我也学会很多,对原本一知半解的文件 流有了进一步的认识,现在已经可以进行

11、简单使用了。其实各部分的模 块大部分都是面向过程的,所以遇到的问题可以图 3-6 根据学号排序n n l l 1+1+titi1 1 1 1 1 1 I I总 耳,崽总鬲呼哼 TJ.iJ.i列1010芝tfntfn骥:主 主 息 生号 厲 陕 睛学r;TT*n.4-Jlr;TT*n.4-Jl . .!:1!:1咋眞谊云苑语计旦抚平均分74?97S758G8214通过查资料或者问同学 老师等方式解决,虽然不是课设的主要内容,但是也遇到很多问题,程 序在不断调试修改中才逐渐成型,逐渐完善。只有自己认真做了这个课 设,在其中可以学到很多知识,有平时自己根本就注意不到的细节问题, 可能导致整个程序大乱,比如我只是在一个分模块中漏了一个“”,最 后出现七个错误,全是提示成员函数定义不合法。另外我还学习到,在编程的过程中,千万不能急于写代码,应先规 划一下设计思路,这样写代码时就可以一气呵成;最大的收获应该算是 发现了一个优秀的软件开发人员的秘

温馨提示

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

评论

0/150

提交评论