【开源】基于JAVA语言的学生综合素质评价系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 学生功能
    • 2.2 教师功能
    • 2.3 教务处功能
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询我的学科竞赛
    • 4.2 保存单个问卷
    • 4.3 根据类型查询学生问卷
    • 4.4 填写语数外评价
    • 4.5 填写品德自评问卷分
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的学生综合素质评价系统,包含了成绩查询模块、学生自评模块、教师评价模块和教务打分模块,还包含系统自带的用户管理、班级管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,学生综合素质评价系统基于角色的访问控制,给学生、教师和教务管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 学生功能

登录:勾选学生登录

学业发展水平(分三个部分,第一个是上学期均分(教师端填写,填写3门课语数外,然后自动计算)学生端只能查看,第二个部分是个自评问卷(内容和分值我会给),第三个部分是获奖情况(用下拉菜单之类的实现等级的区分,国家级,省级之类的,加分和这个有关),对应的加分数值我会给),前两个满分都是一百分,最后的得分取均分加上获奖情况的额外加分。

品德与社会化水平(分两个部分,第一部分是自评问卷,第二部分是教师填写的问卷(教师端填写)自己只能查看填写结果)。满分都是一百分,最后的得分取均分。

身心健康水平(分两个部分,第一部分是自评问卷,第二部分是教师填写的问卷,(教师端填写)自己只能查看填写结果,第三部分是教务处填写的体育考试分数)。三个满分都是一百分,最后的得分取均分。

分数查看功能:查看三个部分的分数和综合分数(综合分数就是三个部分的均分)

2.2 教师功能

登录(选择教师登录)

修改个人信息

评价学生学业发展水平(填写学生上学期分数),没填写的学生会留存在这个页面,直到填写完毕为止。

评价学生品德与社会化水平(填写问卷),没填写的学生会留存在这个页面,直到评价完毕为止。

查询学生信息,只能查询属于自己的班级的(通过姓名或者学号,或者该学生是否评价完的状态(这里的评价完就是指自己有没有评价完,不管学生自评和教务处填写的东西),或者综合成绩的区间)。信息包括学号,姓名,班级,分数的查看(包括学业、品德、身心健康和综合成绩等四项)和是否已经完成评价。

2.3 教务处功能

登录(选择教务处登录)

修改个人信息

评价学生身心健康水平(填写体育考试分数),没填写的学生会留存在这个页面,直到评价完毕为止。

查询学生信息(通过姓名或者学号,或者班级,或者该学生是否评价完的状态(这里的评价完就是指自己有没有评价完,不管学生自评和教师填写的东西),或者综合成绩的区间),信息包括学号,姓名,分数的查看(包括学业、品德、身心健康和综合成绩等四项)和是否已经完成评价。


三、系统展示

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


四、核心代码

4.1 查询我的学科竞赛

@RequestMapping(value = "/getMyPage", method = RequestMethod.GET)
@ApiOperation(value = "查询我的学科竞赛")
public Result<IPage<Competition>> getMyPage(@ModelAttribute Competition competition ,@ModelAttribute PageVo page){
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<StudentEvaluate> seQw = new QueryWrapper<>();
    seQw.eq("user_id",currUser.getId());
    List<StudentEvaluate> evaluateList = iStudentEvaluateService.list(seQw);
    StudentEvaluate se = null;
    if(evaluateList.size() < 1) {
        se = EvaluateUtils.getBlackStudentEvaluate(currUser.getId());
        iStudentEvaluateService.saveOrUpdate(se);
    } else {
        se = evaluateList.get(0);
    }
    QueryWrapper<Competition> qw = new QueryWrapper<>();
    qw.eq("evaluate_id",se.getId());
    if(!ZwzNullUtils.isNull(competition.getLevel())) {
        qw.like("level",competition.getLevel());
    }
    if(!ZwzNullUtils.isNull(competition.getTitle())) {
        qw.like("title",competition.getTitle());
    }
    if(!ZwzNullUtils.isNull(competition.getValue())) {
        qw.like("value",competition.getValue());
    }
    IPage<Competition> data = iCompetitionService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Competition>>().setData(data);
}

