Java实现考研专业课程管理系统 JAVA+Vue+SpringBoot+MySQL

news/2024/7/10 22:06:35 标签: java, 考研, vue.js, spring boot, 开源, mysql

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 数据中心模块
    • 2.2 考研高校模块
    • 2.3 高校教师管理模块
    • 2.4 考研专业模块
    • 2.5 考研政策模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
  • 四、系统展示
  • 五、核心代码
  • 六、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL 的考研专业课程管理系统,包含了考研课程、考研专业、考研注册、考研院校和高校教师模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,考研专业课程管理系统基于角色的访问控制,给学生、高校管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

为了能让开发出来的考研专业课程管理系统真正投入使用,所以需要对系统的需求加以分析设计,以下分别对功能性需求和可行性两方面分别对考研专业课程管理系统进行需求分析。

本文设计的考研专业课程管理系统的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了考研高校模块、高校教师管理模块、考研专业模块、考研政策模块这四大模块,用于存放系统的核心业务逻辑。

在这里插入图片描述

2.1 数据中心模块

数据中心模块包含了对考研专业课程管理系统的基础模块,比如管理谁可以登录这套系统,记录这些人登录系统做了什么,不同的人拥有不同权限的管理。

2.2 考研高校模块

考研高校模块用于对考研高校的数据进行管理,其中包括高校名称、所属省份、介绍、办学性质、高校等级、师资力量、学科建设、学术科研等,可以通过此模块对考研高校数据进行添加、编辑更新、删除、查询操作。

2.3 高校教师管理模块

高校教师管理模块是对高校的教师信息进行管理,高校教师是高校教学的参与者,高校教师字段包括教师姓名、性别、教师介绍、联系电话、学历、毕业院校、所属高校、备注等,管理员可以新增高校教师的数据,学生可以查询管理员发布的高校教师信息。

2.4 考研专业模块

考研专业模块是为了管理各大高校开设的考研专业,有了考研高校后后,学生可以查询每个高校的考研专业,其中考研专业的字段包括专业名称、专业介绍、就业去向、所属高校ID、所属高校、创建人、创建时间、备注等,管理员可以增加、删除、编辑和条件查询考研专业,学生可以查询指定高校开设的考研专业。

2.5 考研政策模块

考研政策模块是维护关于考研的相关政策,如奖学金补助、考研政策图解等。考研政策模块是为了帮助考研学生备考,避免错过各类优待政策,其中考研政策包括政策名称、政策内容、适用群体、状态、排序值、发布日期、创建人、创建时间等,管理员可以增加、删除、编辑和条件查询考研政策内容,学生可以按需查询适配的考研政策。


三、系统设计

3.1 用例设计

UML是面向对象的图形化建模语言,具有表示容易,定义友好,适用范畴广泛,功能强大。用例图是用例模型的一种,需求分析人员可采用用例图表示用户操作行为。考研专业课程管理系统的用例图设计主要包括学生用户用例图设计、考研管理员用例设计。

在这里插入图片描述

3.2 数据库设计

3.2.1 考研高校表

在这里插入图片描述

3.2.2 高校教师表

在这里插入图片描述

3.2.3 考研专业表

在这里插入图片描述

3.2.4 考研政策表

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询考研课程

java">@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询考研课程")
public Result<IPage<PostgraduateCurriculum>> getByPage(@ModelAttribute PostgraduateCurriculum postgraduateCurriculum ,@ModelAttribute PageVo page){
    QueryWrapper<PostgraduateCurriculum> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(postgraduateCurriculum.getTitle())) {
        qw.like("title",postgraduateCurriculum.getTitle());
    }
    if(!ZwzNullUtils.isNull(postgraduateCurriculum.getLevel())) {
        qw.eq("level",postgraduateCurriculum.getLevel());
    }
    if(!ZwzNullUtils.isNull(postgraduateCurriculum.getMajorId())) {
        qw.eq("major_id",postgraduateCurriculum.getMajorId());
    }
    IPage<PostgraduateCurriculum> data = iPostgraduateCurriculumService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<PostgraduateCurriculum>>().setData(data);
}

5.2 新增考研专业

java">@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增考研专业")
public Result<PostgraduateMajor> insert(PostgraduateMajor postgraduateMajor){
    PostgraduateSchool school = iPostgraduateSchoolService.getById(postgraduateMajor.getSchoolId());
    if(school == null) {
        return ResultUtil.error("考研院校不存在");
    }
    postgraduateMajor.setSchoolName(school.getTitle());
    iPostgraduateMajorService.saveOrUpdate(postgraduateMajor);
    return new ResultUtil<PostgraduateMajor>().setData(postgraduateMajor);
}

