实验七: 设计类图
一、实验链接:
实验一:https://blog.csdn.net/miny_chen/article/details/80084189
实验二:https://blog.csdn.net/miny_chen/article/details/80287214
实验三:https://blog.csdn.net/miny_Chen/article/details/80408875
试验四:https://blog.csdn.net/miny_Chen/article/details/80643673
二、设计类图:
类图:
内容说明:
1) 登陆
Ø 类整体说明:注册登陆,学生、教师或教务员登陆的信息(账号和密码)。
Ø 属性说明:
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
账号 |
用户登录账号 |
TINYINT(14) |
private |
-1 |
密码 |
用户登录密码 |
varchar(15) |
private |
-1 |
验证码 |
登录验证码 |
varchar(4) |
private |
-1 |
Ø 操作说明:
(一)重置密码:参与者输入账号和密码,还有验证码,成功登陆后允许用户重置密码,修改成功后将在相应的数据库中保存其密码。
(二)获取密码
Ø 关联描述(多重性关系):所有教师、学生和教务员进行所有的教学管理系统中的操作时,首先要进行登陆。
2) 教师
Ø 类整体说明:教师即成绩管理员,是在这所大学教书的人。
Ø 属性说明:姓名、账号、姓名、密码、性别、联系方式、学院
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
姓名 |
教师姓名 |
varchar(15) |
private |
-1 |
账号 |
教师个人账号 |
TINYINT(14) |
private |
-1 |
姓名 |
教师的姓名 |
varchar(15) |
private |
-1 |
密码 |
教师个人密码 |
varchar(15) |
private |
-1 |
性别 |
教师性别 |
varchar(4) |
private |
-1 |
联系方式 |
个人联系方式 |
TINYINT(11) |
private |
-1..* |
学院 |
所属学院 |
varchar(15) |
private |
-1 |
Ø 操作说明
(一)录入和维护成绩(增删查改)
(二)统计成绩
(三)向学籍管理部门发成绩单
(四)向教学评估部门发成绩单
Ø 关联描述(多重性关系):
(一)一位教师拥有一份任课课表,一份教师任课表专属于一位教师。
(二)一位教师维护0至多名学生的成绩,学生成绩信息至少被一位教师填写。
(三)一位教师统计查询一个或多个任课课程的成绩,每门课程的成绩都至多被一位教师管理。
(四)教师和学籍管理部门存在“发送学生成绩”的关系。
(五)教师和教学评估管理部门存在“查看教学评估反馈”的关系。
3) 学生
Ø 类整体说明:在大学里上课的人。
Ø 属性说明:学号、姓名、密码、性别、联系方式、学院、系别、班级
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
学号 |
个人账号 |
TINYINT(14) |
private |
-1 |
姓名 |
学生姓名 |
varchar(15) |
private |
-1 |
密码 |
学生登录密码 |
varchar(15) |
private |
-1 |
性别 |
学生性别 |
varchar(4) |
private |
-1 |
联系方式 |
个人联系方式 |
TINYINT(11) |
private |
-1..* |
学院 |
所属学院 |
varchar(15) |
private |
-1 |
系别 |
所属的系 |
varchar(15) |
private |
-1 |
班级 |
所在的班级 |
TINYINT(11) |
private |
-1 |
Ø 操作说明
(一)选课:选课表中允许学生能够在选课表中选课,然后确定的选课信息将被存在选课清单中。
(二)查看个人详细信息:查看学生个人的全部详细信息
(三)查看学期课表
(四)查看专业推荐课表:每个专业每学期都有对应的课表,学生查看的就是对于自己对应专业的课表。
(五)查询选课清单:查看当前选课情况。
(六)查询成绩
Ø 关联描述(多重性关系):
(一)一个学生可以查看一个或多个成绩,因为一个学生有多门课程的成绩;一份课程成绩只能属于一名学生。
(二)一个学生有特定的专业,只拥有一个专业推荐课表;一个专业推荐课表对应该专业的学生。
(三)一个学生至少可以选择一门课程,一门课程至少可以被一个学生选择。
(四)一个学生可以查看本学期已选课程的课程,一个课程表可以被一个对应的学生查看。
(五)学生与招生管理部门存在“选为学校学生”的关系。
4) 教务员
Ø 类整体说明:教务员,即课程管理员,管理教学系统的人。
Ø 属性说明:账号、姓名、密码、性别、联系方式、学院
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
账号 |
教务员登录账号 |
TINYINT(14) |
private |
-1 |
姓名 |
教务员姓名 |
varchar(15) |
private |
-1 |
密码 |
教务员个人登录密码 |
varchar(15) |
private |
-1 |
性别 |
教务员性别 |
varchar(4) |
private |
-1 |
联系方式 |
个人联系方式 |
TINYINT(11) |
private |
-1..* |
学院 |
所属学院 |
varchar(15) |
private |
-1 |
Ø 操作说明:
(一)公布课程:公布该学期安排可以上的课程,无论是必修还是选修,但分类公布。
(二)维护选课表
(三)公布专业推荐课表:当课程管理员成功录入该学期的必修课程安排和各个专业学生的培养计划,以及教室管理员等安排好各个课程的上课时间、上课地点和任课老师(老师选择教授的课程)后,各个专业的学生的个人专业推荐课表就会生成,其中包括该学期学生的必修课程和专业选修课程,最后将数据更新到系统。
(四)维护学生个人课表:当课程管理员成功录入该学期的必修课程安排,以及教室管理员等安排好各个课程的上课时间、上课地点和任课老师(老师选择教授的课程)后,各个专业的学生的个人必修课课表就会生成,最后将数据更新到系统。
(五)计算选课数:把每名参与选课的学生的选课清单选课数设定在四门或四门以下,同时在选课期间在学生变更所选课程时更新选课清单,同时在选修课人数过少时同时需要处理学生选修课情况。
(六)维护老师任课课表:当教师所担任选修课的选修人数小于15名时,在其任课课表中去除该课。
(七)向教室分配管理部门发送课程安排信息。
Ø 关联描述(多重性关系):
(一)一位教务员维护一至多个老师任课表,一位老师的任课表被一位教务员管理。
(二)一位教务员公布一至多个学生的专业推荐课表,一个学生的专业推荐课表至多可以被一位教务员发布。
(三)一位教务员维护一至多个学生的个人课表,一个学生的个人课表至多可以被一位教务员管理。
(四)一位教务员维护一至多个学生的选课清单,一个学生的选课清单至多可以被一位教务员维护。
(五)一位教务员管理零至多门课程,一门课程至多可以被一位教务员维护。
(六)教务员和教室分配管理部门存在“发送课程安排信息”的关系。
5) 课程
Ø 类整体说明:每学期由大学安排的课程。
Ø 属性说明:课程编号、课程名、课程类别、学分、学时、限选人数、已选人数、上课地点、上课时间、任课老师、课程内容介绍
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
课程编号 |
课程唯一的标识 |
varchar(15) |
private |
-1 |
课程名 |
课程名称 |
varchar(15) |
Private |
-1 |
课程类别 |
所属的系 |
varchar(15) |
Private |
-1 |
学分 |
课程学分 |
TINYINT(4) |
Private |
-1 |
学时 |
课程学时 |
TINYINT(4) |
Private |
-1 |
限选人数 |
限制选修课程的最大人数 |
TINYINT(4) |
Private |
-1 |
已选人数 |
以选修该课程的人数 |
TINYINT(4) |
Private |
-1 |
上课地点 |
课程安排的上课地点 |
varchar(15) |
Private |
-1..* |
上课时间 |
课程安排的上课时间 |
varchar(15) |
Private |
-1..* |
任课老师 |
上课老师,可能不止一个 |
varchar(15) |
Private |
-1..* |
课程内容介绍 |
课程的简单介绍 |
TEXT |
Private |
-0..* |
Ø 操作说明:
(一)学生查询个人课表
(二)学生查询专业推荐课表
(三)老师查询个人任课课表
Ø 关联描述(多重性关系):一门课程可以被一名教务员管理,一位教务员可以管理零至多名课程。
Ø 继承描述:课程和选课单之间存在继承关系,选课单等继承了课程的所有特征。
6) 选课表
Ø 类整体说明:记录了所有选修课程。
Ø 属性说明:课程编号、课程名、上课地点、上课时间、任课老师、课程内容介绍、所属院系、限选人数、已选人数
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
课程编号 |
课程唯一的标识 |
varchar(15) |
private |
-1 |
课程名 |
课程名称 |
varchar(15) |
Private |
-1 |
上课地点 |
课程安排的上课地点 |
varchar(15) |
Private |
-1..* |
上课时间 |
课程安排的上课时间 |
varchar(15) |
Private |
-1..* |
任课老师 |
上课老师 |
varchar(15) |
Private |
-1 |
课程内容介绍 |
课程的简单介绍 |
TEXT |
Private |
-0..* |
所属院系 |
所属学院 |
varchar(15) |
private |
-1 |
限选人数 |
限制选修课程的最大人数 |
TINYINT(4) |
Private |
-1 |
已选人数 |
以选修该课程的人数 |
TINYINT(4) |
Private |
-1 |
Ø 操作说明:
(一)加入选课的学生
(二)指定授课的老师
(三)选课剩余名额:确定人数是否已满。
Ø 关联描述(多重性关系):一个选课清单至多可以有零至4门课程,一门课程可能被选也可能不被选。
Ø 继承描述:课程和选课单之间存在继承关系,选课单等继承了课程的所有特征。
7) 选课记录
Ø 类整体说明:选课记录即选课清单,记录学生当前选修的课程。
Ø 属性说明:学号、课程编号、课程名、授课老师
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
学号 |
学生唯一的学号 |
TINYINT(14) |
private |
-1 |
课程编号 |
课程唯一的编号 |
varchar(15) |
private |
-1 |
课程名 |
课程名称 |
varchar(15) |
private |
-1 |
授课老师 |
担任该门课程的老师 |
varchar(15) |
Private |
-1 |
Ø 操作说明:
(一)查询
Ø 关联描述(多重性关系):
(一)一个选课清单可以拥有一门或多门课程,一门课程可以被零或多个选课清单所有。
(二)一个选课清单至多可以被一名对应的学生查看,一名学生可以查看一个选课清单。
(三)一个选课清单至多可以有零至4门课程,一门课程可能被选也可能不被选。
8) 成绩
Ø 类整体说明:对某一课程学生成绩的评价(学生每学期的成绩,其中包括平时成绩、期中和期末成绩等)。
Ø 属性说明:学号、成绩
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
学号 |
学生唯一的学号 |
TINYINT(14) |
private |
-1 |
成绩 |
各门课程的成绩 |
TINYINT(3) |
private |
-1 |
Ø 操作说明:
(一)查询成绩
Ø 关联描述(多重性关系):
(一)一个学生可以查看零至多个成绩,一个成绩可被一名学生查看。
(二)一个成绩至多可以被一位老师维护,一位老师至少可以维护一个成绩。
9) 成绩单
Ø 类整体说明:所有学生在某一学期所修课程的各个成绩。(成绩汇总统计表:学生各学期的各科成绩。(属性包括学号、年级、系别、班级、姓名、科目))
Ø 属性说明:年级、系别、班级、课程编号、课程名
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
学号 |
学生唯一的学号 |
TINYINT(14) |
private |
-1 |
年级 |
学生所在年级 |
TINYINT(4) |
private |
-1 |
系别 |
所属的系 |
varchar(15) |
private |
-1 |
班级 |
所在的班级 |
TINYINT(11) |
private |
-1 |
课程编号 |
课程唯一的编号 |
varchar(15) |
private |
-1 |
课程名 |
课程名称 |
varchar(15) |
private |
-1 |
Ø 操作说明:
(一)增加成绩
(二)修改成绩
(三)删除成绩
(四)查询成绩
Ø 关联描述(多重性关系):一份成绩单至多可以被一个老师统计查看,一位老师可以统计查询一或多份成绩单。
10) 学生课表
Ø 类整体说明:学生各学期的当前课表。
Ø 属性说明:学号、姓名、课程编号、课程名
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
学号 |
学生唯一的学号 |
TINYINT(14) |
private |
-1 |
姓名 |
教务员姓名 |
varchar(15) |
private |
-1 |
课程编号 |
课程唯一的编号 |
varchar(15) |
private |
-1 |
课程名 |
课程名称 |
varchar(15) |
private |
-1 |
Ø 操作说明:
(一)查询学期课表
Ø 关联描述(多重性关系):
(一)一个课表至多只能被一名学生拥有,一名学生至多可以拥有一个课表。
(二)一个课表至多只能被一名教务员维护,一名教务员至少要维护一个课表。
11) 专业推荐课表
Ø 类整体说明:各专业的专业选修课和必修课教务员安排完时间后形成的课表。
Ø 属性说明:专业、课程编号、课程名
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
专业 |
为该表的唯一标识,专业名称 |
varchar(15) |
private |
-1 |
课程编号 |
课程唯一的编号 |
varchar(15) |
private |
-1 |
课程名 |
课程名称 |
varchar(15) |
private |
-1 |
Ø 操作说明:
(一)查询专业推荐课表
Ø 关联描述(多重性关系):
(一)一个专业推荐课表至多只能被一名学生拥有,一名学生至多可以拥有一个专业推荐课表。
(二)一个专业推荐课表至多只能被一名教务员维护,一名教务员至少要维护一个专业推荐课表。
12) 老师任课表
Ø 类整体说明:老师各学期的上课课表。
Ø 属性说明:账号、课程编号
属性名 |
属性含义 |
数据类型 |
可见性 |
多重性 |
账号 |
教师个人账号 |
TINYINT(14) |
private |
-1 |
课程编号 |
课程唯一的编号 |
varchar(15) |
private |
-1 |
Ø 操作说明:
(一)查询老师任课课表
Ø 关联描述(多重性关系):一个老师可以查看一份对应的任课表,一份任课表至多被一名老师查看。