4.2 保存单个问卷

@RequestMapping(value = "/saveOneByType", method = RequestMethod.GET)
@ApiOperation(value = "保存单个问卷")
public Result<Object> getOneByType(@RequestParam int type, @RequestParam String value){
    StudentEvaluate studentEvaluate = evaluateUtils.getMyStudentEvaluate();
    QueryWrapper<Questionnaire> qw = new QueryWrapper<>();
    qw.eq("evaluate_id",studentEvaluate.getId());
    qw.eq("type",type);
    List<Questionnaire> questionnaireList = iQuestionnaireService.list(qw);
    if(questionnaireList.size() < 1) {
        Questionnaire qu = new Questionnaire();
        qu.setType(type);
        qu.setValue(value);
        qu.setEvaluateId(studentEvaluate.getId());
        qu.setStatus(1);
        iQuestionnaireService.saveOrUpdate(qu);
    } else {
        Questionnaire questionnaire = questionnaireList.get(0);
        questionnaire.setValue(value);
        questionnaire.setStatus(1);
        iQuestionnaireService.saveOrUpdate(questionnaire);
    }
    return ResultUtil.success();
}

4.3 根据类型查询学生问卷

@RequestMapping(value = "/getOneByType", method = RequestMethod.GET)
@ApiOperation(value = "根据类型查询学生问卷")
public Result<List<String>> getOneByType(@RequestParam int type){
    StudentEvaluate se = evaluateUtils.getMyStudentEvaluate();
    QueryWrapper<Questionnaire> qw = new QueryWrapper<>();
    qw.eq("evaluate_id",se.getId());
    qw.eq("type",type);
    List<Questionnaire> questionnaireList = iQuestionnaireService.list(qw);
    if(questionnaireList.size() < 1) {
        return new ResultUtil<List<String>>().setData(new ArrayList<>());
    }
    return new ResultUtil<List<String>>().setData(StrToListUtils.getListByStr(questionnaireList.get(0).getValue()));
}

4.4 填写语数外评价

@RequestMapping(value = "/editYuShuWai", method = RequestMethod.GET)
@ApiOperation(value = "填写语数外评价")
public Result<StudentEvaluate> editYuShuWai(@RequestParam String id,@RequestParam float yu,@RequestParam float shu,@RequestParam float wai){
    StudentEvaluate evaluate = iStudentEvaluateService.getById(id);
    if(evaluate == null) {
        return ResultUtil.error("评价单不存在");
    }
    evaluate.setAchievementOne(BigDecimal.valueOf(yu));
    evaluate.setAchievementTwo(BigDecimal.valueOf(shu));
    evaluate.setAchievementThree(BigDecimal.valueOf(wai));
    evaluate.setAchievementSum(BigDecimal.valueOf((yu + shu + wai) / 3));
    double oneSum = (evaluate.getAchievementSum().floatValue() +  evaluate.getQuestionnaireOne().floatValue()) / 2 + evaluate.getCompetitionMine().floatValue();
    evaluate.setAnsOne(BigDecimal.valueOf(oneSum));
    double ansSum = (evaluate.getAnsOne().floatValue() + evaluate.getAnsTwo().floatValue() + evaluate.getAnsThree().floatValue()) / 3;
    evaluate.setAnsSum(BigDecimal.valueOf(ansSum));
    iStudentEvaluateService.saveOrUpdate(evaluate);
    return new ResultUtil<StudentEvaluate>().setData(iStudentEvaluateService.getById(id));
}

4.5 填写品德自评问卷分

