跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
JavaAIjava

基于 AI 辅助的学生成绩综合统计分析系统开发实战

综述由AI生成利用 AI 编程辅助工具快速构建学生成绩综合统计分析系统的过程。项目采用 Spring Boot 3.x、MySQL 及 MyBatis-Plus 技术栈,实现了用户管理、学生信息维护、成绩录入与统计分析及可视化展示等功能。通过智能对话生成工程骨架、数据库表结构及接口代码,结合人工优化调试,显著提升了开发效率。文章详细记录了从需求分析、提示词设计、代码生成到配置部署的完整流程,并总结了 AI 工具在提升编码效率方面的优势与局限。

leon发布于 2026/3/15更新于 2026/4/2513 浏览
基于 AI 辅助的学生成绩综合统计分析系统开发实战

引言

随着信息化教学的深入推进,学生成绩管理和分析系统已成为学校教学改革和质量提升的重要保障。这些系统可以帮助教师快速查询和分析考试成绩,从而识别学生的学习需求和差距,实施更加个性化的教学策略。

本项目旨在开发一个功能完备的学生成绩数据分析系统,实现成绩数据的统计、可视化和智能分析。为了提高开发效率、减少重复劳动,我们在项目中引入了 AI 编程辅助工具。该工具能够通过智能对话帮助进行需求分析、功能设计并自动生成完整的项目源码。它支持一键生成可运行的 Spring Boot 工程,包括所有配置文件和代码骨架,并自动优化代码规范和逻辑错误。

这样,我们不仅可以省去大量样板代码的编写工作,还能够更专注于业务逻辑本身。同时,使用 AI 编程辅助工具也符合个人学习目标:通过查看和优化工具生成的代码,深入理解 Spring Boot 的开发流程,并提高代码生成和优化能力。

需求分析与规划

学生成绩综合统计分析系统主要包括成绩录入、查询、统计分析和可视化展示等功能,核心模块涵盖用户管理(管理员、教师、学生角色及权限)、成绩管理(成绩录入、修改、查询、删除)和统计分析(平均分、排名等)及可视化(成绩分布图表)模块。

如示例项目所述,用户模块支持多角色登录与注册,学生模块支持教师或管理员批量导入学生并维护成绩。为满足以上需求:

  • 技术选型方面可使用后端 Spring Boot 框架结合 MySQL 数据库存储数据;
  • 前端可使用 Thymeleaf 或 JavaFX 实现界面逻辑,ECharts 负责数据可视化图表展示。

例如:通过 ECharts 可直观展示成绩分布柱状图或饼图;Spring Security 或 SpringBoot 内置认证可完成登录鉴权;数据库设计则包括用户表、学生信息表、课程/考试信息表和成绩记录表等,以支撑系统完整功能。

[图 1:学生成绩综合统计分析系统数据库关系示意图]

AI 辅助开发实录

输入提示词:

