【开源】基于Vue.js的高校学生管理系统的设计和实现

在这里插入图片描述
项目编号: S 029 ,文末获取源码。 \color{red}{项目编号:S029,文末获取源码。} 项目编号:S029,文末获取源码。


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 学生管理模块
    • 2.2 学院课程模块
    • 2.3 学生选课模块
    • 2.4 成绩管理模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 学生表
      • 3.2.2 学院课程表
      • 3.2.3 学生选课表
      • 3.2.4 学生成绩表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询课程
    • 5.2 新增学生选课
    • 5.3 编辑学生选课
    • 5.4 课程打分
    • 5.5 安排补考
  • 六、免责说明


一、摘要

1.1 项目介绍

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

1.2 项目录屏

源码下载


二、功能模块

在这里插入图片描述

2.1 学生管理模块

学生管理模块帮助学校或教育机构更好地管理和监督学生的学习情况,提高教育质量,学生管理模块可以记录学生的个人基本信息、学习成绩、考勤状态等信息,有助于将学生数据保存,这些信息对于学校了解学生的情况、与家长沟通以及做出教育决策非常重要。学生管理模块帮助学校创建和发布课程,让学生了解他们的上课时间和内容,也可以使用它来管理考试,例如考试时间表和成绩统计,学生管理模块帮助学校更好地管理课堂,包括课堂内的互动、活动组织和学生评分,学生管理模块可以方便教师和家长之间的沟通,传达学生的在校表现和学习情况,学生管理模块能够帮助学校更好地管理和监督学生,提高教育质量,全面提高学生的成绩,有助于学生管理模式的促进发展。

2.2 学院课程模块

大学课程模块使学生和其他用户更容易找到、选择、管理和学习适合学生的内容,在现代社会,知识的代际变化非常快,有必要通过学习不断提高自己,传统的教育方式越来越难以满足大众化和个性化学习的需要,学院课程模块可以通过互联网技术和数据分析的方法,为学生提供更加多样化和灵活的学习资源和服务,学院课程模块为学生提供更全面、个性化和高效的学习模式,它可以提供好处,帮助您更好地满足时代对知识更新的需求。

2.3 学生选课模块

学生选课模块帮助学校更好地管理和安排教育资源,同时为学生提供更独立、更方便的选择体验,首先,学校可以通过学生选修科目模块实现对选修科目数据的实时监控和统计,掌握每节课的选考情况,对下学期的教学进度做出科学合理的决策。第二,学生可以通过学生选择模块自由选择自己感兴趣的课程,并可以实时查看选择结果,了解自己的选择情况,从而大大提高选修课的效率和准确性。最后,在学生选课模块中,学生可以看到班级介绍、班级评价等信息,从而更好地了解自己选择的班级的内容和特点,更好地规划自己的学习生活。

2.4 成绩管理模块

成绩管理模块帮助学生和教师更好地管理和理解学生的表现,对于学生来说,通过成绩管理模块,他们可以及时跟踪自己的成绩、考试时间表和各科的学习进度,从而全面掌握自己的学习情况,同时成绩管理模块为学生提供个性化的成绩报告,让他们更好地了解自己需要加强的地方。对于教师来说,成绩中心模块帮助他们快速准确地输入和组织学生的成绩信息,并根据学生的表现提供合理的评估和分析,这样教师可以及时发现学生的问题和困难,并根据目的进行指导和指导,有助于提高学生的学习效果和学业水平。此外成绩管理模块为教师提供了统计分析的功能,使他们能够更全面地了解班级或学院的学业情况,并制定更合理的教育计划和策略。


三、系统设计

3.1 用例设计

在这里插入图片描述

3.2 数据库设计

3.2.1 学生表

在这里插入图片描述

3.2.2 学院课程表

在这里插入图片描述

3.2.3 学生选课表

在这里插入图片描述

3.2.4 学生成绩表

在这里插入图片描述


四、系统展示

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


五、核心代码

5.1 查询课程

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询课程")
public Result<IPage<Curriculum>> getByPage(@ModelAttribute Curriculum curriculum ,@ModelAttribute PageVo page){QueryWrapper<Curriculum> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(curriculum.getTitle())) {qw.like("title",curriculum.getTitle());}if(!ZwzNullUtils.isNull(curriculum.getType())) {qw.eq("type",curriculum.getType());}if(!ZwzNullUtils.isNull(curriculum.getLevel())) {qw.eq("level",curriculum.getLevel());}IPage<Curriculum> data = iCurriculumService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Curriculum>>().setData(data);
}

