选课系统
|
1. 一、绪论
2. 二、系统分析
(一)用例图、分角色功能图
用例图



分角色功能图


(二)数据需求—数据流图
3. 三、系统设计
3.1.1. (一)概念结构设计-ER图系统功能模块图
er 图
学生

教师

课程

选课表

管理员表

整体

(二)系统功能模块图

3.1.1.1. 用户注册流程

3.1.1.2. 选课流程

成绩管理流程

课程管理流程图

3.1.2. (三)逻辑结构设计-关系模式-表
- 学生表(Student)
| 字段名 | 数据类型 | 长度 | 约束条件 | 说明 |
|---|---|---|---|---|
| 学生编号 | INT | - | PRIMARY KEY, AUTO_INCREMENT | 主键 |
| 姓名 | VARCHAR | 100 | NOT NULL | 学生姓名 |
| 邮箱 | VARCHAR | 100 | UNIQUE, NOT NULL | 登录账号 |
| 电话 | VARCHAR | 15 | - | 联系方式 |
| 专业 | VARCHAR | 50 | - | 所属专业 |
| 密码 | VARCHAR | 255 | NOT NULL | 登录密码 |
- 教师表(Teacher)
| 字段名 | 数据类型 | 长度 | 约束条件 | 说明 |
|---|---|---|---|---|
| 教师编号 | INT | - | PRIMARY KEY, AUTO_INCREMENT | 主键 |
| 姓名 | VARCHAR | 100 | NOT NULL | 教师姓名 |
| 邮箱 | VARCHAR | 100 | UNIQUE, NOT NULL | 登录账号 |
| 所属院系 | VARCHAR | 100 | - | 院系信息 |
| 密码 | VARCHAR | 255 | NOT NULL | 登录密码 |
- 课程表(Course)
| 字段名 | 数据类型 | 长度 | 约束条件 | 说明 |
|---|---|---|---|---|
| 课程编号 | INT | - | PRIMARY KEY, AUTO_INCREMENT | 主键 |
| 课程名称 | VARCHAR | 100 | NOT NULL | 课程名称 |
| 课程代码 | VARCHAR | 10 | UNIQUE, NOT NULL | 唯一代码 |
| 学分 | INT | - | - | 课程学分 |
| 最大人数 | INT | - | DEFAULT 50 | 课程容量 |
| 当前人数 | INT | - | DEFAULT 0 | 已选人数 |
| 教师编号 | INT | - | FOREIGN KEY | 授课教师 |
- 选课表(Enrollment)
| 字段名 | 数据类型 | 长度 | 约束条件 | 说明 |
|---|---|---|---|---|
| 选课编号 | INT | - | PRIMARY KEY, AUTO_INCREMENT | 主键 |
| 学生编号 | INT | - | FOREIGN KEY | 选课学生 |
| 课程编号 | INT | - | FOREIGN KEY | 所选课程 |
| 选课时间 | TIMESTAMP | - | DEFAULT CURRENT_TIMESTAMP | 记录时间 |
| 成绩 | FLOAT | - | DEFAULT NULL | 课程成绩 |
- 管理员表(Admin)
| 字段名 | 数据类型 | 长度 | 约束条件 | 说明 |
|---|---|---|---|---|
| 管理员编号 | INT | - | PRIMARY KEY, AUTO_INCREMENT | 主键 |
| 姓名 | VARCHAR | 100 | NOT NULL | 管理员姓名 |
| 邮箱 | VARCHAR | 100 | UNIQUE, NOT NULL | 登录账号 |
| 密码 | VARCHAR | 255 | NOT NULL | 登录密码 |
表关系说明:
- 一个学生可以选择多门课程(学生表和课程表是多对多关系)
- 一个教师可以教授多门课程(教师表和课程表是一对多关系)
- 选课表作为学生表和课程表的中间表,记录选课信息
约束说明:
- 所有编号字段都设置为自动递增的主键
- 邮箱字段作为登录账号,需要唯一性约束
- 选课表通过外键关联学生表和课程表
- 课程表通过外键关联教师表
- 关键信息(如姓名、邮箱、密码等)设置非空约束
3.2. 四、系统实现(程序流程图,实现的界面)数据库连接
代码下载链接 点击这个

代码下载链接