- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《面向对象程序设计》课程设计报告-学生成绩管理系统汇
《面向对象程序设计》
课程设计报告
专 业:
姓 名:
学 号:
指导教师:
二O一一 年 九 月 日
一、课程设计问题描述
设计完成一套学生成绩管理系统,要求能够实现学生成绩管理的基本功能,包括:学生成绩的键盘录入、学生成绩的条件输出、学生成绩的条件抽取、学生成绩的条件排序、条件修改。
其中具体设计内容如下:
(1)从键盘输入学生基本信息(学号、姓名、英语成绩、高数成绩),计算每个学生的平均成绩,并将数据存入文件student.txt文件中。
(2)按如下格式输出大于等于平均成绩的学生信息:
学号 姓名 英语 高数 平均成绩
(3)将两门可课都不及格的学生信息抽取出来,另存入文件bat.txt中。
(4)提供按学号进行查询的功能。
(5)尽可能使用运算符重载以简化操作。
(6)使用多文件结构和菜单操作,并考虑相应的操作权限。
二、课程设计目的和要求:
经过一学期对面向对象程序设计的初步学习,对于面向对象程序设计有了一定的编程基础,为更好地理解和掌握面向对象程序设计,将通过为期一周的上机实践编程,运用面向对象程序设计完成课程设计编程任务的同时,补充和完善面向对象程序设计的相关知识。
三、系统环境(包括硬件环境和软件环境)
无。
四、程序设计思想描述
首先明确这是一个学生成绩管理系统,那么这个系统应该具备管理学生成绩的基本功能。
同时考虑到使用对象的不同,应考虑到权限方面的相应开放,为简便用户操作以及个人能力限制将采用文字菜单模式。
1、成绩管理系统——成绩(中心)——学生(以学生为管理对象)——学生属性和方法。
*学生类 属性包括:学号、姓名、英语成绩、高数成绩、平均成绩、名次(以链表的当前位置为计)。
*学生类 方法包括:构造函数、析构函数、设置函数、修改函数以及获取相应属性的函数。
2、操作权限——教师——教师特权。
*教师特权 包括:成绩录入、条件抽取、条件修改、排序以及删除。
操作权限——学生——普通权限。
*教师与学生共同权限 包括:条件查询。
3、操作菜单:
(一级菜单)1、教师(需要帐号验证),2、学生,0、退出系统
(二级菜单)1.1、成绩录入,1.2、查询,1.3、成绩修改,1.4排序,1.5、查看数据, 1.6、删除1.0、返回上一层菜单
(三级菜单)1.1.1、单个录入,1.1.2、批量录入,1.1.0、返回上一层菜单
(三级菜单)1.2.1、学号查询,1.2.2、范围查询、1.2.3、不及格查询(两门都低于60分)(包含保存功能),1.2.0、返回上一层菜单
(三级菜单)1.3.1、英语成绩修改,1.3.2、高数成绩修改,1.3.0、返回上一层菜单
(三级菜单)1.4.1、平均分成绩排序,1.4.2、英语成绩排序,1.4.3、高数成绩排序,1.4.4、学号排序,1.4.0、返回上一层菜单
(三级菜单)1.6.1、按学号删除,1.6.2、按姓名删除,1.6.0、返回上一层菜单
(二级菜单)2.1、个人查询,2.2、相近查询,2.0、返回上一层菜单
(三级菜单)2.2.1、平均分相近查询,2.2.2、英语相近查询,2.2.3、高数相近查询, 2.2.0、返回上一层菜单
几点说明:1、在进入二级菜单时先从文件中读取数据,若没有数据则只能允许选择教师工作模式。
2、进入教师工作模式需要验证码,设置密码为123456,目前不支持密码修改。
3、将所有功能函数设计模块化,提高代码利用率。
4、利用模块化的功能函数,可以实现函数间的相互调用,实现菜单工作模式,大大降低编程难度,同时因为目前绝大多数电脑的CPU、内存等资源的性能比早期的计算机有了很大地提高,完全可以满足合理的函数调用。
5、为实现学生成绩的排序功能,将采取链表的工作方式,同时利用此模式实现其他功能。
6、学生属性中的学号与姓名将采用字符窜变量来标记以应对不同的学号和姓名模式。
五、程序结构(包括类设计、主程序设计及流程图)
学生类的设计:
属性:学号、姓名、英语成绩、高数成绩、平均成绩、排名、指针域
方法:学号、姓名、英语成绩、高数成绩相应的修改函数,获取属性的相关函数,构造及析构函数。
链表类的设计:
属性:链表头、链表长度、链表是否排序、当前结点在链表中的排名。
方法:增加结点的函数,按学号、英语成绩、高数成绩排序、查询的函数,保存链表的函数,读取数据的函数,以学号、姓名删除结点的函数,获取排名的函数,获取属性值的相关函数。
几点说明:
将链表类作为学生类的友
文档评论(0)