1. 系统模块设计
1.1 学生模块
课表查询:学生可以查看自己的课程安排,包括课程名称、上课时间、地点等。
成绩查询:学生可以查看自己已选课程的成绩。
选课:学生可以浏览可选课程列表,进行选课操作,查看选课结果。
1.2 教师模块
课表管理:教师可以查看自己负责的课程安排,包括课程名称、上课时间、地点等。
成绩管理:教师可以录入、修改和发布自己负责班级的学生成绩。
1.3 管理员模块
排课系统:管理员可以安排课程,包括设置课程名称、选择教师、分配教室、安排上课时间等。
课程管理:管理员可以添加、修改或删除课程信息。
教师管理:管理员可以管理教师信息,包括添加新教师、修改教师信息等。
教室管理:管理员可以管理教室信息,包括添加新教室、修改教室信息等。
用户管理:管理员可以管理用户账户,包括学生、教师账户的创建、权限分配等。
系统维护:管理员可以进行系统设置、数据备份、日志查看等维护操作。
1.4 统计分析模块
成绩统计分析:可以统计分析每门课的成绩情况、教室使用情况、统计每个学生的成绩情况。
成绩异常提醒:成绩低于设定的阈值时,系统会发出预警提醒。
2. 技术栈
前端:Vue.js + Element UI(用于构建用户界面)
后端:Spring Boot + MyBatis(用于处理业务逻辑和数据持久化)
数据库:MySQL(存储学生、教师、课程、成绩等信息)
算法:排课算法(如贪心算法等)
3. 数据库设计
3.1 学生表(Student)
id:学生ID(主键)
name:学生姓名
username:用户名
password:密码
class_id:班级ID(外键)
3.2 教师表(Teacher)
id:教师ID(主键)
name:教师姓名
username:用户名
password:密码
3.3 课程表(Course)
id:课程ID(主键)
name:课程名称
teacher_id:教师ID(外键)
classroom_id:教室ID(外键)
time:上课时间
3.4 成绩表(Grade)
id:成绩ID(主键)
student_id:学生ID(外键)
course_id:课程ID(外键)
score:成绩
3.5 教室表(Classroom)
id:教室ID(主键)
name:教室名称
capacity:教室容量
3.6 用户表(User)
id:用户ID(主键)
username:用户名
password:密码
role:角色(学生、教师、管理员)
4. 后端API设计
4.1 学生模块
获取课表:GET /api/student/timetable
获取成绩:GET /api/student/grades
选课:POST /api/student/select-course
4.2 教师模块
获取课表:GET /api/teacher/timetable
录入成绩:POST /api/teacher/grade
修改成绩:PUT /api/teacher/grade
4.3 管理员模块
排课:POST /api/admin/schedule
添加课程:POST /api/admin/course
管理教师:POST /api/admin/teacher
管理教室:POST /api/admin/classroom
管理用户:POST /api/admin/user
4.4 统计分析模块
成绩统计:GET /api/analysis/grades
成绩预警:GET /api/analysis/grade-alert
5. 前端页面设计
5.1 学生页面
课表查询页面:展示学生的课程安排。
成绩查询页面:展示学生的成绩。
选课页面:展示可选课程列表,学生可以进行选课操作。
5.2 教师页面
课表管理页面:展示教师的课程安排。
成绩管理页面:教师可以录入、修改和发布成绩。
5.3 管理员页面
排课页面:管理员可以安排课程。
课程管理页面:管理员可以添加、修改或删除课程信息。
教师管理页面:管理员可以管理教师信息。
教室管理页面:管理员可以管理教室信息。
用户管理页面:管理员可以管理用户账户。
5.4 统计分析页面
成绩统计页面:展示每门课的成绩情况、教室使用情况等。
成绩预警页面:展示成绩异常的学生名单。css
html
java
javascript
mysql
spring
vue
vue.js
First Time Repository
Vue
Languages:
CSS: 0.7KB
HTML: 0.3KB
Java: 102.0KB
JavaScript: 15.9KB
Vue: 158.8KB
Created: 1/6/2025
Updated: 1/7/2025