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.
|
4 days ago | |
---|---|---|
.. | ||
README.md | 4 days ago | |
个人项目使用大模型后人工修改代码一览表.docx | 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可用内存
环境配置
-
Java环境检查:
java -version javac -version
确保两个命令都能正确显示版本信息
-
字符编码设置:run.bat已自动设置UTF-8编码,无需手动配置
-
路径配置:
- 确保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
使用指南
基本操作流程
- 启动程序:双击运行
run.bat
文件或执行run.bat
命令 - 用户登录:输入用户名和密码(用空格分隔)
请输入用户名和密码(用空格隔开):张三1 123
- 查看权限:登录成功后显示当前出题类型
登录成功!当前出题类型:小学
- 生成题目:输入要生成的题目数量(10-30)
请输入题目数量(10-30):15
- 切换类型:或输入"切换为 XX"来改变出题类型
请输入题目数量或切换类型:切换为初中
- 退出登录:输入"-1"退出当前用户
文件输出示例
生成的试卷文件示例:
1. (3 + 5) × 2 - 4 ÷ 2 =
2. 7 × (9 - 3) + 6 ÷ 2 =
3. 12 + 8 ÷ 4 × 3 - 5 =
...
开发规范
代码质量
- 面向对象设计:采用清晰的类结构和职责分离
- 方法简洁性:单个方法代码行数控制在40行以内
- 命名规范:遵循Java驼峰命名法,见名知意
- 注释完整:关键方法和复杂逻辑有详细注释
错误处理
- 输入验证:对用户输入进行严格的格式和范围检查
- 异常捕获:使用try-catch处理可能的运行时异常
- 友好提示:提供清晰易懂的错误信息
扩展建议
功能扩展
- 题目难度分级:在每个学段内设置不同难度级别
- 题目类型扩展:增加几何、代数等更多题目类型
- 批量生成:支持一次性生成多套试卷
- 模板定制:允许教师自定义试卷模板格式
技术优化
- 数据库支持:使用数据库存储用户和题目数据
- Web界面:开发Web版界面,提升用户体验
- 算法优化:改进题目生成算法,提高题目质量
- 国际化:支持多语言界面
注意事项
系统要求
- 确保Java环境正确安装并配置PATH
- 程序运行目录需要有写权限
- 建议在SSD硬盘上运行以获得更好的文件读写性能
数据安全
- 用户密码以明文存储,生产环境建议加密
- 定期备份papers文件夹中的重要数据
- 避免在公共计算机上保存敏感的用户数据
性能考虑
- 题目数量较多时,生成时间会相应增加
- 历史文件较多时,查重操作可能影响性能
- 建议定期清理不再需要的历史试卷文件
技术支持
如遇到问题,请检查:
- Java环境是否安装正确
- 文件路径权限是否足够
- 输入格式是否符合要求
- 磁盘空间是否充足
最后更新:2025年9月28日