Spring Boot 版成绩统计分析

文章目录

  • [1. 成绩统计分析说明](#1. 成绩统计分析说明)
    • [1.1 项目概述](#1.1 项目概述)
    • [1.2 一键运行](#1.2 一键运行)
    • [1.3 使用流程](#1.3 使用流程)
    • [1.4 成绩表格式](#1.4 成绩表格式)
    • [1.5 统计口径](#1.5 统计口径)
    • [1.6 着色规则](#1.6 着色规则)
    • [1.7 目录结构](#1.7 目录结构)
    • [1.8 数据库与数据表](#1.8 数据库与数据表)
      • [1.8.1 数据库](#1.8.1 数据库)
      • [1.8.2 数据表](#1.8.2 数据表)
  • [2. 成绩统计分析演示](#2. 成绩统计分析演示)

1. 成绩统计分析说明

1.1 项目概述

  • 本项目是一款基于 Spring Boot 3.3 + Thymeleaf + Bootstrap + MySQL 的成绩统计分析工具,面向教师与教务管理人员提供一键式成绩处理服务。系统支持导入 Excel 成绩表(.xlsx/.xls),自动识别姓名列与科目列,智能处理缺考、免考等特殊情况,并可按科目分设满分与等级阈值。统计结果以带颜色区分的表格呈现,包含平均分、标准差、各分数段人数比例图(直方图/饼图/3D)、单科排名等维度,学生明细中不及格标红、优秀标绿。最终可导出同款配色的 Excel 文件,便于打印与归档。通过 run.bat 一键启动,访问 http://localhost:8081 即可使用。

1.2 一键运行

  1. 确认已安装 JDK 17+ 、Maven 3.6+ 、MySQL 8 (服务名默认 MySQL80)。
  2. 数据库账号密码、端口在 run.bat 顶部修改。
  3. 双击 run.bat :自动检查环境 → 建库 score_statistics → 首次运行自动编译打包 → 启动并打开 http://localhost:8081。
  • 运行run.bat文件
  • 项目首页 - http://localhost:8081/

1.3 使用流程

  1. 首页选择 Excel 成绩表(.xlsx / .xls),填写批次名称;
  2. 点击「导入并生成统计」进入统计页------各科满分与等级阈值分科设置:按各科最高分自动推测满分(≤100→100、≤120→120、≤150→150)并按 90%/80%/70%/60% 比例给出默认阈值,在"等级阈值(分科设置)"表格中逐科修改后「保存并重新统计」;
  3. 统计表下方为三个选项卡:学生成绩明细 / 各分数段人数比例图(直方图·饼图·3D)/ 单科排名;点「导出 Excel(含颜色)」下载同款样式的 xlsx(打印时自动展开全部选项卡)。

1.4 成绩表格式

  • 样例成绩表

  • 第一行是列标题:姓名 + 各科目(科目数量不限,自动识别姓名列);

  • 分数为数值或数字文本;缺考 / 免考 / 旷考 或留空按缺考处理;

  • 默认读取第一个工作表。

1.5 统计口径

  • 缺考不计入统计;比率分母为实考人数;
  • 平均分保留 1 位小数,标准差(总体)保留 2 位小数;
  • 五级人数:优秀(≥优秀线)、良好、中等、及格、不及格(< 及格线);
  • 优良率 =(优秀+良好)÷ 实考人数;及格率 =(及格及以上)÷ 实考人数。

1.6 着色规则

  • 页面与导出 Excel 一致
  • 分科目统计表着色规则
行 颜色(四组四色)
平均分 / 标准差 淡紫 D9D2E9
最高分 / 最低分 淡蓝 DDEBF7
优秀 / 良好 / 中等 / 及格 / 不及格 淡绿 EBF1DE
优良率 / 及格率 浅黄 FFF2CC
  • 学生明细表着色规则:不及格标红、优秀标绿、单科最高分加粗下划线、缺考灰色斜体。

1.7 目录结构

  • 目录结构简图

    score_statistics/
    ├─ run.bat 一键启动
    ├─ pom.xml Spring Boot 3.3 + Apache POI 5.2
    └─ src/main/
    ├─ java/com/stb/score/
    │ ├─ ScoreApplication.java
    │ ├─ service/ExcelImportService 表头/姓名列/科目列自动识别,缺考解析
    │ ├─ service/StatService 统计计算 + 表格行组装 + 阈值
    │ ├─ service/ExcelExportService 带颜色导出(统计表 + 学生明细)
    │ ├─ service/BatchService 批次/明细持久化(MySQL)
    │ └─ web/ScoreController
    └─ resources/
    ├─ application.yml 端口 8081、MySQL score_statistics
    ├─ schema.sql score_batch / score_record
    ├─ templates/ index / stats
    └─ static/ Bootstrap 本地副本 + app.css

  • 在项目根目录执行命令:tree /F

1.8 数据库与数据表

1.8.1 数据库

  • score_statistics

1.8.2 数据表

  • score_batch:批次(名称、文件名、学生数、科目数、科目清单、阈值、时间)
  • score_record:明细长表(批次、姓名、科目、分数,NULL=缺考)

2. 成绩统计分析演示

  • 演示操作流程
相关推荐
Yyyyyy~13 小时前
【Java】Day4Web基础知识
java·spring boot
逆回17 小时前
升级 Boot 4 后,我的 mock 全红了
spring boot
学长毕设20 小时前
基于SpringBoot的野生动物公益保护平台设计与实现-附源码
java·spring boot·后端
她的男孩21 小时前
三人会签只批了一个就往下走:Forge Admin 把 all / any / ratio 写成 completionCondition
spring boot·低代码·工作流引擎
vipxieliang1 天前
ValidX vs 手写验证代码:开发效率对比实测
java·spring boot·后端
vipxieliang1 天前
虚拟线程与 GraalVM:Spring Boot 3.x 云原生性能跃迁
java·spring boot·后端
头发还在的女程序员1 天前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
CoderYanger1 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
计算机毕设定制辅导-无忧学长2 天前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统