目录
一、实验目的:
1)完成学生课程管理系统概要设计
2)完成学生课程管理系统详细设计
3)撰写学生课程管理系统设计说明书
二、实验要求:
根据所要开发的软件系统,利用面向对象方法完成系统体系结构设计、数据设计、界面设计,系统功能模块设计。要求必须包括数据库的概要设计和详细设计,有详细的类设计映射表,并用时序图表示模块功能的业务过程。
三、软件设计说明书
1 体系结构设计
1.1 功能结构图
图1.1-1 学生选课系统功能结构图
1.2 包设计
(1)视图层包图
表1.2-1 视图层包图
(2)控制层包图
表1.2-2 控制层包图
2 界面设计
2.1 用户特性分析
(1)学生
学生角色主要是针对在校具有选课资格的大学生而设定,学生登陆并取得合法权限后,就可以使用学生模块,它主要包括:查看课程信息,选课,退课,查看课表4项功能。
(2)老师
老师角色主要是针对在校具有管理课程资格的教师而设定的。教师登录成功后进入教师界面,教师的功能包括录入课程信息,修改课程信息,查看课程表,查看学生信息。
(3)管理员
管理员是指系统功能的主要使用者,主要功能包括查看用户信息,管理用户信息,管理课程信息,排课生成课程表的功能。
2.2 用户工作分析
(1)学生工作
图2.2-1 学生工作图
(2)老师工作
图2.2-2 老师工作图
(3)管理员工作
图2.2-3 老师工作图
2.3 界面任务分析
(1)学生选课界面:
查看课程信息:包括课程名称、教师、上课时间、地点等信息。
添加选课:学生可以选择要选取的课程并提交。
删除选课:学生可以选择要退掉的课程并提交。
查看课程表:学生可以查看自己的选课情况和课程安排。
(2)老师录课界面:
录入课程信息:教师可以添加新的课程,包括课程名称、教师、上课时间、地点等信息。
修改课程信息:教师可以修改现有课程的信息。
查看课程表:教师可以查看自己所授课程的安排。
(3)管理员排课界面:
查看选课信息:管理员可以查看所有学生的选课情况。
审核选课信息:管理员可以审核学生的选课申请,批准或拒绝。
安排选课:管理员可以根据学生的选课情况和课程容量安排课程。
2.3 界面类型确定
在选用界面形式的时候,应当考虑每种类型的优点和限制,从以下几个方面来考虑,进行抉择:使用的难易程度、学习的难易程度、操作速度、复杂程度、控制和开发的难易程度。通常,一个界面的设计使用了一种以上的设计类型,每种类型与一个或一组任务相匹配。
(1)正文菜单:
菜单是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。按照显示的形象或样式来分类。正文菜单实质上是系统命令本身或者是其简写形式。简单的正文菜单的设置与选取方式:
1)首字符匹配方式
2)序号匹配方式
3)亮条匹配方式
(2)图标菜单:
图标菜单,简称图标,是安置在一个小方框之中的衣服象形的或表意的图画。
(3)正文和图标混合的菜单
这种菜单基本上还是正文式的。从屏幕上看,它还是由字符串构成。
1层—子系统层,这一层菜单在水平方向排成一行,安放于品目的上沿或下沿。
2层—当用户挑选了某一个操作类时,屏幕上将按垂直方向显示这组操作类的名称。
(4)对话
1)必须回答式:必须回答式的对话在屏幕上出现时,用户必须给予回答,否则系统不再做任何其他工作。
2)无需回答式:这类对话在屏幕上的出现,仅仅是为了告诉用户一些参考信息,不需要用户回答。
3)警告式:这类对话主要用于系统报错或者警告。
3 数据库设计
3.1 概要设计
(1)ER图:
图3.1-1 学生选课系统ER图
3.2详细设计
(1)数据库关系表
1)学生关系表
表3.2-1 学生关系表
数据名 | 数据类型 | 数据长度 | 能否NULL | 是否为主键 | 描述 |
Stu_id | bigint | 12 | N | Y | 学生学号 |
Stu_name | varchar | 10 | N | N | 学生姓名 |
major | varchar | 20 | N | N | 学生专业 |
class | varchar | 10 | N | N | 学生班级 |
Stu_college | varchar | 20 | N | N | 学生学院 |
Stu_account | varchar | 20 | N | N | 学生账号 |
Stu_password | bigint | 20 | N | N | 学生密码 |
2)老师关系表
表3.2-2 老师关系表
数据名 | 数据类型 | 数据长度 | 能否NULL | 是否为主键 | 描述 |
Tea_id | bigint | 12 | N | Y | 老师工号 |
Tea_name | varchar | 10 | N | N | 老师姓名 |
Tea_course | varchar | 20 | N | N | 教授课程 |
Tea_college | varchar | 20 | N | N | 老师学院 |
Tea_account | varchar | 20 | N | N | 老师账号 |
Tea_password | bigint | 20 | N | N | 老师密码 |
3)管理员关系表
表3.2-3 管理员关系表
数据名 | 数据类型 | 数据长度 | 能否NULL | 是否为主键 | 描述 |
Adm_id | bigint | 12 | N | Y | 管理员工号 |
Adm_name | varchar | 10 | N | N | 管理员姓名 |
Access_level | varchar | 20 | N | N | 管理权限 |
Adm_account | varchar | 20 | N | N | 管理员账号 |
Adm_password | bigint | 20 | N | N | 管理员密码 |
4)课程关系表
表3.2-4 课程关系表
数据名 | 数据类型 | 数据长度 | 能否NULL | 是否为主键 | 描述 |
Course_id | bigint | 12 | N | Y | 课程号 |
Course_name | varchar | 10 | N | N | 课程名 |
Course_college | varchar | 20 | N | N | 开设学院 |
Tea_id | bigint | 12 | N | N | 授课老师 |
(2)类设计
1)学生选课模块
学生选课模块由查看课程信息,添加选课,删除选课,查看课程表等功能组成,该模块文件列表及存放路径如表3.2-5所示。
表3.2-5 学生选课模块文件列表及存放位置表
名称 | 类型 | 存放位置 | 说明 |
StudentId | 实体类 | gdoustuselect.modules.stuselect.molel | 学生学号 |
StuName | 实体类 | gdoustuselect.modules.stuselect.molel | 学生姓名 |
StuMajor | 实体类 | gdoustuselect.modules.stuselect.molel | 学生专业 |
StuClass | 实体类 | gdoustuselect.modules.stuselect.molel | 学生班级 |
StuCollege | 实体类 | gdoustuselect.modules.stuselect.molel | 学生学院 |
StuAccount | 实体类 | gdoustuselect.modules.stuselect.molel | 学生账号 |
StuPassword | 实体类 | gdoustuselect.modules.stuselect.molel | 学生密码 |
CourseId | 实体类 | gdoustuselect.modules.stuselect.molel | 课程号 |
CourseName | 实体类 | gdoustuselect.modules.stuselect.molel | 课程名 |
CourseCollege | 实体类 | gdoustuselect.modules.stuselect.molel | 开设学院 |
CourseTea | 实体类 | gdoustuselect.modules.stuselect.molel | 授课老师 |
SelectRecord | 实体类 | gdoustuselect.modules.stuselect.molel | 选课记录 |
SelectInterface | 边界类 | gdoustuselect.modules.stuselect.molel | 选课界面 |
SelectService | 控制类 | gdoustuselect.modules.stuselect.molel | 选课服务 |
2)老师录课模块:
老师录课模块由录入课程信息,修改课程信息,查看课程表等功能组成,该模块文件列表及存放路径如表3.2-6所示。
表3.2-6 老师录课模块文件列表及存放位置表
名称 | 类型 | 存放位置 | 说明 |
TeacherId | 实体类 | gdouteainput.modules.teainput.molel | 老师工号 |
TeacherName | 实体类 | gdouteainput.modules.teainput.molel | 老师姓名 |
TeacherCourse | 实体类 | gdouteainput.modules.teainput.molel | 教授课程 |
TeacherCollege | 实体类 | gdouteainput.modules.teainput.molel | 老师学院 |
TeacherAccount | 实体类 | gdouteainput.modules.teainput.molel | 老师账号 |
TeacherPassword | 实体类 | gdouteainput.modules.teainput.molel | 老师密码 |
CourseId | 实体类 | gdouteainput.modules.teainput.molel | 课程号 |
CourseName | 实体类 | gdouteainput.modules.teainput.molel | 课程名 |
CourseCollege | 实体类 | gdouteainput.modules.teainput.molel | 开设学院 |
CourseTea | 实体类 | gdouteainput.modules.teainput.molel | 授课老师 |
CourseInfoRecord | 实体类 | gdouteainput.modules.teainput.molel | 课程信息记录 |
RecordInterface | 边界类 | gdouteainput.modules.teainput.molel | 录课界面 |
RecordService | 控制类 | gdouteainput.modules.teainput.molel | 选课服务 |
3)管理员排课模块:
管理员排课模块由查看选课信息,审核选课信息,安排选课等功能组成,该模块文件列表及存放路径如表3.2-7所示。
表3.2-7 管理员排课模块文件列表及存放位置表
名称 | 类型 | 存放位置 | 说明 |
AdmId | 实体类 | gdouadmmanager.modules.admmanager.molel | 管理员工号 |
AdmName | 实体类 | gdouadmmanager.modules.admmanager.molel | 管理员姓名 |
AdmLevel | 实体类 | gdouadmmanager.modules.admmanager.molel | 管理员权限 |
AdmAccount | 实体类 | gdouadmmanager.modules.admmanager.molel | 管理员账号 |
AdmPassword | 实体类 | gdouadmmanager.modules.admmanager.molel | 管理员密码 |
CourseRecord | 实体类 | gdouadmmanager.modules.admmanager.molel | 课程表记录 |
RecordInterface | 边界类 | gdouadmmanager.modules.admmanager.molel | 排课界面 |
ManagerService | 控制类 | gdouadmmanager.modules.admmanager.molel | 排课服务 |
4详细设计
4.1系统时序图
- 登录时序图
表4.1-1 登录时序图
2. 选课时序图
表4.1-2 选课时序图
3. 录课时序图
表4.1-3 录课时序图
4. 排课时序图
表4.1-4 排课时序图
4.2系统类设计
4.1.1类定义
1)学生类
属性:学号、姓名、专业、年级、已选课程
方法:选课、退课、查看课程表
2)课程类
属性:课程号、课程名称、授课老师、上课时间、上课地点、已选学生
方法:查看课程信息、查看已选学生
3)教师类
属性:教师工号、姓名、任教课程
方法:录入课程信息、查看课程表
4)管理员类
属性:管理员工号、姓名、权限等级
方法:查看选课信息、审核选课信息
4)选课系统类
属性:学生表、教师表、选课表、课程信息表
方法:学生选课、学生退课、查看课程信息
5)录课系统类
属性:学生表、教师表、课程信息表
方法:老师录入课程信息、老师修改课程信息、生成课程信息表
6)排课系统类
属性:学生表、教师表、选课表、课程信息表
方法:管理员查看选课信息、管理员审核选课信息、生成选课表
4.1.2. 系统类图
表4.2-1 类图