C++小型学生成绩管理系统_第1页
C++小型学生成绩管理系统_第2页
C++小型学生成绩管理系统_第3页
C++小型学生成绩管理系统_第4页
C++小型学生成绩管理系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、C+、型学生成绩管理系统高级程序设计实践报告课题名称:小型学生成绩管理系统姓名:小戴专业班级:电气 1207学号:0909120700指导老师:向老师上课时间:6.247.4课程设计目的1、使学生进一步理解和掌握课堂上所学各种基本 抽象数据类型的逻辑结构、存储结构和操作实现算法, 以及它们在程序中的使用方法;2、使学生掌握软件设计的基本内容和设计方法, 并培养学生进行规范化软件设计的能力;3、使学生掌握使用各种计算机资料和有关参考资 料,提高学生进行程序设计的基本能力。.设计要求1、需要处理的基础数据1) 学生基本信息:如班级、学号、姓名、性 另I、年龄、宿舍号码、电话号码等。2) 学生选修课

2、程的基本信息:课程编号、课 程名称、考试成绩、平时成绩、综合成绩、学分、重修 否等。2、系统的基本功能* 数据的录入:如录入学生的基本信息,以及该学生 选修课程的基本信息;* 数据的修改:如修改指定学号、或者指定姓名的学 生信息,或者修改其选修课程信息;*数据的插入:插入某个学生信息;* 数据的查询:如按学号查询、按姓名查询等;* 数据的删除: 如删除指定学号、 或者指定姓名的学 生及其选修课程信息;* 平均成绩的计算: 计算每个学生各门功课的平均成 绩,并按平均成绩从高到低的次序输出学生信息;* 列出不及格学生清单(学号、姓名、不及格的课程 和成绩)。* 考虑用文件把数据保存起来(可选) 。

3、三 概要设计1. 整体框架: 整个学生成绩管理系统采用链表作为基本数据结 构,创建一个类用于保存学生的数据且是链表中的一个 节点。 类作为保存整个链表之用。 主函数通过语句来根 据用户的需要连接各个模块,以实现用户的需要。2. 模块基本介绍 :1) . 用户输入模块在此模块中, 用户将根据菜单提示结合自己的需求 输入一个 08 的值,来实现一定的功能。2) . 学生信息录入模块 此模块可以让用户从键盘输入每个学生的信息: 学3 / 24C+小型学生成绩管理系统号、姓名、性别、各门课程的成绩。用户可插入一个或 多个学生信息到当前编辑的班级数据中。 用户可删除一 个或多个学生信息。3) . 文件保

4、存功能模块 用户在确定以录入的成绩无误之后, 可以将学生信 息以每一班为单位存为一个数据文件。 用户输入的学生 信息可随时保存数据文件。4) . 文件打开功能模块 用户可以用此模块将数据文件在程序中打开、 编辑, 程序只能对当前打开的数据文件进行编辑。5) . 查询功能模块 在此模块里,用户可实现以下操作: 1.浏览所有学 生信息; 2.按学号查询学生信息; 3.按姓名查询学生信 息;4.查询一个班每个人的总成绩和平均成绩 ; 5.查询一 个班某一门课每个人的总成绩和平均成绩 ;6.列出不及 格清单。6) . 报表输出功能模块在此模块中, 用户可以浏览所有学生的信息, 或者 可以按学号输出一个

5、班学生信息:学号、姓名、性别、 各门课成绩和总成绩, 到屏幕和文件。 也可以按平均成 绩输出从高到低输出学号、姓名信息。3. 模块图:# / 24C+、型学生成绩管理系统7 / 24值b玉4值7值0耳值名1FF1r11r学生信息求入視 块文件保你勿龍模退出功能糕块宣询功瞅块报梯回脱 块用尸SiA.并 将伯擁存至m 屮四. 详细设计主要功能模块的算法设计思路:1. 用户输入模块设计提示用户输入一个 08 的值,并存储在一个整型变 量 m 中。2. 学生信息录入模块设计通过应用中的 ()函数,来新建一个链表中的节点, 即一个新的学生信息, 来进行成绩的录入功能。 成绩修 改功能,可以根据姓名或学号

6、进行查询并修改相应的课 程的成绩,使用了 ( s10)和1( s20)函数进行操作。 函数根据姓名查找, 1 函数根据学号进行查找。因为学 号和姓名, 都是存储在字符数组中的, 所以都是通过字 符串的比较进行查找的。 然后根据整形参数进行对应的 课程成绩的修改。 成绩删除功能, 也是可以根据姓名或 学号进行删除, 查询的算法和成绩修改功能的查询方法 是一样的, 当找到要删除的节点时, 因为节点都是在堆 内存中保存的, 所以可以直接掉, 并将前一个节点的指 针指向被删掉的节点的指针所指向的节点。3. 文件保存功能模块先提示用户输入保存文件的文件名及班级名称。 文 件的前两行分别是班级名称和成绩单

