【开源】JAVA+Vue+SpringBoot实现学生综合素质评价系统

目录
-
一、摘要
-
- 1.1 项目介绍
- 1.2 项目录屏
-
二、功能模块
-
- 2.1 学生功能
- 2.2 教师功能
- 2.3 教务处功能
-
三、系统展示
-
第三部分 系统展示
-
四、核心代码
-
第四部分 核心功能模块
-
4.1 实现学科竞赛信息的检索
-
4.2 完成单份问卷的信息记录
-
4.3 依据类型实现学生问卷的检索
-
4.4 完成语文、数学和外语等基础科目的成绩评价报告填写
-
4.5 完成品德自我评价评分表单的填写
-
五、免责说明
-
一、摘要
1.1 项目介绍
采用Java语言开发,并基于Vue框架、Spring Boot技术及MySQL数据库构建的学生综合素质评价系统,在功能设计上集成了多维度评估指标体系。该系统不仅支持包括学生成绩查询功能在内的一系列个性化评估工具,并且提供了学生自我评价、教师专业能力评价以及教务部门综合评分等多元化管理途径。在基础服务组件方面,则内置了全面的基础功能组件包括但不限于用户权限管理系统(实现基于角色权限的安全访问机制)、完善的班级信息管理系统(支持对班级信息的全生命周期管理)、精细的角色权限分配策略(可将权限精确到按钮级别)、高效的事务处理能力以及强大的数据分析支持能力(包含数据字典管理和元数据维护功能)。此外该系统还具备完整的日志管理和数据备份组件(支持日志记录与数据分析结果持久化存储),充分满足教育信息化时代对于智能化教学评估解决方案的需求
1.2 项目录屏
二、功能模块
2.1 学生功能
登录 :勾选学生登录
学生的学业发展水平监测平台主要包含三个模块:学生成绩管理模块分为教师端和学生端两部分。教师端需录入语文、数学、外语三科成绩后系统自动生成均分数据;学生端则仅提供预设模板并可直接获取系统计算的总分数据。平台将向学生提供详细的自评指导书或操作手册。奖励等级设置采用多级下拉菜单形式,在选项中包括国家级奖状和省级奖状两种类型。满分均为100分,并根据获奖情况给予额外加分
品德发展与社会融入水平
心理健康与身体素质水平分为三个维度:第一维度由个人自我评价问卷完成;第二维度由教师在线填写评价表;第三维度则参考学生的体育考试成绩。每项满分均为100分,并采用平均值计算法得出最终综合得分。
该系统模块可实现三大核心板块的统计显示(总评指数即为三大核心板块的算术平均值)。
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);
}
AI写代码
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();
}
AI写代码
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()));
}
AI写代码
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));
}
AI写代码
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();
}
AI写代码
五、免责说明
- 本项目仅限于个人学习目的使用,请商业用途授权联系博主并注意可能产生的法律责任。
- 博主不仅拥有您所见到的应用系统全部内容的所有权和独立知识产权,并掌握最终解释权。
- 遇到任何问题时,请您及时在仓库的Issue中提出您的具体诉求和建议。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 由于自愿的操作/设计本软件,并需知悉运用本软件可能带来的潜在风险,并承诺自行承担相关风险。
- 所有基于本软件搭建的网站的信息内容及由此引发的一切版权纠纷、法律争议及其结果与博主均无关,请注意此声明并不对此类问题负责。
- 在所有情况下,请理解因操作或无法操作本软件所带来的不可预见损失(涵盖但不限于商业利润损失、业务中断以及数据丢失等情形),此声明对此类损害不负责任。
- 必须清楚认识到运用本软件可能面临的风险,请明确表示无需提供专业技术支持及质量保证服务,并对由此产生的不可预见问题不负连带责任。