@RequestMapping(value = "/editPinDeZiPing", method = RequestMethod.GET)
@ApiOperation(value = "填写品德自评问卷分")
public Result<Object> editPinDeZiPing(@RequestParam float grade){
    StudentEvaluate evaluate = evaluateUtils.getMyStudentEvaluate();
    evaluate.setQuestionnaireTwo(BigDecimal.valueOf(grade));
    double twoSum = (evaluate.getQuestionnaireTwo().floatValue() +  evaluate.getQuestionnaireThree().floatValue()) / 2;
    evaluate.setAnsTwo(BigDecimal.valueOf(twoSum));
    double ansSum = (evaluate.getAnsOne().floatValue() + evaluate.getAnsTwo().floatValue() + evaluate.getAnsThree().floatValue()) / 3;
    evaluate.setAnsSum(BigDecimal.valueOf(ansSum));
    iStudentEvaluateService.saveOrUpdate(evaluate);
    return ResultUtil.success();
}

五、免责说明

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

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

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

美睫师睫毛嫁接零基础学习,日式美睫与开花嫁接实战教学

一、教程描述 大家都说女人的钱好挣&#xff0c;这是因为每个女人在每年&#xff0c;都要花很多钱来打扮自己。本套教程是关于日式美睫和开花嫁接的&#xff0c;从零基础学习到店铺经营都有涉及&#xff0c;就做美睫和睫毛嫁接这两项业务&#xff0c;月收入万元以上应该问题不…

ubuntu 22.04 安装mysql-8.0.34

ubuntu 22.04 安装mysql-8.0.34 1、基础安装配置 更新软件包&#xff1a; sudo apt update查看可用软件包&#xff1a; sudo apt search mysql-server安装最新版本&#xff1a; sudo apt install -y mysql-server或者&#xff0c;安装指定版本&#xff1a; sudo apt inst…

202|读书笔记《金融的本质:伯南克四讲美联储》

今天跟朋友聊天&#x1f4ac;&#xff0c;说已经没人看书了&#x1f4d6; 我想&#xff0c; 还是会有人读书的吧。 ​ 一、美联储的起源和使命 1. 第一讲&#xff1a;美国南北战争结束后的40年间&#xff0c;美国经历了6次大的银行体系恐慌&#xff0c;促使其于1913年成立美联储…

第八篇【传奇开心果系列】beeware的toga开发移动应用示例:实现消消乐安卓手机小游戏

传奇开心果博文系列 系列博文目录beeware的toga开发移动应用示例系列博文目录一、项目目标二、安装依赖三、初步实现四、扩展思路五、实现游戏逻辑示例代码六、实现界面设计示例代码七、实现增加关卡和难度示例代码八、实现存档和排行榜示例代码九、实现添加特殊方块和道具示例…

C语言第十一弹---函数(下)

​ ✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 函数 1、嵌套调用和链式访问 1.1、嵌套调用 1.2、链式访问 2、函数的声明和定义 2.1、单个文件 2.2、多个文件 2.3、static 和 extern 2.3.1、static…

第六课:Prompt

文章目录 第六课&#xff1a;Prompt1、学习总结&#xff1a;Prompt介绍预训练和微调模型回顾挑战 Pre-train, Prompt, PredictPrompting是什么?prompting流程prompt设计 课程ppt及代码地址 2、学习心得&#xff1a;3、经验分享&#xff1a;4、课程反馈&#xff1a;5、使用Mind…

08. BI - 万字长文,银行如何做贷款违约的预测,特征处理及学习

本文为 「茶桁的 AI 秘籍 - BI 篇 第 08 篇」 文章目录 课程回顾案例分析案例实战 Hi&#xff0c; 你好。我是茶桁。 课程回顾 上节课&#xff0c;咱们讲了一个股票的指标&#xff1a;MACD。在趋势行情里面它应该还是有效的指标。它比较忌讳动荡行情&#xff0c;比如说它一会上…

###C语言程序设计-----C语言学习(5)#

前言&#xff1a;感谢您的关注哦&#xff0c;我会持续更新编程相关知识&#xff0c;愿您在这里有所收获。如果有任何问题&#xff0c;欢迎沟通交流&#xff01;期待与您在学习编程的道路上共同进步&#xff01; 一. 主干知识的学习 1.switch语句 switch语句可以处理多分支选…

ubuntu 22 安装 node,npm,vue

