最新C++学生成绩管理系统课程设计Word文件下载.docx
- 文档编号:16610527
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:9
- 大小:260.46KB
最新C++学生成绩管理系统课程设计Word文件下载.docx
《最新C++学生成绩管理系统课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新C++学生成绩管理系统课程设计Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
维护,此模块包括子模块有:
增加学生信息、删除学生信息、修改学生信息
(2)信息查询:
查询时可实现按姓名查询、按学号查询
(3)成绩统计:
A输入任意的一个课程名(如数学)和一个分数段(60--70),
统计出在此分数段的学生情况。
B能统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序
(4)排序:
能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示,排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)
(二)其它要求:
(1)只能使用C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
2.2设计思路说明
(1)定义student类,然后进行全局变量声明及初始化,这些变量包含了Save(保存学生信息);
Add(增加学生信息);
Delete(删除学生信息);
Modify(修改学生信息);
Show(打印学生信息);
Search(查找学生信息);
GradeSelect(按分数查询);
SortNum(根据学号排序);
SortGrade(成绩分段统计)
(2)文件流实现对文件的打开读取和保存
(3)设置一个验证函数boolFind来验证学号的存在与否
(4)各函数功能的实现及主函数(包含了文本菜单界面)
2.3程序实现
(1)取再以write_file对文件进行保存,使之本身有一个学生成绩数据库,方便实现程序功能的操作,避免了每次测试程序都输入学生信息
(2)switch语句的多次使用使程序简便易读,僻如对学生信息进行修改,用switch语句针对要修改的项目而不用将不要修改的重新输入,同时主菜单界面也是通过它实现的
(3)各程序模块间相互调用,以实现功能,例如Modify函数调用了Search函数
(4)在main函数中运用了switch语句对菜单进行选择。
运行时菜单显示如图所示:
通过ifstream&
openfile实现对文件的打开,通过read_file对文件进行读取,再通过ofstreamfout函数对文件进行保存。
图2-1程序的选择菜单界面
2.4程序流程图
图2-2主函数流程图
(1)流程图说明:
输出欢迎界面,输入功能选项;
通过调用各模块功能函数实现以下功能:
添加学生信息:
调用Add函数
删除学生信息:
调用Delete函数
学生信息列表:
调用Show函数
学生信息修改:
调用Modify函数
查找学生信息:
调用Search函数
根据学号排序:
调用SortNum函数
根据成绩排序:
调用SortGrade函数
成绩分段统计:
调用GradeSelect函数
通过switch语句实现多条件分支功能选择,通过循环实现所选功能结束后重选操作。
(2)定义study类的成员数据:
Num//学生学号,定义为string型
Name//学生姓名,定义为string型
Math//数学成绩,定义为int型
English//英语成绩,定义为int型
Computer//计算机成绩,定义为int型
Grade//平均成绩,定义为int型
定义一个boolFind函数对学号进行判断看该学号是否存在,bool函数的判断中只有true和false,所以判断过程简便。
Setw函数控制字符域宽。
(3)Add函数流程图
Delete函数流程图说明:
开始之后就用if语句调用boolFind函数以判断学号是否存在,若存在则结束返回,若不存在则输入信息并存入数组然后数组总条数加1,最后结束返回菜单。
图2-3Add函数流程图
Delete函数流程图:
Delete函数流程图说明:
开始之后先输入要删除的学生学号,而后调用Find函数判断是否是存在的学号,如果学号存在则输出该学号的学生信息,然后确认删除该生成绩信息,如果确认,则该生信息删除,最后结束。
如果该学号不存在,则提示“该学号不存在!
”结束回到主菜单。
图2-4Delete函数流程图
其它模块的实现流程图与以上的类似就不一一列举了,下面进入整个课设最重要的部分——文件流的使用。
2.5文件流的实现
(1)文件的打开,代码如图所示:
图2-5文件的打开与返回
in.open(file.c_str())用一般的文件打开方式不能打开字符串,打开是乱码,
不直接用in.open("
file"
)打开文件,而要在要在file
后面加.c_str。
(2)文件的读取,代码如下图所示:
图2-6文件的读取代码
之所以定义stringword,并且之后有atoi(word.c_str())是因为word里面存了一个单词,这样可以读取。
atoi函数的作用是将字符转换为整形,由于我没有和数组保存数据信息,故用字符串的话用书上的文件流读取方式后打开是乱码,不是可以看懂的整形,故些处使用atoi函数进行转换克服这一难题。
使用getline获取数据时遇空格可接受。
(3)写文件,代码如图所示:
图2-7文件的书写保存
用ofstreamfout函数打开文件是因为如果打开的文件不存在,它会为你自动创建一个文件,,而fout.open(file.c_str())中的“c_str()”是因为文件被申明为了string类型。
然后用for循环语句可使用户持续输入数据。
最后用fout.close()关闭文件,若不关闭将损坏文件。
3、运行结果截图
图3-1初始存入的学生信息
3、你是否购买过DIY手工艺制品?
图3-2增加学生信息
世界上的每一个国家和民族都有自己的饰品文化,将这些饰品汇集到一起再进行新的组合,便可以无穷繁衍下去,满足每一个人不同的个性需求。
图3-3删除学生信息
300元以下□300~400元□400~500□500元以上□
图3-4查找学生信息
图3-5根据成绩排序
beadorks公司成功地创造了这样一种气氛:
商店和顾客不再是单纯的买卖关系,营业员只是起着参谋的作用,顾客成为商品或者说是作品的作参与者,营业员和顾客互相交流切磋,成为一个共同的创作体
图3-6根据学号排序
大学生购买力有限,即决定了要求商品能价廉物美,但更注重的还是在购买过程中对精神文化爱好的追求,满足心理需求。
创新是时下非常流行的一个词,确实创新能力是相当重要的特别是对我们这种经营时尚饰品的小店,更应该勇于创新。
在这方面我们是很欠缺的,故我们在小店经营的时候会遇到些困难,不过我们会克服困难,努力创新,把我们的小店经营好。
图3-7根据分数段排序
据了解,百分之八十的饰品店都推出“DIY饰品”来吸引顾客,一方面顺应了年轻一代喜欢与众不同、标新立异的心理;
另一方面,自制饰品价格相对较低,可以随时更新换代,也满足了年轻人“喜新厌旧”的需要,因而很受欢迎。
图3-8退出系统
4、学习小结
通过这次C++的课设,我进一步了解了C++面对对象的编程方法,印象最深的是文件流的使用。
在文件流的使用中遇到许多问题,比如打开TXT文档是乱码,因为使用的文件打开方式是适合数组而不适合字符串的。
同样在这样艰难的过程中我也学会很多,对原本一知半解的文件流有了进一步的认识,现在已经可以进行简单使用了。
其实各部分的模块大部分都是面向过程的,所以遇到的问题可以通过查资料或者问同学老师等方式解决,虽然不是课设的主要内容,但是也遇到很多问题,程序在不断调试修改中才逐渐成型,逐渐完善。
只有自己认真做了这个课设,在其中可以学到很多知识,有平时自己根本就注意不到的细节问题,可能导致整个程序大乱,比如我只是在一个分模块中漏了一个“}”,最后出现七个错误,全是提示成员函数定义不合法。
另外我还学习到,在编程的过程中,千万不能急于写代码,应先规划一下设计思路,这样写代码时就可以一气呵成;
最大的收获应该算是发现了一个优秀的软件开发人员的秘密,那就是自学,不能什么都依赖老师,老师毕竟不能把所有的知识全都教给我们,只要我们学会了自学,那么就相当于学会了一半的语言。
(2)文化优势最后,通过这次做课设,我常常地了解到我们所学的C++知识毕竟很浅显,如果要有更大的进步和发展,要求自己必须在课后主动查资料,经常写代码,这样出的错误越多,日后发现问题就可以很快发现,水平才能提升。
在C++这条路上我们要做的还有很多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 C+ 学生 成绩管理系统 课程设计