5.2 新增学生选课

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增选课")
public Result<CourseSelection> insert(CourseSelection courseSelection){Curriculum curriculum = iCurriculumService.getById(courseSelection.getCurriculumId());if(curriculum == null) {return ResultUtil.error("课程不存在");}QueryWrapper<CourseSelection> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",courseSelection.getCurriculumId());oldQw.eq("student_id",courseSelection.getStudentId());if(iCourseSelectionService.count(oldQw) > 0L) {return ResultUtil.error("已完成选课");}courseSelection.setTitle(curriculum.getTitle());courseSelection.setType(curriculum.getType());courseSelection.setContent(curriculum.getContent());courseSelection.setKnowledgePoints(curriculum.getKnowledgePoints());courseSelection.setWeeklyHours(curriculum.getWeeklyHours());courseSelection.setLevel(curriculum.getLevel());User student = iUserService.getById(courseSelection.getStudentId());if(student == null) {return ResultUtil.error("学生不存在");}courseSelection.setStudentName(student.getNickname());courseSelection.setGrade(BigDecimal.ZERO);courseSelection.setGradeUser("");courseSelection.setGradeTime("");courseSelection.setMakeupExam("");iCourseSelectionService.saveOrUpdate(courseSelection);return new ResultUtil<CourseSelection>().setData(courseSelection);
}

5.3 编辑学生选课

@RequestMapping(value = "/update", method = RequestMethod.POST)
@ApiOperation(value = "编辑选课")
public Result<CourseSelection> update(CourseSelection courseSelection){Curriculum curriculum = iCurriculumService.getById(courseSelection.getCurriculumId());if(curriculum == null) {return ResultUtil.error("课程不存在");}QueryWrapper<CourseSelection> oldQw = new QueryWrapper<>();oldQw.eq("curriculum_id",courseSelection.getCurriculumId());oldQw.eq("student_id",courseSelection.getStudentId());if(iCourseSelectionService.count(oldQw) > 0L) {return ResultUtil.error("已完成选课");}courseSelection.setTitle(curriculum.getTitle());courseSelection.setType(curriculum.getType());courseSelection.setContent(curriculum.getContent());courseSelection.setKnowledgePoints(curriculum.getKnowledgePoints());courseSelection.setWeeklyHours(curriculum.getWeeklyHours());courseSelection.setLevel(curriculum.getLevel());User student = iUserService.getById(courseSelection.getStudentId());if(student == null) {return ResultUtil.error("学生不存在");}courseSelection.setStudentName(student.getNickname());iCourseSelectionService.saveOrUpdate(courseSelection);return new ResultUtil<CourseSelection>().setData(courseSelection);
}

5.4 课程打分

@RequestMapping(value = "/check", method = RequestMethod.GET)
@ApiOperation(value = "打分")
public Result<CourseSelection> check(@RequestParam String id,@RequestParam BigDecimal grade){CourseSelection cs = iCourseSelectionService.getById(id);if(cs == null) {return ResultUtil.error("选课不存在");}User currUser = securityUtil.getCurrUser();cs.setGrade(grade);cs.setGradeUser(currUser.getNickname());cs.setGradeTime(DateUtil.now());if(grade.compareTo(BigDecimal.valueOf(60)) >= 0) {cs.setMakeupExam("无需补考");} else {cs.setMakeupExam("补考待安排");}iCourseSelectionService.saveOrUpdate(cs);return ResultUtil.success();
}

5.5 安排补考

@RequestMapping(value = "/make", method = RequestMethod.GET)
@ApiOperation(value = "安排补考")
public Result<CourseSelection> make(@RequestParam String id,@RequestParam String makeupExam){CourseSelection cs = iCourseSelectionService.getById(id);if(cs == null) {return ResultUtil.error("选课不存在");}cs.setMakeupExam(makeupExam);iCourseSelectionService.saveOrUpdate(cs);return ResultUtil.success();
}

六、免责说明

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226026.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

deque容器结构学习笔记