5.3 新增考研政策

java">@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增考研政策")
public Result<PostgraduatePolicy> insert(PostgraduatePolicy postgraduatePolicy){
    if(Objects.equals(0,postgraduatePolicy.getSortOrder().compareTo(BigDecimal.ZERO))) {
        postgraduatePolicy.setSortOrder(BigDecimal.valueOf(iPostgraduatePolicyService.count() + 1L));
    }
    postgraduatePolicy.setReleaseDate(DateUtil.today());
    iPostgraduatePolicyService.saveOrUpdate(postgraduatePolicy);
    return new ResultUtil<PostgraduatePolicy>().setData(postgraduatePolicy);
}

5.4 查询考研学校

java">@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询考研学校")
public Result<IPage<PostgraduateSchool>> getByPage(@ModelAttribute PostgraduateSchool postgraduateSchool ,@ModelAttribute PageVo page){
    QueryWrapper<PostgraduateSchool> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(postgraduateSchool.getTitle())) {
        qw.like("title",postgraduateSchool.getTitle());
    }
    if(!ZwzNullUtils.isNull(postgraduateSchool.getSchoolLevel())) {
        qw.eq("school_level",postgraduateSchool.getSchoolLevel());
    }
    if(!ZwzNullUtils.isNull(postgraduateSchool.getProvince())) {
        qw.eq("province",postgraduateSchool.getProvince());
    }
    IPage<PostgraduateSchool> data = iPostgraduateSchoolService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<PostgraduateSchool>>().setData(data);
}

5.5 新增高校教师

java">@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增高校教师")
public Result<PostgraduateTeacher> insert(PostgraduateTeacher postgraduateTeacher){
    PostgraduateSchool school = iPostgraduateSchoolService.getById(postgraduateTeacher.getSchoolId());
    if(school == null) {
        return ResultUtil.error("高校不存在");
    }
    postgraduateTeacher.setSchoolName(school.getTitle());
    iPostgraduateTeacherService.saveOrUpdate(postgraduateTeacher);
    return new ResultUtil<PostgraduateTeacher>().setData(postgraduateTeacher);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述


http://www.niftyadmin.cn/n/5343341.html

相关文章

google-webrtc 原理

Google WebRtc Android 使用详解(包括客户端和服务端代码) - 知乎 (zhihu.com) 【记】Android使用WebRTC未释放资源导致的内存泄露 - 掘金 (juejin.cn)

【Linux】文件周边001之系统文件IO

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.C语言文件IO 1.1…

c++之说_9_5|自定义类型 struct 构造函数

struct 很重要的东西之一 构造函数 struct A { public&#xff1a; A&#xff08;&#xff09;{}&#xff1b;//无参构造函数 你不写 任何构造函数时 也是编译器默认会添加一个无参构造 A&#xff08;int a&#xff09;{}&#xff1b;//有参构造函数 } 构造函数&…

javascript 涉及float的精确加减乘除取余运算

js 中使用 decimal.js 进行不丢失精度的小数计算 npm install decimal.js Decimal.js 支持以下运算符的重载&#xff1a; &#xff1a;加法 -&#xff1a;减法 *&#xff1a;乘法 /&#xff1a;除法 %&#xff1a;取模运算 **&#xff1a;指数运算 &#xff1a;自增运算 --&…

idea创建公用依赖包项目

创建parent项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

用什么可以把文档变成二维码?文件通过二维码打开的方法

随着二维码技术的广泛应用&#xff0c;现在很多的内容都可以用二维码的形式来传递分享&#xff0c;比如文件就是很多企业、学校经常制作二维码使用的一种类型。想要快速将文件生成二维码&#xff0c;那么很多的二维码生成器都可以使用&#xff0c;为了让大家能够快速学会文件二…

活动回顾丨云原生技术实践营上海站「云原生 AI 大数据」专场(附 PPT)

AI 势不可挡&#xff0c;“智算”赋能未来。2024 年 1 月 5 日&#xff0c;云原生技术实践营「云原生 AI &大数据」专场在上海落幕。活动聚焦容器、可观测、微服务产品技术领域&#xff0c;以云原生 AI 工程化落地为主要方向&#xff0c;希望帮助企业和开发者更快、更高效地…

在Python中,星号(*)的意思

参数打包 当定义一个函数时&#xff0c;如果在一个参数前面放置一个星号&#xff08;*&#xff09;&#xff0c;它表示这个参数将接收任意数量的位置参数&#xff0c;并将它们作为一个元组打包。这在函数需要处理不确定数量的位置参数时非常有用。 def example_function(*arg…