一、技术选型 使用 Spring Boot 3.x 作为后端框架 数据库使用 MySQL,请给出建表语句 使用 MyBatis-Plus 作为 ORM 框架 接口设计遵循 RESTful API 风格,统一返回 JSON 使用 Lombok 简化实体类开发 使用 Swagger/OpenAPI 自动生成接口文档 项目构建工具:Maven 二、工程结构 请生成标准分层架构,目录结构如下: src/main/java/com/example/studentgrades ├── controller // 控制层,处理 REST 接口请求 ├── service // 服务层,业务逻辑 │ └── impl // 服务实现类 ├── mapper // Mapper 接口(MyBatis-Plus) ├── entity // 实体类(数据库表映射) ├── dto // 数据传输对象 ├── vo // 返回给前端的视图对象 ├── config // 配置类(Swagger、MyBatis等) └── util // 工具类 src/main/resources ├── application.yml // 数据源及全局配置 ├── mapper // MyBatis 映射文件(如有) └── static/templates // 静态资源(如需要) 三、数据库设计 请生成以下建表语句: 用户表(user) id(主键) username(用户名) password(密码,需加密存储) role(角色:ADMIN、TEACHER、STUDENT) create_time 学生表(student) id(主键,学号或 UUID) name(姓名) age(年龄) class_name(班级) create_time 课程表(course) id(主键) name(课程名称) teacher_id(授课教师 ID) 成绩表(score) id(主键) student_id(学生 ID,外键) course_id(课程 ID,外键) score(成绩值,float/int) exam_date(考试日期) 四、功能模块 1. 用户管理模块 用户注册(管理员可创建教师、学生账户) 用户登录(JWT 认证或 Session 管理) 角色鉴权(不同角色拥有不同权限) 2. 学生管理模块 学生信息的增删改查(单个/批量导入) 按班级、学号查询学生信息 3. 成绩管理模块 教师录入/修改学生成绩(单个或批量) 按学生、课程、班级查询成绩 统计:平均分、最高分、最低分、及格率、排名 4. 统计分析模块 班级平均成绩对比 单科成绩分布(适配 ECharts JSON 数据格式) 学生成绩走势(折线图数据) 五、接口示例 用户管理 POST /api/users/register 用户注册 POST /api/users/login 用户登录 学生管理 POST /api/students 新增学生 GET /api/students/{id} 查询学生信息 PUT /api/students/{id} 修改学生信息 DELETE /api/students/{id} 删除学生 成绩管理 POST /api/scores 新增成绩 GET /api/scores/student/{studentId} 查询学生成绩 GET /api/scores/course/{courseId}/rank 查询某课程成绩排名 GET /api/scores/average 查询全体学生平均成绩 统计分析 GET /api/charts/scoreDist 成绩分布数据 GET /api/charts/classAvg 班级平均分对比 GET /api/charts/studentTrend/{studentId} 学生成绩走势 六、其他要求 生成完整 Spring Boot 工程,可直接运行 在 application.yml 中配置 MySQL 数据源(示例即可) 所有接口需返回统一响应结构:code, message, data 核心代码添加必要的注释,类名/方法名要规范 生成 Swagger 配置,支持接口在线调试 ⚡ 请根据以上要求生成一个可运行的 Spring Boot 项目代码骨架,并包含对应的数据库表 SQL 建表语句。

将提示词输入后,AI 立即理解需求,并进行整理为以下模块。

[图 2:AI 生成的模块结构图]

点击下一步,让其设计接口,提供了四个接口方案,确认无太大问题。

[图 3:接口设计方案]

继续下一步,根据需求设计数据库表,设计了三个表结构,符合需求。

CREATE TABLE `users` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户唯一标识',
  `username` VARCHAR(50) NOT NULL COMMENT '用户名',
  `password` VARCHAR(255) NOT NULL COMMENT '用户密码(加密后)',
  `role` ENUM('ADMIN','TEACHER','STUDENT') NOT NULL COMMENT '用户角色:ADMIN-管理员,TEACHER-教师,STUDENT-学生',
  `status` TINYINT DEFAULT 1 COMMENT '用户状态:1-启用,0-禁用',
  `create_by` VARCHAR(50) COMMENT '创建人',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` VARCHAR(50) COMMENT '修改人',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE INDEX `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

CREATE TABLE `students` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学生唯一标识',
  `student_no` VARCHAR(20) NOT NULL COMMENT '学号',
  `name` VARCHAR(50) NOT NULL COMMENT '学生姓名',
  `class_id` VARCHAR(20) NOT NULL COMMENT '班级编号',
  `gender` TINYINT COMMENT '性别:1-男,2-女',
  `phone` VARCHAR(20) COMMENT '联系电话',
  `email` VARCHAR(100) COMMENT '电子邮箱',
  `create_by` VARCHAR(50) COMMENT '创建人',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` VARCHAR(50) COMMENT '修改人',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE INDEX `idx_student_no` (`student_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';