7、的开头, 然后通过 变量来进行学生信息的输出, 一项一项的输出, 并设定 格式,直到输出节点为为止,之后关闭。4. 查询功能模块 可以根据姓名或学号进行查找,搜索方法和前几个模块相同。通过 1( *n)和(*n)来进行输出。总成 绩和平均成绩的查询通过函数(*)和1( *)来完成。通过函数()来浏览所有学生的信息。通过函数()来进行成绩的统计分析。5. 报表输出功能模块通过建立一个新的类用于拷贝的数据,并实现排序功能。创建一个M数组,将原链表的数据拷贝与数 组中,然后用选择排序方法将数组排序,然后用按照标准的格式输出或保存为数据文件。五. 运行结果(1)信息的录入请输人课程编号: 平时成绩:9

8、0老试成缰请输人课程编号,2平时成绩:80老试成缔40C+、型学生成绩管理系统(2) 成绩的查询9 / 24统 系 J - 理 管 绩 成_二习4-0 的绩 绩。成詈 成绩的的成 程舉生和雀 门生的空课 fisi 别某及 性询蹩正环 ii 名名名名名 、或*亠自4 号号号号号 IS2S工导 .又-U亠 生I 学单 Lz臥IZ主 包可可可主唇心序 入询改矯 塞修删尺辜成 的曲的的 注a-.-!注典蛋第平 咸成成養 12315 & 78 V Nh学号02 naryA1:继续:2 很据姓名查询性别 年龄宿舍号电话 12f20131315273846925596?BAb:退岀(3) 成绩的修改-J .

9、r.j :,,产WI T ”卡疣 b:赛:誇“402 mary程编号:12013015273846925俞入】:继续修改输入駅退出修改输入恥退岀统 系 理 管 成 主 学 型入的 咸绩的舄主和 番辜程 nii fisi US 件询崖疋不QQQ I) 。成囂、查翥、名名名名名W * M W MHWW M W* W0桝8 f 件存包可寻生停心序“ 入询改整HH绩杠 ssssks-e 缔绩绩摇出n所平“ 12 3 5&?8W 餐兴無M-盖*祥着M(4) 数据的删除*8 来M-* *二二X-A一=才 * * *S) 一一成绩的赣 一一门養个课 甬个=黔嘲ffil及不 一-名P名冷p =MMS4姓姓 丁

10、聲或、 一一号号号号号 affile 一 一 臥臥青自 一一包生賣序. :Hfi于成息 t- I - I II二s_#删尊L一一绩绩绩書器平1 2 3 4 5 & 7 &P冃锁人:4*損摒学号删除2 一根扌肩姓名删徐mWA: 1 髀入学号03 学号 姓名 性别 年龄宿舍号电话 丄 2S3 jack(121133138890309187655阴除成功输入1:继续;输人亦退岀(5) 列出不及格清单删竦威功输入“继纭; 轴八取退岀系 m 二 理 管 绩 成 生 学0入录 Q d 的1) 绩成馨 成第的專 wit和 门生的箱 更-H3H的 性询修定不名名名名名 I:.H 二二 姓摒#姓竝 号号号号号

11、SSHH子 居居居 feL.xL.清屋“住输Ltl文生I邑可可可土stSinn的的的曲水听存均12345678帀性鸟5姓名不及略的课程成绩重修臣0122 里?修输入“继续,输入0;退岀(6) 浏览所有学生信息C+、型学生成绩管理系统13/24輸入络续: 输入“退出统 系 理 管 成 *- 型录人*能I) 绩“成攀 屠的專 誥盂亍程 门牛姓 号口-4-号已冇 畫盂盂车 生H. 芋釆氓累单 括以以望翼保 包扫嘗心 人询改 的的的的下 绩绩绩W岀妁丹平文主I一刖12 3 4 5 6 782521831tb性别性莉 m姓名姓名请输二01 学号U4(7)保存文件十*二-.二4-一一入录一一的第据 -绩。

12、成譬 K成绩ihiL成 si 绩。成鸳 成绩的 程璽生和 g字学程 :1靑个课 各学应草的 聖粛及 ft番、 WWW 姓姓姓姓姓关*Vr*请输A : 8率号姓名性別年龄04dftuam1801dyym19宿舍号131126电话1387987&763均成绩8052输入“继续; 输入也退岀六. 心得体会虽说已经有过一次程序设计的经历,但这次的难度显然是比上次要大的多的。 本此程序设计所用时间较长,工作量很大,且所涉及的知识很多,光凭我们在课堂上学 的知识是远远不够的。开始的时候我还是很期待这次挑 战的,但当我真正着手策划设计的时候,才发现有些东西已经超过了自己的能力范围了