1.结构图 2.deque对比vector和list deque双端队列&#xff0c;就像是list和vector的结合 vector&#xff1a; 优点&#xff1a;1.可以随机读取 2. 空间利用率高 缺点&#xff1a;1. 除了尾插尾删&#xff0c;其他插入删除效率比较低 2. 扩容效率低 list&#xff1a; 优点&…

和鲸社区 × 浙大地科学院:DDE 深时数字地球国际大科学计划系列工作坊圆满收官!

AI for Good&#xff0c;AI for Science&#xff0c;11 月 23 日&#xff0c;由和鲸社区联合浙江大学地球科学学院师生共同发起的 DDE 深时数字地球国际大科学计划系列工作坊正式落下帷幕。 深时数字地球&#xff08;Deep-time Digital Earth&#xff0c;DDE&#xff09;是由我…

视频文件+EasyDarwin做摄像机模拟器模拟RTSP流很方便,还能做成系统服务,方法与流程

之前我看到过一家人工智能做算法的企业&#xff0c;用EasyDarwinFFMPEG做了一个摄像机的模拟器&#xff0c;方法大概是&#xff1a; 用ffmpeg读取mp4等类型的视频文件&#xff08;当然ffmpeg啥都能读取&#xff09;&#xff0c;再以RTSP协议的形式推送给EasyDarwin&#xff1b…

【Java】I/O流—缓冲流的基础入门和文件拷贝的实战应用

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;你能坚持到什么程度&#xff0c;决定你能达到什么高度 &#x1f4e2;欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 文章目录 一.&…

前端开发学习 (三) 列表功能

一、列表功能 1、列表功能 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compa…

Doris_Doris导入常见问题

Doris数据导入错误 &#xff1a;the length of input is too larger than schema 可能原因&#xff1a;varchar长度设置过短 Doris表字段乱序 导入palo表中的csv本身无schema信息&#xff0c;csv与palo表字段顺序必须一致&#xff0c;否则会错乱 Doris数据文件中字段比表字段…

Python基础语法之学习数据转换

Python基础语法之学习数据转换 一、代码二、效果 一、代码 #数字转换成字符串 num_str str(11) print(type(num_str))#字符串转整数 numint("11") print(type(num),num)#浮点数转整数 float_num int(11.1) print(type(float_num),float_num)#整数转浮点数 num_flo…

微信可以添加多少好友?

不知道有没有小伙伴好奇&#xff0c;微信到底可以添加多少好友&#xff1f;正好这个话题也上热搜了&#xff0c;我们就来了解一下。 有网友表示&#xff0c;自己的微信好友数量有10004个&#xff0c;已经不能再添加新的微信好友了。 一个微信号&#xff0c;可以添加的好友上限…

微信支付和微信红包设计用例

微信支付 功能 扫二维码 1.第一次扫描付钱二维码时可以得到相机权限&#xff0c;进入付钱界面 2.第一次扫描付钱二维码时可以拒绝相机权限&#xff0c;退回聊天界面 3.扫一扫可以扫描收钱的二维码 4.扫描出来的信息与收钱人信息相符 5.输入框只能输入数字 6.一次能支付的…

安全防控 | AIRIOT智能安防管理解决方案

现代社会对安全和便捷性的需求越来越高&#xff0c;特别是在大型商业园区、住宅社区和办公大楼等场所。传统的安防系统往往存在一些痛点: 通行效率问题&#xff1a;传统门禁系统通常导致人员排队等待&#xff0c;降低了通行效率。车辆通行管理不当会导致交通拥堵和停车问题。 …

供配电系统智能化监控

供配电系统智能化监控是指利用先进的监测技术、自动化控制技术、计算机网络技术等&#xff0c;对供配电系统进行实时、全方位的监测和控制&#xff0c;以实现供配电系统的安全、稳定、高效运行。 供配电系统智能化监控的主要功能包括&#xff1a; 实时数据采集&#xff1a;通过…

【索引优化与查询优化】

文章目录 1. 索引失效的案例1.1 最左优先1.2 主键插入顺序1.3 计算、函数、类型转换(自动或手动)导致索引失效1.4 范围条件右边的列索引失效1.5 非 条件索引失效1.6 like以通配符%开头索引失效1.7 OR 前后存在非索引的列&#xff0c;索引失效 2. 关联查询优化3. 子查询优化3.1 …