1:安装 nodejs sudo apt update curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt update && sudo apt install -y nodejs node -v 2:安装npm sudo npm install n -g npm -v 3:安装vite npm install vite -g 4:运行vue 把项目拷贝到…

公考之判断推理(一、图形推理)

一、前言 判断推理这一题型主要具体分为四种题型&#xff1a; 1.图形推理 2.类比推理 3.定义判断 4.逻辑判断每种题型做题方法又不一样。 才本文采用总分的形式结构。 每一小标题的下面紧接着就是总结。二、图形推理常见的命题形式 图形推理常见的命题形式&#xff1a; 1.…

鸿蒙ArkUI 宫格+列表+HttpAPI实现

鸿蒙ArkUI学习实现一个轮播图、一个九宫格、一个图文列表。然后请求第三方HTTPAPI加载数据&#xff0c;使用了axios鸿蒙扩展库来实现第三方API数据加载并动态显示数据。 import {navigateTo } from ../common/Pageimport axios, {AxiosResponse } from ohos/axiosinterface IDa…

ASP.NET Core基础之用扩展方法封装服务配置

阅读本文你的收获 了解C#中的扩展方法机制学会在ASP.NET Core 中&#xff0c;用扩展方法封装服务配置&#xff0c;使得代码更加简洁 一、什么是扩展方法 扩展方法使能够向现有类型添加方法&#xff0c;而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法…

从 React 到 Qwik:开启高效前端开发的新篇章

1. Qwik Qwik 是一个为构建高性能的 Web 应用程序而设计的前端 JavaScript 框架,它专注于提供即时启动性能,即使是在移动设备上。Qwik 的关键特性是它采用了称为“恢复性”的技术,该技术消除了传统前端框架中常见的 hydration 过程。 恢复性是一种序列化和恢复应用程序状态…

HbuilderX报错“Error: Fail to open IDE“,以及运行之后没有打开微信开发者,或者运行没有反应的解决办法

开始 问题:HbuilderX启动时,打开微信开发者工具报错"Error: Fail to open IDE",以及运行之后没有打开微信开发者,或者运行没有反应的解决办法! 解决办法: 按照步骤一步一步完成分析,除非代码报错,否则都是可以启动的 第一步:检查HbuildX是否登录账号 第二步:检查微信…

背后的魔术师----jsp

作为一名对技术充满热情的学习者&#xff0c;我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代&#xff0c;我远非专家&#xff0c;而是一位不断追求进步的旅行者。通过这篇博客&#xff0c;我想分享我在某个领域的学习经验&#xff0c;与大家共同探讨、共…

嵌入式软件工程师面试题——2025校招社招通用(C/C++)(四十四)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…

Linux编译实时内核和打补丁

目录 1.Linux内核2.实时内核3.编译实时内核3.1 准备3.2 获取内核源码3.3 编译3.4 设置GRUB确保启动到实时内核 4.给内核打补丁5.安装新的内核 1.Linux内核 https://github.com/torvalds/linux Linux内核是Linux操作系统的核心部分&#xff0c;它是操作系统的基本组成部分&…

研发日记,Matlab/Simulink避坑指南(七)——数据溢出钳位Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(三)——向上取整Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑…

棋盘(来源:第十四届蓝桥杯省赛JavaA/C/研究生组 , 第十四届蓝桥杯省赛PythonC组)

小蓝拥有 nn大小的棋盘&#xff0c;一开始棋盘上全都是白子。 小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0c;黑色棋子变为白色)。 请输出所有操作做完后棋盘上每个棋子的颜色。 输入格式 输入的第…

Qt扩展-QXlsx读写Excel配置使用

QXlsx读写Excel配置使用 一、概述1. 功能概述2. 其他维护 二、安装1. 下载源码2. 配置项目3. 测试代码4. 运行结果 一、概述 项目介绍&#xff1a;https://qtexcel.github.io/QXlsx/Example.html GitHub&#xff1a;https://github.com/QtExcel/QXlsx/tree/master QXlsx 是一个…