2022年C学生成绩管理系统设计分析方案.docx
《2022年C学生成绩管理系统设计分析方案.docx》由会员分享,可在线阅读,更多相关《2022年C学生成绩管理系统设计分析方案.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源面对对象程序设计( C+ ) 课程设计报告题 目:同学成果治理系统班 级: 1230502学 号: 202130050230姓 名:李欢任课老师:全蕾2021年 6 月 9 日一, 试验目的、任务目的:1 巩固和加深对 C+课程的基本学问的懂得和把握;2 能够通过文件对数据进行操作,包括对文件的打开、关闭、读取、写入及重写等操作;3 学会函数的调用,能够将一个大的程序分解为多个函数,实现模块化程序设计;4 学会利用 C+语言进行简洁程序设计的基本思路和方法;5 把握一个程序编译、连接、调试的基本技能,提高运用高级语言解决实际问题的才能;任务:设计一个同学成果排名系统,该系统的主要功
2、能如下:1 具备对成果的治理功能(添加、删除、排序)2 具备对成果的统计功能(最高分,最低分,平均分,及格率等)3 具备按学号、姓名、或课程名查询成果的功能;4 同学成果应当储存在文件中;一, 功能描述整体框架:整个同学成果治理系统接受链表作为基本数据结构,创建一个类 student 用于储存同学的数据且是链表中的一个节点;类 list 作为储存整个链表之用;主函数通过 switch 语句来依据用户的需要连接各个模块,以实现用户的需要;模块基本介绍:二, 用户输入模块欢迎下载精品学习资源在此模块中,用户将依据菜单提示结合自己的需求输入一个011 的值,来实现确定的功能;三, 同学信息录入模块此
3、模块可以让用户从键盘输入每个同学的信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理五门课成果;用户可插入一个或多个同学信息到当前编辑的班级数据中;用户可删除一个或多个同学信息;四, 文件储存功能模块 用户在确定以录入的成果无误之后,可以将同学信息以每一班为单位存为一个数据文件;用户输入的同学信息可随时储存数据文件;五, 查询功能模块在此模块里,用户可实现以下操作:1.浏览全部同学信息; 2.按学号查询同学信息;3.按姓名查询同学信 息; 4.查询一个班每个人的总成果和平均成果;5. 查询一个班某一门课每个人的总成果和平均成果;6)进行成果的统计分析:包括总人数,每门课的最高成果、最
4、低成果、平均成果、各个分数段的人数(100-90、89-80、79-70、69-60、59-50、50 以下)、及格人数;六, 报表输出功能模块在此模块中,用户可以浏览全部同学的信息,或者可以按学号输出一个班同学信息:学号、姓名、性别、数学、英语、政治、程序设计基础、物理成果和总成果,到屏幕和文件;也可以按总成果输出从高到低输出学号、姓名信息;模块图开头m值 1, 3, 4值 8值 9值 7, 2, 6, 5值 10,11欢迎下载精品学习资源学 生 信 息 录 入模块文 件 保 存 功 能模块文 件 打 开 功 能模块查询功能模块报 表 输 出 功 能模块欢迎下载精品学习资源用户输入,并将值储
5、存至 mm终止欢迎下载精品学习资源七, 总体设计1. 用户输入模块设计提示用户输入一个 011 的值,并储备在一个整型变量m 中;2. 同学信息录入模块设计通过应用list 中的 instu函数,来新建一个链表中的节点,即一个新的同学信息,来进行成果的录入功能;成果修改功能,可以依据姓名或学号进行查询并修改相应的课程的成果,使用了void searchchars10,int 和 void search1char s20,int 函数进行操作; search函数依据姓名查找, search1函数依据学号进行查找;由于学号和姓名,都是储备在字符数组中的,所以都是通过字符串的比较进行查找的;然后依据
6、整形参数进行对应的课程成果的修改;成果删除功能,也是可以依据姓名或学号进行删除,查询的算法和成果修改功能的查询方法是一样的,当找到要删除的节点时,由于节点都是在堆内存中储存的,所以可以直接 delete 掉,并将前一个节点的 next 指针指向被删掉的节点的 next 指针所指向的节点;3. 文件储存功能模块先提示用户输入储存文件的文件名及班级名称;文件的前两行分别是班级名称和成果单的开头,然后通过 ofstream 变量 output 来进行同学信息的输出,一项一项的输出,并设定格式,直到输出节点为NULL为止,之后关闭output ;4. 文件打开功能模块先提示用户输入要打开的数据文件的名
7、称,然后通过一个ifstream 变量 input 来进行文件操作;第一判定文件是否存在,假如不存在就输出File does not exist ,并跳出 switch 语句;文件存在的话,就可以进行数据的存入了;由于数据文件具有固定的格式,即开头两行是班级名称和表头,就可以先用两次input.getlinetemp,80 ;语句来将input 设置到第三行,此时可以将数据通过input 读入链表中;先用input.eof 判定文件中是否有数据,如有数据,就进行数据的读入,直到文件终止;5. 查询功能模块可以依据姓名或学号进行查找,搜寻方法和前几个模块相同;通过outstu1char *n 和
8、 outstuchar *n 来进行输出;总成果和平均成果的查询通过函数void outsumchar * 和 void outsum1char * 来完成;通过函数 scanall 来浏览全部同学的信息;通过函数think 来进行成果的统计分析;6. 报表输出功能模块通过建立一个新的类class stucopy 用于拷贝 student 的数据,并实现排序功能;创建一个stucopy stuM 数组,将原链表的数据拷贝与数组中,然后用选择排序方法将数组排序,然后用output 依据标准的格式输出或储存为数据文件;四,调试分析调试是整个程序编写过程中特殊重要也是很困难的一部分,在这个过程中用了
9、不少的时间进行程序的调试,在调试过程中遇到的相关问题如下:1. 语法错误2.规律错误五,测试结果1, 主界面欢迎下载精品学习资源2,录入记录3,查询记录4, 修改记录5, 删除记录欢迎下载精品学习资源6, 统计分析记录7, 总成果和平均成果查询记录8, 储存记录9, 输出储存记录欢迎下载精品学习资源六,课程设计的总结一个星期的课程设计,虽然有些疲乏和困倦,但带给我许多的收成;C+已经学了一个学期了,有许多学问都存在似懂非懂的现象,这种现象通过实际的上机操作,已经削减了许多;对这些学问也有了更深的懂得和很好的把握;也有许多理论上说得过去的代码,但到了实际操作,却是行不通的;这种困惑,有许多已经通
10、过实际操作解决了,并能够深刻熟识,但也有许多没有明白;只能避过这些方法,换方法实 现;在课程设计之前,由于有了综合试验的体会与教训,明白了写代码这一步是特殊重要的,由于当你把代码输入电脑,并用编译器将其运行,发觉通过不了,再来检查找出问题,这是一件特殊辛苦的事情,也很铺张时间;我觉得写程序,应当先找到该程序中的核心地方,用多种方法来实现该核心,这才可能防止等到发觉规律上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的;此次任务的完成,也表达出同学之间的团结精神;面对对象程序设计的完成,使我们懂得了理论和实际的相结合,才能真正把握所学和所把握的学问;七,附录源代码
11、:#include #include #include #includeconst int M = 20;class stucopy/此类用于拷贝 student的数据,用于排序功能的实现public:char id20; char sex10;char name10;double grade5;double sumsum ;/ 总成果double average;/ 平均成果 ;class student/用于储存同学信息的类friend class list;public:char id20;/ 储存学号char sex10;/ 储存性别char name10;/ 储存名字double g
12、rade5;/ 储存成果欢迎下载精品学习资源studentnext=0 ;for int i=0;i20 ;i+idi=0;for i=0;i10 ;i+sexi=0;for i=0;i10 ;i+namei=0 ;void s;void setidchar id120forint i=0;i20 ;i+idi=id1i;void setsexchar sex110forint i=0;i10 ;i+sexi=sex1i;void setnamechar name110forint i=0;i10 ;i+namei=name1i;void setgradedouble grade15forin
13、t i=0;i5 ;i+gradei=grade1i;student *next;/next指向下一个同学,构成链表char * outidreturn id; ;char * outsexreturn sex; ;char * outnamereturn name; ;double outsumdouble sum=0 ;forint i=0;ioutgradei;return sum ;double outavreturn this-outsum/5; double outgradeint ireturn gradei; ;void intgradeint; ;void student:i
14、ntgradeint j/用于修改同学的成果 switch jcase 1:欢迎下载精品学习资源case 2:coutgrade0;break ;coutgrade1;break ;欢迎下载精品学习资源case 3:case 4:case 5:coutgrade2;break ;coutgrade3;break ;coutgrade4;break ;欢迎下载精品学习资源void student:s/用于录入同学的信息coutid ;coutname ;coutsex ;coutgrade0;coutgrade1;coutgrade2;coutgrade3;coutgrade4;class li
15、st/此类为链表private:double high5,low5;public:student *last,*first;/ 链表的开头和结尾double totoal;listlast=0;first=0; ;list;void instu;/ 新建一个同学的数据void outstuchar *;/ 依据姓名输出一个同学的信息int delstuchar *n;/ 依据姓名删除一个同学的信息void outstu1char *;/ 依据学号输出一个同学的信息int delstu1char *n;/ 依据学号删除一个同学的信息void outsumchar *;/ 依据姓名输出一个同学的总
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 学生 成绩管理系统 设计 分析 方案
限制150内