|
|
|
@ -1,65 +0,0 @@
|
|
|
|
大模型修改代码一览表
|
|
|
|
|
|
|
|
项目:数学学习软件
|
|
|
|
|
|
|
|
日期:2025-10-12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
概述
|
|
|
|
|
|
|
|
- 本表记录使用大模型协助完成的代码修改,包含目的、文件位置、变更摘要、影响范围与验证方式,便于作业提交与审阅。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1) 声明 java.desktop 模块
|
|
|
|
|
|
|
|
- 文件:src/main/java/module-info.java
|
|
|
|
|
|
|
|
- 目的:使 `java.awt.Desktop` 可见,修复编译错误
|
|
|
|
|
|
|
|
- 变更:添加 `requires java.desktop;`
|
|
|
|
|
|
|
|
- 验证:`mvn -q javafx:run` 执行成功,应用可正常运行
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2) 后端长方法重构(保证功能不变)
|
|
|
|
|
|
|
|
- MailService.send(约60行 → 精简至40行以内)
|
|
|
|
|
|
|
|
- 文件:src/main/java/com/coproject/service/MailService.java
|
|
|
|
|
|
|
|
- 变更摘要:提取为 `trySendViaSmtp()`、`buildSmtpProperties()`、`buildMessage()` 三个私有方法;保持 SMTP 发送与失败时写入 `outbox.txt` 的回退逻辑不变
|
|
|
|
|
|
|
|
- 验证:`mvn -q -DskipTests compile` 成功
|
|
|
|
|
|
|
|
- JsonStorage 构造器(约51行 → 精简至40行以内)
|
|
|
|
|
|
|
|
- 文件:src/main/java/com/coproject/storage/JsonStorage.java
|
|
|
|
|
|
|
|
- 变更摘要:拆分为 `initUserDir()`、`migrateLegacyData()`、`initUserJson()`、`initPapersJson()`、`initPapersTextFile()`、`initPapersDirs()`、`initUserMapCsv()` 等私有方法;保持初始化与迁移行为一致
|
|
|
|
|
|
|
|
- 验证:编译成功
|
|
|
|
|
|
|
|
- JsonStorage.appendPaperText(约48行 → 精简至40行以内)
|
|
|
|
|
|
|
|
- 文件:src/main/java/com/coproject/storage/JsonStorage.java
|
|
|
|
|
|
|
|
- 变更摘要:提取 `buildPaperText()` 与 `appendQuestionBlock()`;严格保留文本输出格式
|
|
|
|
|
|
|
|
- 验证:编译成功
|
|
|
|
|
|
|
|
- JsonStorage.exportPaperTextFile(>40行 → 精简至40行以内)
|
|
|
|
|
|
|
|
- 文件:src/main/java/com/coproject/storage/JsonStorage.java
|
|
|
|
|
|
|
|
- 变更摘要:提取 `buildExportFileName()`、`buildExportText()`、`appendExportQuestionBlock()`;严格保留导出文本格式
|
|
|
|
|
|
|
|
- 验证:编译成功
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3) 题目生成规则统一(各学段操作数与取值范围)
|
|
|
|
|
|
|
|
- 文件:src/main/java/com/coproject/service/UnifiedQuestionEngine.java
|
|
|
|
|
|
|
|
- 目的:统一各学段题目复杂度与范围,满足作业要求
|
|
|
|
|
|
|
|
- 变更摘要:
|
|
|
|
|
|
|
|
- 小学:操作数数量统一为 1–5;各操作数值在 1–100
|
|
|
|
|
|
|
|
- 初中:操作数数量统一为 1–5;常数在 1–100;根号项使用完全平方数且 `n ≤ 100`(基数 2–10)
|
|
|
|
|
|
|
|
- 高中:操作数数量统一为 1–5;常数在 1–100;保留三角函数题干选项构造逻辑
|
|
|
|
|
|
|
|
- 移除旧过滤:删除对“仅根号项”题干的拦截(`UnifiedQuestionEngine.generateChoiceQuestion` 与 `QuestionService.generate`)以符合 1–5 操作数的新规则
|
|
|
|
|
|
|
|
- 影响:题干与选项构造更一致,边界值更安全
|
|
|
|
|
|
|
|
- 验证:`mvn -q -DskipTests compile` 成功
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4) UI 校验与提示(题量必须为 10–30 的正整数)
|
|
|
|
|
|
|
|
- 文件:src/main/resources/fxml/grade_select.fxml
|
|
|
|
|
|
|
|
- 变更:输入框占位改为“输入10-30的正整数”;新增可见提示“范围:10-30”
|
|
|
|
|
|
|
|
- 文件:src/main/java/com/coproject/controller/GradeSelectController.java
|
|
|
|
|
|
|
|
- 变更:初始化时设置 Tooltip 与提示文案;`onStart()` 中新增严格区间校验(非法输入直接提示并阻止进入答题)
|
|
|
|
|
|
|
|
- 调整:移除旧的“超过50自动设为50”的上限保护,改为必须满足 10–30 区间
|
|
|
|
|
|
|
|
- 验证:编译成功
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5) 运行与打包(说明未改动)
|
|
|
|
|
|
|
|
- 运行:`mvn -q javafx:run`
|
|
|
|
|
|
|
|
- 编译:`mvn -q -DskipTests compile`
|
|
|
|
|
|
|
|
- 打包:`mvn -q -DskipTests package`(如需 MSI 打包,参见 README 与 jpackage 配置)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
影响范围与收益
|
|
|
|
|
|
|
|
- 统一题目生成规则,提升一致性与可控性
|
|
|
|
|
|
|
|
- 强化 UI 输入校验,降低错误操作与异常风险
|
|
|
|
|
|
|
|
- 重构后端长方法,提高可读性与可维护性,便于后续扩展
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
回滚与兼容
|
|
|
|
|
|
|
|
- 所有变更均为向后兼容的内部重构或参数范围调整;如需回滚,可逐文件恢复变更前版本即可(不涉及数据库结构变更)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
备注
|
|
|
|
|
|
|
|
- 非后端的测试/演示方法(如 SimpleLauncher、ConsoleTest、TestApp 中的调试方法)未纳入本次重构范围。
|
|
|
|
|