CREATE TABLE `scores` (
  `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '成绩记录唯一标识',
  `student_id` BIGINT NOT NULL COMMENT '关联学生 ID',
  `course_name` VARCHAR(50) NOT NULL COMMENT '课程名称',
  `score` DECIMAL(5,1) NOT NULL COMMENT '成绩分数',
  `exam_date` DATE COMMENT '考试日期',
  `semester` VARCHAR(20) COMMENT '学期',
  `create_by` VARCHAR(50) COMMENT '创建人',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` VARCHAR(50) COMMENT '修改人',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成绩信息表';

[图 4:数据库表结构设计]

继续进行下一步,让 AI 处理逻辑接口。

用户管理 用户登录 创建教师账户 创建学生账户 修改用户状态 学生信息管理 删除学生信息 修改学生信息 查询学生信息列表 批量导入学生数据 成绩管理 修改成绩记录 删除成绩记录 记录按条件查询成绩 获取成绩统计分析结果 统计分析 获取单科成绩分布情况 获取学生成绩趋势变化数据

点击下一步之后,直接点击'开始生成'按钮。

等待生成项目后,勾选'打开项目'进行部署即可,中途可能会下载相应的包,会比较慢,耐心等待即可。

优化与调试

尽管 AI 生成了大量模板代码,但在实际使用中也遇到了一些问题,需要结合手工优化和工具辅助调试。首先,自动生成的代码结构有时不够合理或不符合最佳实践,我们需要根据项目实际情况手工重构包结构或接口划分。其次,一些依赖或注解可能遗漏,需要手动在 pom.xml 中添加相应依赖或在类上添加注解来保证代码可编译运行。此外,部分自动生成的 SQL 查询语句效率不高,我们会借助 MySQL 的 EXPLAIN 等分析工具查看执行计划,优化 SQL 语句和索引设计。在开发过程中,我们充分利用 AI 的行间会话(智能会话)功能:当遇到复杂逻辑或不明确的问题时,选中相关代码片段并提问插件,它可以根据上下文给出优化建议或实现思路。例如,对复杂的成绩计算逻辑描述需求后,AI 往往能提供可行方案,甚至直接给出示例代码。此外,针对旧项目或遗留代码,通过行间会话询问某段代码的业务作用,插件能快速分析并解释逻辑。最后,我们使用 Postman 等 API 测试工具验证接口正确性,通过实际调用发现问题并调整代码逻辑。综合使用 AI 与传统调试工具(数据库分析器、Postman、IDE 日志等),提升了问题定位和修复效率。

[图 5:系统功能模块结构示意图]

成果展示

整个项目按照典型的 Spring Boot 分层架构组织,src/main/java 下按包区分控制层、服务层、数据访问层等;src/main/resources 包含配置文件和静态资源;编译输出在 target 目录。

核心模块类名所属层/功能说明
UserController控制器层(用户管理)管理员/教师登录、用户信息管理的 Web 接口
StudentController控制器层(学生管理)学生信息增删改查、查询成绩的接口
ScoreService服务层(成绩统计)实现计算平均分、方差、成绩分布等业务逻辑
ChartController控制器层(可视化)提供成绩分布、成绩变化图表数据的 REST 接口
Student实体类(数据模型)学生基本信息(学号、姓名、年龄等)
ScoreRecord实体类(数据模型)学生成绩记录(学号、课程、成绩等字段)

[图 6:成绩录入流程示意图]

核心 API 接口示例(基于 REST):

POST /api/users/register 用户注册
POST /api/users/login 用户登录
POST /api/students 新增学生
GET /api/students/{id} 查询学生信息
PUT /api/students/{id} 修改学生信息
DELETE /api/students/{id} 删除学生
POST /api/scores 新增成绩
GET /api/scores/student/{studentId} 查询学生成绩
GET /api/scores/course/{courseId}/rank 查询某课程成绩排名
GET /api/scores/average 查询全体学生平均成绩
GET /api/charts/scoreDist 成绩分布数据
GET /api/charts/classAvg 班级平均分对比
GET /api/charts/studentTrend/{studentId} 学生成绩走势

[图 7:接口调用流程(前端→后端→数据库)]

下面这个文件涵盖了四个部分 server 部分、spring.datasource 部分、spring.jpa 部分、jwt 部分。

1、server 部分

  • port: 8080 → 指定应用运行的端口号为 8080。
  • context-path: /JavaProject → 设置 Web 应用的上下文路径,访问时需要加 /JavaProject 前缀

2、spring.datasource 部分

  • 配置数据库连接信息。
  • url → MySQL 数据库连接地址,这里连接本地的 testdb 数据库。
  • username、password → 数据库账号和密码。
  • driver-class-name → MySQL 驱动类。

3、spring.jpa 部分

  • ddl-auto: update → Hibernate 启动时自动根据实体类更新数据库表结构。
  • show-sql: true → 控制台输出执行的 SQL 语句,方便调试。
  • dialect: MySQLDialect → 指定使用 MySQL 的方言,让 Hibernate 生成符合 MySQL 语法的 SQL。
  • format_sql: true → 格式化 SQL 输出。
  • open-in-view: false → 避免 Open Session in View 的性能问题。

4、jwt 部分

  • secret → JWT(JSON Web Token)的签名密钥,用于生成和验证 token。
  • expiration: 86400 → token 的有效期,单位为秒,这里设置为 1 天。
server:
  port: 8080
  servlet:
    context-path: /JavaProject
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
    username: root
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
      show-sql: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQLDialect
        format_sql: true
    open-in-view: false
jwt:
  secret: mySecretKeyForTokenGeneration1234567890
  expiration: 86400 # seconds (1 day)

[图 8:配置文件示例]

总结

在整个项目开发过程中,我们深刻体会到智能辅助开发的优势与局限。

  • 一方面,AI 工具的引入确实大幅提高了开发效率,根据统计类似项目效率可提升约 10 倍;
  • 另一方面,我们也发现人工经验和业务判断依然不可或缺。

工具生成的代码虽然格式规范、可读性好,但在一些特殊业务场景下仍需要人工介入进行细节调整。

比如,对于部分自定义查询逻辑,生成结果并不完全符合预期,我们需要手动修改 SQL 语句和业务代码来满足需求。总体而言,项目按期完成,开发效率和代码质量都有所提升,这与 AI 工具所宣称的效能相符。

对于 AI 工具的体验,我们认为它具有明显的优势,也存在一定的局限。

  • 优势方面,它能够快速生成工程结构和基础代码,帮助团队快速进入开发状态,特别适合应对开发周期紧张的项目场景。同时,生成的 Spring Boot 代码遵循行业规范,提升了代码的可维护性。
  • 工具也有局限:它目前主要依赖通用场景的数据训练,在处理特定业务需求或复杂需求时表现还需要提升,开发者仍需对生成结果进行审查和完善。

通过这次项目实践,我们认识到 AI 工具是强有力的辅助而非完全替代。总结而言,AI 提供了一种新的开发范式,大幅降低了开发初期的重复劳动成本,但在后续的功能细化和业务实现中,仍需开发者投入专业知识进行补充和优化。

目录

  1. 引言
  2. 需求分析与规划
  3. AI 辅助开发实录
  4. 优化与调试
  5. 成果展示
  6. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 法奥机器人操作与 Lua 脚本基础
  • 论文阅读--Agent AI 探索多模态交互的前沿领域(一)
  • C++ STL set 系列:底层原理、核心接口与实战场景
  • Qwen3-VL 实战:手绘草图一键生成 HTML 代码
  • JavaScript 流程控制与数组实战
  • 大语言模型(LLM)入门学习路径与核心技术解析
  • Qwen3.5 核心特性详解:原生多模态与推理能力升级
  • Go Web 开发:网络通信、Socket 与数据库实战
  • Linux 进程池实战:基于管道通信的任务分发系统实现
  • FastAPI:Python 高性能 Web 框架深度解析
  • C/C++回调函数用法详解
  • Python 基础语法练习题:列表、切片与循环
  • AI 图像生成指南:从原理到实战
  • 网络安全入门指南:技术方向与学习路线详解
  • Flutter 三方库 vertex_ai 的鸿蒙化适配指南
  • Python 调用 Deepseek API 失败原因及排查指南
  • FPGA 核心硬件资源详解:LUT、FF、BRAM、DSP、PLL 及综合报告解读
  • VoxCPM-1.5-TTS-WEB-UI 基于镜像站的快速部署方案
  • WhisperX 语音识别工具核心优势与应用解析
  • C++ 多容器非空检查的逻辑陷阱与最佳实践

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online