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.
2.8 KiB
2.8 KiB
MathPaperGenerator
中小学数学卷子自动生成器
📌 项目简介
本项目是一个基于 Java 编写的命令行应用程序,用于自动生成中小学数学试卷。
支持 小学、初中、高中 三个难度等级,能根据用户登录身份自动选择题目范围,并确保生成的题目不会与已有题库重复。
🚀 功能特点
- 用户登录系统:内置预设账号,支持不同年级用户登录。
- 自动出题:根据选择的年级生成对应难度的数学题目。
- 难度分类:
- 小学:四则运算(+ - * /),可包含括号;
- 初中:包含平方
^2或开方sqrt(); - 高中:包含三角函数
sin / cos / tan。
- 去重机制:避免与已有题目重复。
- 试卷保存:生成的试卷会自动保存到用户专属目录,按时间戳命名。
- 灵活交互:
- 输入
-1可退出登录并切换用户; - 输入
切换为小学/初中/高中可动态切换出题等级。
- 输入
📂 项目结构
├── Main.java # 程序入口 ├── Assign.java # 调度核心逻辑,负责用户登录和功能调用 ├── Function.java # 用户交互与出题数量输入处理 ├── Create.java # 调用生成器并保存试卷 ├── QuestionGenerator.java # Generator的父类 ├── Generator.java # 随机数学题生成器(小学/初中/高中) ├── LoadFile.java # 读取用户已有题目,避免重复 ├── Save.java # 保存生成的试卷到本地 ├── Login.java # 登录系统,包含账户和等级 └── LanguageSwitch.java # 等级与中文互转工具类
🔑 核心类与方法
Main
- 程序入口,调用
Assign.assign()。
Assign
- 控制流程:循环执行登录 → 出题 → 保存。
Function
- 与用户交互:输入题目数量、切换等级、退出登录。
- 调用
Create.create()生成题目。
Create
- 调用
Generator.QuestionGenerator生成试卷。 - 调用
Save.savePaper()保存结果。
Generator
- 数学题生成器:
- 小学:四则运算;
- 初中:平方 / 开根号;
- 高中:三角函数。
- 保证生成题目不重复。
LoadFile
- 读取用户已有试卷文件,按题号分割并去重。
Save
- 将生成的试卷保存到
data/用户名/文件夹。 - 文件命名规则:
yyyy-MM-dd-HH-mm-ss.txt。
Login
- 内置账号系统:
- 小学:张三1/2/3(密码 123);
- 初中:李四1/2/3(密码 123);
- 高中:王五1/2/3(密码 123)。
- 校验用户名与密码,返回用户等级。
LanguageSwitch
- 提供
Level与中文之间的双向转换。
🛠 使用方法
1. jdk版本
- openjdk version "23.0.1"
2. 编译方法
- java -jar MathPaperGenerator.jar