1、 二一二二一三学年第二学期二一二二一三学年第二学期 信息科学与工程学院信息科学与工程学院 C+C+程序设计语言程序设计语言 课程设计报告课程设计报告 课程名称:课程名称:C+C+程序设计语言程序设计语言 班班 级:电气信息类级:电气信息类 12061206 班班 学学 号:号: 姓姓 名:名: 指导教师:指导教师: 2 / 30 目录目录 1.课程设计目的 3 2.系统描述(需求分析) 3 2.1 需要处理的基础数据 3 2.2 系统的基本功能 . 3 2.3 可行性分析 4 3.功能模块设计 4 3.1 类的分析与设计 . 4 3.1.1 Course 类 4 3.1.2 Stu 类. 5
2、3.2 整体流程 . 6 4.主要模块的算法说明 . 7 4.1 信息的保存和读取 . 7 4.2 对信息的处理 . 7 4.2.1 数据的录入和插入 . 7 4.2.2 数据的查询 . 7 4.2.3 数据的修改 . 7 4.2.4 数据的删除 . 7 4.2.5 数据的排序 . 8 5.程序运行结果 8 5.1 菜单欢迎界面 . 8 5.3 信息的显示 9 5.4 信息的查询 . 9 5.5 信息的修改 . 10 5.6 信息的删除 . 11 5.7 按平均分降序排列 11 5.8 查看全部信息 . 12 5.9 输出不及格学生信息 . 12 5.10 退出系统. 13 6.课程设计总结
3、13 7.参考文献 . 13 8.附录(源代码) 14 3 / 30 1.课程设计目的课程设计目的 1.1 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、 存储结构和操 作实现算法,以及它们在程序中的使用方法。 1.2 使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。 1.3 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。 2.系统描述(需求分析)系统描述(需求分析) 2.1 需要处理的基础数据需要处理的基础数据 学生基本信息:如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。 学生选修课程的基本信息:课程编号、课
4、程名称、考试成绩、平时成绩、综合成绩、学分、 重修否等。 2.2 系统的基本功能系统的基本功能 数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息; 数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息; 数据的插入:插入某个学生信息 数据的查询:如按学号查询、按姓名查询等; 数据的删除:如删除指定学号、或者指定姓名的学生及其选修课的信息; 平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出 学生信息; 列出不及格学生清单(学号、姓名、不及格的课程和成绩)。 考虑用文件把数据保存起来(可选)。 4 / 30 2.3 可行性分析可行性
5、分析 2.3.1 如上所示,该系统要求处理一些学生成绩的基本数据,包括两个方面:学生身份信息 和学生成绩信息。具体可以考虑创建两个类,一个学生基本信息类,一个学科基本信息 类。这样既可以保持二者的独立性,也可以使之相关联。 2.3.2 该系统不仅要求能录入一些基本数据外,还要能对这些数据进行处理,比如修改,删 除, 插入, 查询等。 对这些操作的实现可以暂时放开面向对象, 而采用面向过程的方法。 另外,因为对数据库了解不多,可以考虑用文件保存的形式将数据保存起来,最后在查 找的时候采用文件读取。 3.功能模块设计功能模块设计 3.1 类的分析与设计类的分析与设计 由上面的需求分析可以知道,在本
6、程序中,需要处理两大类数据:一个是学生的身份基 本信息, 另一个是该同学的课程基本信息。 而且要求二者既要相互联系, 又不能太相互制约。 于是可以考虑创建两个类: Stu 类(学生信息类)和 Course 类(课程信息类) 。为了使二 者相互关联,可以让 Course 的一个类对象作为 Stu 对象的一个基本数据成员。具体如下: 3.1.1 Course 类类 由于学生只需要一些课程信息, 故在该类中只有一些基本的成员数据, 不涉及成员函数 之类的对数据进行操作的函数。把对学生信息进行处理的函数放在 Stu 类中。 成员 成员属性 访问类型 course_num 数据成员 public course_name 数据成员 public regular_score 数据成员 public Final_score 数据成员 public average_score 数据成员 public study_score 数据成员 public rebulid 数据成员 public 由于这些数据信息是作为 Stu 类的一个信息的,