You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nie 75412cde2b
The Last!
4 days ago
..
README.md The Last! 4 days ago
个人项目使用大模型后人工修改代码一览表.docx change some questions 5 days ago

README.md

中小学数学卷子自动生成程序

项目简介

这是一个基于Java开发的智能数学试卷自动生成系统专为中小学数学教师设计。系统能够根据不同学段小学、初中、高中自动生成符合教学大纲要求的数学题目支持用户管理、题目查重、类型切换等功能。

功能特点

🔐 用户认证系统

  • 多用户支持:预设小学、初中、高中各三个测试账户
  • 安全验证:用户名密码双重验证机制
  • 权限管理:不同学段用户只能生成对应难度的题目

📝 智能题目生成

  • 小学题目:加减乘除四则运算,支持括号优先级
  • 初中题目:包含平方、开根号等进阶运算
  • 高中题目:支持三角函数等高等数学运算
  • 难度控制操作数范围1-100操作符数量1-5个
  • 随机性保证基于Java Random类的真随机数生成

🔍 智能查重系统

  • 历史查重:自动检查用户历史生成的题目
  • 实时去重:避免在同一份试卷中出现重复题目
  • 文件级查重:基于用户文件夹下的所有历史文件

🔄 灵活类型切换

  • 动态切换:登录状态下可随时切换出题类型
  • 命令格式:输入"切换为 XX"XX为小学、初中、高中
  • 即时生效:切换后立即应用新的题目生成规则

💾 智能文件管理

  • 用户隔离:按用户名创建独立的文件夹
  • 时间戳命名:文件名格式:年-月-日-时-分-秒.txt
  • 规范格式:题目有序号,每题之间空一行,便于阅读

预设账户

学段 用户名 密码 权限说明
小学 张三1 123 生成小学难度题目
小学 张三2 123 生成小学难度题目
小学 张三3 123 生成小学难度题目
初中 李四1 123 生成初中难度题目
初中 李四2 123 生成初中难度题目
初中 李四3 123 生成初中难度题目
高中 王五1 123 生成高中难度题目
高中 王五2 123 生成高中难度题目
高中 王五3 123 生成高中难度题目

技术架构

项目结构

src/
├── App.java                 # 主程序入口,控制程序流程
├── User.java               # 用户实体类,管理用户信息和认证
├── QuestionGenerator.java   # 题目生成器抽象类,定义公共接口
├── PrimarySchoolGenerator.java  # 小学题目生成器实现
├── MiddleSchoolGenerator.java   # 初中题目生成器实现
├── HighSchoolGenerator.java     # 高中题目生成器实现
└── FileManager.java         # 文件操作工具类

核心类说明

  • App类:程序主控制器,负责用户交互和流程调度
  • User类:用户数据模型,包含用户名、密码和权限信息
  • QuestionGenerator:抽象工厂模式,定义题目生成规范
  • 各学段生成器:策略模式实现,不同难度采用不同生成策略
  • FileManager:单例模式,统一管理文件读写操作

快速开始

环境要求

系统平台要求

  • 操作系统Windows 10/11推荐使用Windows系统
  • Java版本Java 17 或更高版本推荐Java 21或Java 23
  • 磁盘空间至少100MB可用磁盘空间
  • 内存要求至少512MB可用内存

环境配置

  1. Java环境检查

    java -version
    javac -version
    

    确保两个命令都能正确显示版本信息

  2. 字符编码设置run.bat已自动设置UTF-8编码无需手动配置

  3. 路径配置

    • 确保Java的bin目录已添加到系统PATH环境变量中
    • 项目路径中不要包含中文或特殊字符

运行方式

方法一使用run.bat一键运行推荐

Windows系统用户可以直接双击运行run.bat文件,或者通过命令行运行:

# 进入项目目录
cd math-test

# 运行批处理文件
run.bat

run.bat文件会自动完成以下操作

  • 设置UTF-8编码环境
  • 检查Java环境是否安装
  • 自动编译Java源文件如果未编译
  • 启动数学试卷生成程序

方法二:手动编译运行

如果需要在其他操作系统上运行,可以手动编译:

# 进入项目目录
cd math-test

# 编译所有Java源文件
javac -d bin src/*.java

# 运行程序
java -cp bin src.App

运行参数

  • 默认参数:程序运行无需额外参数
  • 内存设置可选如需处理大量题目可设置JVM内存
    java -Xmx512m -cp bin src.App
    
  • 编码强制设置(如遇到乱码):
    java -Dfile.encoding=UTF-8 -cp bin src.App
    

使用指南

基本操作流程

  1. 启动程序:双击运行run.bat文件或执行run.bat命令
  2. 用户登录:输入用户名和密码(用空格分隔)
    请输入用户名和密码用空格隔开张三1 123
    
  3. 查看权限:登录成功后显示当前出题类型
    登录成功!当前出题类型:小学
    
  4. 生成题目输入要生成的题目数量10-30
    请输入题目数量10-3015
    
  5. 切换类型:或输入"切换为 XX"来改变出题类型
    请输入题目数量或切换类型:切换为初中
    
  6. 退出登录:输入"-1"退出当前用户

文件输出示例

生成的试卷文件示例:

1. (3 + 5) × 2 - 4 ÷ 2 =

2. 7 × (9 - 3) + 6 ÷ 2 =

3. 12 + 8 ÷ 4 × 3 - 5 =
...

开发规范

代码质量

  • 面向对象设计:采用清晰的类结构和职责分离
  • 方法简洁性单个方法代码行数控制在40行以内
  • 命名规范遵循Java驼峰命名法见名知意
  • 注释完整:关键方法和复杂逻辑有详细注释

错误处理

  • 输入验证:对用户输入进行严格的格式和范围检查
  • 异常捕获使用try-catch处理可能的运行时异常
  • 友好提示:提供清晰易懂的错误信息

扩展建议

功能扩展

  1. 题目难度分级:在每个学段内设置不同难度级别
  2. 题目类型扩展:增加几何、代数等更多题目类型
  3. 批量生成:支持一次性生成多套试卷
  4. 模板定制:允许教师自定义试卷模板格式

技术优化

  1. 数据库支持:使用数据库存储用户和题目数据
  2. Web界面开发Web版界面提升用户体验
  3. 算法优化:改进题目生成算法,提高题目质量
  4. 国际化:支持多语言界面

注意事项

系统要求

  • 确保Java环境正确安装并配置PATH
  • 程序运行目录需要有写权限
  • 建议在SSD硬盘上运行以获得更好的文件读写性能

数据安全

  • 用户密码以明文存储,生产环境建议加密
  • 定期备份papers文件夹中的重要数据
  • 避免在公共计算机上保存敏感的用户数据

性能考虑

  • 题目数量较多时,生成时间会相应增加
  • 历史文件较多时,查重操作可能影响性能
  • 建议定期清理不再需要的历史试卷文件

技术支持

如遇到问题,请检查:

  1. Java环境是否安装正确
  2. 文件路径权限是否足够
  3. 输入格式是否符合要求
  4. 磁盘空间是否充足

最后更新2025年9月28日