01选课管理系统介绍

Views: 0

跟着b站【免费学习】最新版学生选课管理系统,基于Springboot3+vue3的选课管理系统,可用于毕业设计,课程设计,练手学习先模仿,等会了就可以自己写了,首先先有了脚手架,之后这个做完可以试试去写脚手架,然后自己能不能开发,就这么办,加油!!!

逻辑

学生能选课查分,老师能管课,管理员是超级用户

前端(Vue3部分):

用户界面:

登录页:学生/老师/管理员用不同账号登录
首页:登录后根据角色显示不同菜单(学生只能看选课,老师能管理课程,管理员啥都能管)
各种表单:带验证的输入框、文件上传(比如头像)

核心操作:

选课时:前端会先检查”这门课是否已满”、”我是否已选过”
个人信息页:能改密码、上传证件照
所有页面:右上角都有个退出按钮

技术亮点:

用了Element Plus组件库(那些好看的弹窗、表格都是现成的)
路由守卫控制权限(比如学生偷偷访问管理员页面会被踢回登录页)

后端(SpringBoot部分):

三大角色处理:

学生:选课、查成绩单
老师:开课、看自己课程的学生名单
管理员:能删改所有数据

核心业务:

选课逻辑最复杂:

if(课程已满) 抛异常("别选了,满了");
if(已选过) 抛异常("不能重复选");
记录选课信息;
课程人数+1;
学生学分+=课程学分;

文件上传:学生头像存到服务器,返回访问链接

数据库:

主要表:用户表、课程表、选课记录表
关系:学生和课程是多对多(通过选课表关联)

前后端配合:

登录流程:

前端发账号密码 → 后端验证 → 返回token
后续所有请求都带着这个token

典型交互例子(学生选课):

典型交互例子

错误处理:

后端抛异常 → 前端捕获后显示红色弹窗提示

系统技术栈

后端部分 (SpringBoot)

技术栈:

Java 17 + SpringBoot 3.3.1
MyBatis + PageHelper 分页
MySQL 数据库

核心功能:

选课业务逻辑(ChoiceService.java)
用户管理(管理员/教师/学生)
课程管理、学院管理
文件上传下载(FileController.java)
全局异常处理(GlobalExceptionHandler.java)

前端部分 (Vue3)

技术栈:

Vue 3.3.4 + Vite 6.3.5
Element Plus UI 组件库
Axios 网络请求

核心功能:

登录/注册界面
管理员/教师/学生三种角色视图
选课操作、个人信息管理
响应式布局

数据库设计

包含主要表:

用户表(admin/teacher/student
课程表(course
选课记录表(choice
学院表(college

专业表(speciality)

公告信息表(notice)

系统功能描述

功能模块

  1. 管理员信息:用户名、密码、姓名、头像、角色
  2. 教师信息:用户名、密码、姓名、性别、职称、所属专业、角色
  3. 学生信息:用户名、密码、姓名、性别、学号、总学分、所属学院、角色
  4. 学院信息:学院名称、学院介绍、最低学分
  5. 专业信息:专业名称、系名、所属学院
  6. 课程信息:课程名称、介绍、学分、所属学院、上课教师、开班人数、上课时段、上课地点、已选人数。如果某个课程被选过,那么该课程不允许被删除。
  7. 选课信息:课程名称、授课教师、选课学生。选课后可以取消选课,学生对应的学分也会跟着自动计算,课程已选人数也会自动计算。
  8. 系统公告:管理员维护,教师和学生查看
  9. 登录注册、修改密码、个人信息管理、退出登录

系统角色

  1. 管理员:管理员可以看到以上所有模块,管理所有模块信息。
  2. 教师:教师可以看到学院信息、专业信息,但只能查看;可以查看自己的课程信息;可以查看自己课程的选课信息
  3. 学生:学生可以查看学院、专业信息;可以对课程进行选课,可以在选课信息模块对已选的课程进行取消。

导入脚手架

将直接在idea中打开

springboot是后端代码

SpringbootApplication.java 项目启动类

application.yml 项目配置文件

vue是前端代码

在终端进入vue 输入nmp i下载依赖包

遇到了8个安全漏洞(4个中等,4个高危)。这是Node.js项目中常见的情况,通常是由于依赖包中的已知漏洞导致的。

解决方案

  • 首先尝试自动修复
npm audit fix
  • 如果仍有漏洞未修复,可以尝试:
npm audit fix --force
  • 最后手动修复

    所有依赖包已经是最新且安全的版本,没有发现任何漏洞(found 0 vulnerabilities

    保持定期运行 npm audit 检查新漏洞

    果未来需要升级,可以运行:npm update

    package.json 文件中运行dev

    项目就可以运行起来了

    新建一个数据库

    image-20250508215644864

    pop.xml

    包配置文件

    <properties>
      <!-- jdk版本-->
    	<java.version>17</java.version>
    </properties>
    
    

    application.yml

    server:
      port: 9090
      #端口号
    
    # 数据库配置
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: root      #数据库用户名
        password: 123456    #数据库密码
          # ?号前面是数据库名称,后面是数据库的编码格式
        url: jdbc:mysql://localhost:3306/xsxk?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
      servlet:
        multipart:
          max-file-size: 100MB
          max-request-size: 100MB
          
          
    # 文件上传的前缀url,注意端口号一致
    fileBaseUrl: http://localhost:9090

    .env.development

    官方文档

    hutool官网https://doc.hutool.cn/pages/index/
    Vue官网https://cn.vuejs.org/
    Element-Plushttps://element-plus.org/

    版权声明

    本网站名称:学海拾茜
    本文链接:https://www.61lyf.top/01%e9%80%89%e8%af%be%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e4%bb%8b%e7%bb%8d/
    本网站的文章部分内容可能来源于网络,仅供学习与参考,如有侵权,请联系站长进行核实删除。
    转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处并附带原文链接!!!
    站长邮箱:cyg1900@outlook.com 或studygod825@qq.com ,如不方便留言可邮件联系。
    暂无评论

    发送评论 编辑评论

    
    				
    上一篇
    下一篇