13、, 但这并不意味着我会 因此放弃,接着我就去接了几本相关的书籍,在遇到问题的时候我就会去查阅, 也确实解决了一些问题, 但显 然还有许多问题无从下手, 这时就不得不向大神求助了。 我觉得在编写程序时需要的是灵感,有时苦坐数个小时什么都没做,但有时在夜深人静的时候却一下子解决了 好多问题,虽然熬得很晚,却很值得。为了这个程序设 计确实是忙活了好久,总算勉强完成了。我相信我收获 的绝不仅仅是一个程序, 还有在思维上的锻炼, 以及编 写能力的提高。 总而言之, 我觉得这次课程设计很有意 义,很有价值。附录 : 课程数M = 20;此类用于拷贝的数据,用于排序功能的实现 20;10;10;5课程编号2

14、5; 总成绩 平均成绩5;5;20;用于保存学生信息的类 20 保存学号10保存性别10保存名字25 保存成绩5保存课程编号5;5;C+、型学生成绩管理系统20;()0;i=0;i=0;i=0;i=0;i=0;i=0;( 020)( 010)( 010)( 05)( 05)( 020)s();( 120)( 020)i1i;( 110)( 010)i1i;( 110)( 010)i1i;( 15)( 05)i1i;( 15)( 05)i1i;( 15)( 05)i1i;( 0();( i) 2i0i*0.31i*0.7;( i) i;();()0;( 0(i);J;()用于录入学生的信息 请输

15、入课程数 :; 请输入学号 :;请输入姓名 :;请输入性别 :;请输入年龄 :;请输入宿舍号 :;请输入电话 :;23 / 24( 0)请输入课程编号 :i; 学分: ;平时成绩: 0i;(0i1000i0) 请输入 0100 之间的数! 请重新输入: 0i; 考试成绩 1i;(1i1001i0) 请输入 0100 之间的数!请重新输入: 1i; ( j) 用于修改学生的成绩( 0)(1) 平时成绩 0i;(0i1000i0) 请输入 0100 之间的数!请重新输入: 0i; 考试成绩 1i;(1i1001i0) 请输入 0100 之间的数!请重新输入: 1i; ;J;J;J;s();(0);

16、( *n) 按姓名输出(0) 班级无成员!查无此人!)()0) (8)学号(8)姓名(8)性别(8)年龄(8)宿舍号(8) 电话 ;( 0)(8)(i);(8)()(8)()(8)() (8)()(8)()(8)();( 0)(8)(i);查无此人! ;J1( *n) 按学号输出(0) 班级无成员!查无此人! )()0)(14) (8)学号(8)姓名 (8)性别(8)年龄(8)宿舍号 电话 ;( 0)(8)(i);(8)()(8)()(8)() (8)()(8)()(14)();( 0)(8)(i);查无此人! ;J( *n) 删除学生成绩(0) 无数据! ()0) ;)()0) p;n 删除

17、成功 n 0;n 查无此人,删除失败 n;0;1( *n)(0) 无数据! ()0) ;)()0) p;n 查无此人,删除失败 n;0;()列出不及格清单(8)学号 (8)姓名 (14)不及格的课程 (8)成绩 (8) 重修否 )( 02j60)(8)()(8)()(14)j(8)2j(8) 重修 )()0)(n);1( s20 n)根据学号修改 *() ()0) (n);()(0) 班级无成员!查无此人! )(8)学号(8)姓名(8)性别 ;( 0)(8)(i);(8)()(8)()(8)();( 0)(8)(i);()M 复制整个链表的数据于数组,用于排序临时变量整个链表*p, *p1 (

18、),* 临时变量输入输出2020802091105520 临时变量0000 临时变量125 临时变量110;( 020) i=0;(09) i=0 初始化、型学生成绩管理系统;*1成绩的录入:包括学生学号、姓名、性别和各门课程成绩的录入。*2成绩的查询:可以根据学号或姓名查询某个学生的成绩。*3成绩的修改:可以根据学号或姓名来修改相应的学生的成绩。*4数据的删除:可以根据学号或姓名指定删除某个学生的数据。*5列出不及格学生清单 (学号、 姓名、不及格的课程和成绩) 。*6浏览所有学生信息。*7将所有学生信息保存成文件。*8按平均成绩排序输出学生信息。*m;(m)1:();J2:1.根据学号查询2.根据姓名查询 n;(n)1:;1();2:;();3:1.根据学号修改2.根据姓名修改 n;(n)1:;1(); j;1();2:;();( 0)请输入课程名 :i; 平时成绩 0i; 考试成绩 1i;j;();输入 1:继续修改输入 0:退出修改 m;(1);J4:1.根据学号删除2.根据姓名删除 n;(n)1:;1();1();2:;();();5: ();6:();7:请输入文件名:

温馨提示

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

评论

0/150

提交评论