# 一、需求分析
系统需要包括学生基本信息维护,学生选课,学生退课, 学生成绩查看, 生成可视化课表; 教师基本信息维护, 教师开课, 教师停开课程, 教师查看所开课程, 教师查看课程所含选课学生, 教师录入学生成绩功能。
系统应能支持 500 总用户量, 500 人在线使用,页面最长响应时间为 0.3 秒。
# 二、概要设计
分为用户管理、课程管理、选课进程管理、系统用户分类模块。
用户分为管理员、教师、学生三种角色。
功能简述如下:
- 用户管理模块:
新用户的注册, 用户的登录, 用户信息的更新维护, 用户身份的判别
- 课程管理模块:
课程与用户之间的对应关系, 课程信息的获取, 课程信息的修改.
- 选课进程管理模块:
管理员控制选课系统的开放与关闭
- 系统用户分类模块:
用户身份不同访问权限不同, 可访问的资源不同
## 2.1 系统管理
系统预先设定一个管理员账户, 账号为”admin”, 密码为 “123456”. 管理员登陆后可修改账号的密码. 管理员用户可以开启特定学期的选课功能, 也可以在一定的时间关闭选课系统. 同时, 管理员既可以以教师身份登录系统, 使用教师用户所拥有的全部功能, 又可以以学生身份登录, 使用学生用户所拥有的全部功能。
只有在管理原开启某一学期的选课功能后,教师用户才能开设这一学期的课程,学生用户才能在选课入口页面进入选课界面。
## 2.2 用户信息维护
系统管理员, 教师, 学生都属于用户. 用户信息包括真实姓名, 用户名, 性别, 大学, 电话号码, 登陆密码, 专业, 用户类型. 以上信息均为用户注册时所必须提供的. 用户名是一个用户的唯一标识, 用户名注册后不可再更改, 但其他信息可在用户登录后进行相关的修改更新。
## 2.3 课程设置
每一门课程包括以下信息: 课程序号(不同大学有不同的课程序号命名含义), 课程名, 开课学期, 开课教师, 开课时间, 开课地点, 学分, 学时, 课程性质, 所面向的专业, 选课的学生, 课程容量, 当前选课人数。
教师用户开设课程时也必须提供以上信息, 其中开课学期由系统管理员开启选课功能时提供, 教师用户不能自行开课学期。
教师开设课程后, 课程会在学生选课查看课程的界面搜索到此课程。
## 2.4 学生选课
系统管理员开启选课功能后, 学生用户可以进入到一个选课界面. 在此界面下学生可以查看当前学期所有开设的课程, 并且可以根据课程序号, 授课教师, 开课时间, 课程性质进行课程的查询. 当学生选择一门课程时, 此课程的相关信息会加入到学生已经选择的课程中, 并在学生的课表上相应的时间格子中添加此门课程. 当学生选择的课程的上课时间与某门已选课程冲突时, 会给予与”****”课程时间冲突的提示; 当学生选择的课程的剩余容量为 0 时, 也会给出相关的提示; 当学生重复选择一门已经选择的课程时, 给出提示。
## 2.5 成绩录入
教师可在一个页面下查看自己开设的所有课程。每个课程可以有相应的操作, 使得教师可以查看此门课程当前所有的选课学生的详细信息. 并可以在此界面录入学生的分数。当选课功能正在开放时, 表示学生尚未选择完毕课程, 此时不允许教师录入成绩.。只有在系统管理员关闭选课功能后, 教师才可以录入学生的成绩信息.。录入信息后, 会生成一个饼状图, 来统计各个分段的学生人数, 方便教师查看本门课程选课学生的成绩分布。
## 2.6 学生成绩查看
学生直接进入某个页面即可查看自己课程的成绩情况, 学生可以获取到的信息有:
课程序号, 课程名, 授课学期, 授课教师, 课程学分, 课程性质, 自己的得分, 自己的排名, 此门课程所有学生的最高分和最低分. 特意加入满级最高最低分, 以便于学生更加客观地评价和了解自己的学习情况. 此处显示的课程仅为在教师已经录入学生成绩的课程, 即所有教师尚未录入成绩的课程是不会显示的。
# 三、系统架构
- 系统采用前后端分离的架构,前端使用 Vue3 + Element Plus + axios + echarts 框架,使用 npm run build 打包。
- 后端使用 Spring Boot+ JPA + Spring Security 框架。
- 目标用户环境为 Edge, Google 浏览器版本以上,建议分辨率 1080p。
# 四、数据设计
## 4.1 用户表 user
包括以下字段:user_id、real_name、user_name、gender、university、phone, password, major, person_id, user_type_id, last_login_time, login_count, desc, score
- 主键为 user_id。
- user_name 字段有唯一约束。
- gender、real_name、user_name、university、phone、password、major 字段有非空约束。
- user_type_id 字段有外键约束,参照 user_type 表 id 字段。
其中 desc 字段为用户的自我介绍,score 字段是为了前后端传递数据时 JSON 对象的转化。Score 字段实际不会存储一个固定值,只是为了前后端传递数据时及时获取用户某门课程的分数。
## 4.2 课程表 course
包括以下字段:id、name、term、teacher、time、place、credit、classhour、property、major、students、capacity、currentnumber、sequence、remain、userid、score、max_score、min_score rank
- 主键为 id
- Id 字段有唯一约束。
- Name、term、teacher、time、place、credit、classhour、property、capacity、currentnumber 字段有非空约束。
- students字段中存储的为以“;”分割的学生用户的用户名。
## 4.3 课表表 stoc
包括以下字段 id、user_id、term、courses。
- 主键为 id
- id 字段有唯一约束。
- user_id、term 字段有非空约束
此表的 id 为自动生成的自增主键,user_id 对应于用户表中的 user_name 字段,term 标识学期号,courses 标识本学期与该用户有关的课程——若用户为学生,则此表的一项记录表示该学生在哪个学期选了哪些课程;若用户为教师,则此表的一项纪录表示该教师在该学期开设了哪些课程。courses 字段中存储的为以“;”分割的课程 id。
## 4.4 选课学期控制表 sys
包括以下字段 term、state。
- term 为主键
- term、state 字段有非空约束。
此表是系统管理用来开放和关闭选课学期、标识某一选课学期是否已经结束的表。
该表的每一项记录中,若 state 为 1,表示 term 对应的选课学期已经结束——即 term 学期的选课阶段已经结束;若 state 为 0 则表示尚未选课结束。此表的所有记录中,只能有一项记录的 state 为 0,其它记录的 state 均为 1。因为特定的时间下,正在开放的选课学期只能存在一个。
## 4.5 用户类型表 user_type
包括以下字段 id,name。
- id 为主键
- id、name 字段有非空约束。
此表的内容固定,记录的数目也固定。即:此表一共只有三项记录。id 为 0,对应的 name 为“USER_ADMIN”,表示管理员用户;id 为 1,对应的 name 为“USER_USER”,表示学生用户;id 为 2,对应的 name 为“USER_TEACHER”,表示教师用户。
其中的 id 字段对应于用户表的 user_type 字段。
## 4.6 用户信息 person
包括以下字段:person_id,per_name,per_num,per_type,per_card,phone,email
person_id 为主键
此表其实并没有真正派上用场。编写此表的初衷本来是将其作为 user 表的外键,将 user 的详细信息放在该表中的,但是在后续编写代码的过程中,采用了直接将 user 的详细信息放
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java(Spring Boot)+Vue+Mysql实现(Web)学生选课管理系统【100011948】
共125个文件
java:40个
vue:21个
xml:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 147 浏览量
2023-04-19
14:39:17
上传
评论 2
收藏 8.28MB ZIP 举报
温馨提示
本系统包括学生基本信息维护,学生选课,学生退课, 学生成绩查看, 生成可视化课表; 教师基本信息维护, 教师开课, 教师停开课程, 教师查看所开课程, 教师查看课程所含选课学生, 教师录入学生成绩功能 。 系统采用前后端分离的架构,前端使用 Vue3 + Element Plus + axios + echarts 框架,使用 npm run build 打包。 后端使用 Spring Boot+ JPA + Spring Security 框架。 目标用户环境为 Edge, Google 浏览器版本以上,建议分辨率 1080p。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java(Spring Boot)+Vue+Mysql实现(Web)学生选课管理系统【100011948】 (125个子文件)
chunk-vendors.4cb5fce1.css 316KB
app.fca21b6d.css 8KB
about.eefec7a8.css 158B
chunk-920bbfc6.2ac3b50b.css 138B
实验报告.docx 4.31MB
index.html 3KB
index.html 3KB
favicon.ico 4KB
favicon.ico 4KB
CourseController.java 15KB
AuthController.java 7KB
User.java 6KB
Course.java 5KB
TestController.java 4KB
CommonMethod.java 3KB
WebSecurityConfig.java 3KB
DataRequest.java 3KB
AuthTokenFilter.java 2KB
UserDetailsImpl.java 2KB
JwtUtils.java 2KB
SignupRequest.java 2KB
Person.java 2KB
CourseSaveRequest.java 1KB
JwtResponse.java 1KB
UserDetailsServiceImpl.java 1022B
Stoc.java 1020B
UserUpdateRequest.java 942B
AuthEntryPointJwt.java 934B
LoginRequest.java 714B
UserType.java 677B
Sys.java 644B
SpringHttpSessionConfig.java 642B
CourseRespository.java 627B
UserRepository.java 510B
DataResponse.java 510B
CourseResponse.java 506B
RedirController.java 505B
UserResponse.java 495B
ScoreSaveRequest.java 452B
OsysRequest.java 447B
StocRepository.java 426B
SysInfo.java 416B
TermRequest.java 379B
UserTypeRepository.java 376B
SpringBootSecurityJwtApplication.java 355B
MessageResponse.java 340B
PersonRepository.java 226B
UserRequest.java 216B
EUserType.java 113B
chunk-vendors.4b749df8.js 2.72MB
app.bf3eba46.js 49KB
chunk-2d0cbb05.92ed8a6f.js 10KB
about.2720e140.js 6KB
genServ.js 5KB
index.js 2KB
createStore.js 2KB
chunk-920bbfc6.38a8d502.js 2KB
userServ.js 719B
main.js 678B
vue.config.js 287B
babel.config.js 73B
package-lock.json 489KB
package.json 843B
LICENSE 1KB
chunk-vendors.4b749df8.js.map 11.26MB
app.bf3eba46.js.map 132KB
chunk-2d0cbb05.92ed8a6f.js.map 21KB
about.2720e140.js.map 11KB
chunk-920bbfc6.38a8d502.js.map 4KB
README.md 18KB
README.md 490B
performance_schema.kIw0nw.meta 76B
information_schema.FNRwLQ.meta 76B
mysql.osA4Bg.meta 63B
sys.zb4BAA.meta 61B
logo.png 7KB
org.eclipse.jdt.core.prefs 543B
org.eclipse.core.resources.prefs 120B
org.eclipse.m2e.core.prefs 86B
org.eclipse.jdt.apt.core.prefs 67B
application.properties 647B
README 669B
init.sql 5KB
init.sql 1024B
element-icons.abe71f7d.ttf 49KB
banner.txt 1KB
CourseChose.vue 12KB
Register.vue 10KB
AlreadyCourse.vue 9KB
CourseTable.vue 8KB
OpenCourse.vue 8KB
Login.vue 6KB
Sidebar.vue 4KB
Edit.vue 4KB
card.vue 4KB
Score.vue 3KB
ChangePassword.vue 3KB
DashSample.vue 2KB
buttongroup.vue 2KB
MySideBar.vue 2KB
共 125 条
- 1
- 2
资源评论
- own9262023-05-27资源内容详细,总结地很全面,与描述的内容一致,对我启发很大,学习了。
- 2301_784517462023-11-07资源内容总结的很到位,内容详实,很受用,学到了~
神仙别闹
- 粉丝: 3861
- 资源: 7472
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功