一.需求概述
该需求围绕高校教学管理展开,旨在构建一个功能完备的系统。功能需求方面,基础信息管理涵盖系与专业、教师、教室信息的全流程管理,保障学校教学基础架构的有序维护;课程管理从课程信息维护、课程组归类到专业培养计划制定,实现课程体系的系统化规划;排课管理综合课程、教师、教室及时间等要素生成结果并支持手动调整;选课管理方便学生选课与成绩录入;通过用户权限管理,为管理员、教师、学生分配差异化权限,保障系统各角色操作的规范性与安全性,从而满足高校教学活动的多样化管理需求。
二.功能及其权限
1.基础信息管理
系与专业管理:支持系信息(系编号、系名称)录入、修改、删除,专业信息(专业编号、专业名称、所属系编号、培养计划 ID 等)的增删改查,方便维护学校专业设置架构。
教师信息管理:对教师工号、姓名、性别、所属专业编号、职称等信息进行管理,涵盖入职新增、离职删除、信息变更等操作。
教室信息管理:实现教室编号、名称、容量、设施类型等信息的管理,便于掌握教学场地资源情况。
2.课程管理
1.课程信息维护:可对课程编号、课程名称、学分、类型、上课类型、所需教室类型、开设学期等进行设置和调整。
2.课程组管理:管理课程组编号、名称,关联具体课程编号,方便对相关课程进行归类管理。
3.培养计划管理:依据专业设置培养计划(培养计划 ID、专业编号、学期、课程编号、课程类型等) ,规划专业课程体系。
3.排课管理依据课程、教师、教室等资源,综合考虑上课时间等因素,生成排课结果(排课 ID、课程编号、教师工号、教室编号、上课时间),并支持手动微调。
4.选课管理学生可根据学期开放课程进行选课操作,系统记录选课信息(学号、课程编号、选课学期),并在学期结束后录入成绩。
5.用户权限管理:不同用户角色(如管理员、教师、学生)设置不同权限,管理员拥有最高权限,可进行全系统操作;教师可查看和管理与授课相关信息;学生只能查看个人信息、选课及成绩等。
三.用户角色
学生:系统主要使用对象之一。可进行选课操作,获取所选课程成绩 ,并管理自身基本信息(如姓名、性别、入学年份等)。通过选课参与教学活动,其操作关联课程、班级等信息。
教师:参与教学活动。通过排课安排到具体课程,承担授课任务。可管理自身基本信息(如姓名、性别、职称等),其信息与课程、教室等关联,保障教学工作有序开展。
系统管理员:负责系统中各类基础数据管理,如专业、培养计划、课程等信息的创建、修改;配置不同角色(学生、教师等)权限;维护系统正常运行,保障数据准确和各角色操作的有序性
四.所有表及其结构
1.Department 表(系表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | department_id | INT(自增主键) | 系号,唯一标识 |
2 | department_name | VARCHAR(100) | 系名,非空 |
2.Major 表(专业表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | major_id | INT(自增主键) | 专业号,唯一标识 |
2 | major_name | VARCHAR(100) | 专业名,非空 |
3 | department_id | INT | 所属系号,外键关联 Department.department_id |
3.Teacher 表(教师表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | teacher_id | INT(自增主键) | 教师号,唯一标识 |
2 | teacher_name | VARCHAR(100) | 教师名,非空 |
3 | department_id | INT | 所属系号,外键关联 Department.department_id |
4 | idx_teacher_name | INDEX | 索引:按教师名建立索引 |
4.Class 表(班级表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | class_id | INT(自增主键) | 班级号,唯一标识 |
2 | class_size | INT | 班级人数,非空 |
3 | major_id | INT | 所属专业号,外键关联 Major.major_id |
5.Student 表(学生表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | student_id | INT(自增主键) | 学生学号,唯一标识 |
2 | student_name | VARCHAR(100) | 学生姓名,非空 |
3 | class_id | INT | 所属班级号,外键关联 Class.class_id |
6.TeachingVenue 表(教学场地表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | venue_id | INT(自增主键) | 教学场地号,唯一标识 |
2 | capacity | INT | 容纳人数,非空 |
3 | venue_type | ENUM('classroom', 'lab') | 场地类型:教室或机房 / 实验室 |
4 | has_multimedia | BOOLEAN | 是否有多媒体设施:TRUE/FALSE |
7.Course 表(课程表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | course_id | INT(自增主键) | 课程号,唯一标识 |
2 | course_name | VARCHAR(100) | 课程名,非空 |
3 | course_group_id | INT | 所属课程组号,外键关联 CourseGroup.course_group_id |
4 | credit | INT | 学分,非空 |
5 | semester | INT | 开设学期,非空 |
6 | venue_type | ENUM('classroom', 'lab') | 上课地点类型:教室或机房 / 实验室 |
7 | venue_id | INT | 上课地点 ID,外键关联 TeachingVenue.venue_id |
8.training_plan 表(培养计划表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | major_id | INT(主键) | 专业号,外键关联 Major.major_id |
2 | compulsory_course_ids | VARCHAR(255) | 应修课程号(逗号分隔) |
3 | compulsory_course_names | VARCHAR(255) | 应修课程名(逗号分隔) |
4 | required_credits | INT | 应修学分,非空 |
5 | UNIQUE | (major_id) | 唯一约束:专业号唯一 |
9.CourseSchedule 表(课程安排表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | schedule_id | INT(自增主键) | 安排记录 ID,唯一标识 |
2 | course_id | INT | 课程号,外键关联 Course.course_id |
3 | venue_id | INT | 教室号,外键关联 TeachingVenue.venue_id |
4 | teacher_id | INT | 教师号,外键关联 Teacher.teacher_id |
5 | time_slot_id | INT | 时间槽 ID,外键关联 ClassTime.time_slot_id |
6 | semester | VARCHAR(20) | 学期(如 2024-2025-1) |
7 | end_date | DATE | 课程结束日期 |
8 | major_id | INT | 专业号,外键关联 Major.major_id |
9 | UNIQUE KEY | (time_slot_id, venue_id) | 唯一约束:同一时间槽 + 教室唯一 |
10.StudentCourse 表(学生选课表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | sc_id | INT(自增主键) | 选课记录 ID,唯一标识 |
2 | student_id | INT | 学生学号,外键关联 Student.student_id |
3 | course_id | INT | 课程号,外键关联 Course.course_id |
4 | teacher_id | INT | 教师号,外键关联 Teacher.teacher_id |
5 | UNIQUE KEY | (student_id, course_id, teacher_id) | 唯一约束:学生 + 课程 + 教师组合唯一 |
11.Grade 表(成绩表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | student_id | INT | 学生学号,外键关联 Student.student_id |
2 | course_id | INT | 课程号,外键关联 Course.course_id |
3 | teacher_id | INT | 教师号,外键关联 Teacher.teacher_id |
4 | grade | DECIMAL(5, 2) | 成绩(如 85.50),保留 2 位小数 |
5 | is_confirmed | BOOLEAN | 是否确认:默认 FALSE,确认后不可修改 |
6 | grade_date | DATE | 成绩登记日期 |
12.ClassTime 表(上课时间槽表)
编号 | 数据元素名称 | 类型 / 长度 | 取值范围 / 说明 |
1 | time_slot_id | INT(自增主键) | 时间槽 ID,唯一标识 |
2 | 上课日期 | DATE | 具体日期(如 2024-09-01) |
3 | class_period | TINYINT | 节次(1-4),同一日期 + 节次唯一 |
4 | UNIQUE | (上课日期,class_period) | 唯一约束:日期 + 节次组合唯一 |
五.图
1.ER图
2.用例图
学生用例图
教师用例图
管理员用例图
3.数据流图
(1)顶层数据流图
(2)一层数据流图(学生)
(3)一层数据流图(教师)
(4)一层数据流图(管理员)
4.流程图
(1)学生流程
(2)教师流程(2)
(3)管理员流程