目 录
1概述 1
1.1课程设计目的和意义 1
1.2课程设计内容 1
1.3课程设计要求 1
2系统需求设计 2
2.1系统目标 2
2.2系统主要模块流程 2
2.2.1学生选课、退课 2
2.2.2教师提交课程、管理员审核 2
2.2.3管理员相关功能 3
2.2.4修改密码 4
2.3系统类分析图 4
2.3.1继承关系 5
2.3.2其他类 7
2.4系统开发环境 7
3系统详细设计 7
3.1系统主要功能 7
3.1.1学生 8
3.1.2管理员 8
3.1.3教师 8
3.2系统设计中类图 9
3.3系统主要的数据结构及说明 10
3.3.1学生类定义及说明 10
3.3.2教师类定义及说明 11
3.3.3课程类定义及说明 13
3.3.4管理员类定义及说明 14
3.3.6 界面设置类定义及说明 17
3.4继承机制实现 18
3.5多态机制实现 18
3.6主要采用的算法 18
3.6.1排序算法 18
3.6.2查找算法 19
3.6.3冲突检测算法 23
3.7文件结构 24
3.7.1courseInfo.csv 文件 24
3.7.2adminInfo.csv 文件 24
3.7.3stuInfo.csv 文件 24
3.7.4teacherInfo.csv 文件 24
3.7.5waitToLoadCourse.csv 文件 25
4系统主要功能界面 25
4.1登陆界面 25
4.1.1主界面 25
4.2学生菜单 26
4.2.1主界面 26
4.2.2查看个人信息 26
4.2.3查看所有课程 26
4.2.4查看已选课程 27
4.2.5 选课 27
4.2.6 退课 28
4.2.7修改密码 28
4.2.8退出系统 29
4.3教师菜单 29
4.3.1主界面 29
4.3.2查看个人信息 30
4.3.3查看所授课程信息 30
4.3.4查看选择该课程的学生 30
4.3.5提交新的课程 31
4.3.6修改密码 32
4.3.7退出系统 32
4.4管理员菜单 32
4.4.1主界面 32
4.4.2查看全校学生信息 33
4.4.3查看全校课程信息 33
4.4.4查看全校教师信息 34
4.4.5查看老师开课需求 34
4.4.6添加学生信息 35
4.4.7添加课程信息 35
4.4.8添加教师信息 36
4.4.9修改学生信息 36
4.4.10修改课程信息 37
4.4.11修改教师信息 38
4.4.12删除信息 39
4.4.13查询信息 40
4.4.14修改密码 41
4.4.15退出系统 41
5学习总结 41
附件——底层完整代码 42
面向对象程序设计大作业 第1页
1概述
1.1课程设计目的和意义
根据课程大纲设定,面向对象课程设计的目的是:
(1)理解面向对象的基本思想和三大机制,掌握基于 C++语法的面向对象的基本概念和开发模式,熟练运用面向对象思维模式对信息和通信领域的软件系统问题进行建模(对应毕业要求指标点 1.2)。
(2)掌握面向对象的程序设计方法和技术,具备以面向对象程序设计模式对开发需求进行分析、设计和调试的能力(对应毕业要求指标点 3.1)。
(3)熟练运用基于 C++的面向对象开发环境,为后续其他面向对象编程环境做好铺垫,针对实际需求充分利用现有开发工具的优势和特点解决具体问题,具备对工具的选择和应用的能力(对应毕业要求指标点 5.1)。
1.2课程设计内容
大一已经过了一半,每次开学或者学期末时候,所有同学都要订下本学期或者下一学期该学的课程内容,因此根据自己了解的场景,完成本学期课程设计:教务选课系统,系统开发内容可以按照以下模式进行:
(1)参考学校教务网功能模拟开发选课子系统,要完成基本信息类和业务类的封装(包括必要的构造函数析构函数和返回信息等成员)。编写相应的测试程序对类进行测试。
(2)编写相应的管理类。管理功能包括对象的文件存储、对象的获取(构造)、基本统计和分析等。编写相应的测试程序对管理类进行测试。
(3)可以将管理类的编写分阶段进行。从学生管理类、课程管理类,最后再编写综合管理类。
(4)所有的处理尽可能地封装在类成员中。测试主函数和运行主函数尽量简单。少用或不用主函数以外的外部函数。
(5)数据文件可以复制教务网上的数据文件或者建立对应的文本文件保存基本信息类的对象内容,减少甚至杜绝使用 cin 和 cout,改用文件流操作数据。以便为后续升级做准备。(调试时除外)
1.3课程设计要求
课程设计要求每位同学独立完成具有一定完整性和实用性的面向对象程序。完整体现面向对象三大机制(封装、继承、多态的)综合应用。//接口类,多态
(1)根据个人能力独立完成或分组完成。
(2)课程设计并非一天能够完成,需做好中间过程的保存和持续进行的工作。
2系统需求设计
2.1系统目标
实现教务系统选课模块的相关功能,具体如下:
(1)基本信息管理模块:基本信息(学生类、教师类、课程类)的增删查改以及在界面中的显示、排序、查找
(2)选课模块:包含选课和退课两大功能(包含冲突检测)
(3)排课模块:教师提交课程、管理员添加课程
(4)实现数据以文件的形式读取和写入
(5)包含图形界面,界面友好