Merge pull request 'commit' (#8) from develop into main

main
plks47r9b 4 months ago
commit 6a1a08f499

@ -1,2 +0,0 @@
# MathPaperGenerator

Binary file not shown.

@ -0,0 +1,90 @@
# MathPaperGenerator
# 中小学数学卷子自动生成器
## 📌 项目简介
本项目是一个基于 **Java** 编写的命令行应用程序,用于自动生成中小学数学试卷。
支持 **小学、初中、高中** 三个难度等级,能根据用户登录身份自动选择题目范围,并确保生成的题目不会与已有题库重复。
---
## 🚀 功能特点
- **用户登录系统**:内置预设账号,支持不同年级用户登录。
- **自动出题**:根据选择的年级生成对应难度的数学题目。
- **难度分类**
- 小学:四则运算(+ - * /),可包含括号;
- 初中:包含平方 `^2` 或开方 `sqrt()`
- 高中:包含三角函数 `sin / cos / tan`
- **去重机制**:避免与已有题目重复。
- **试卷保存**:生成的试卷会自动保存到用户专属目录,按时间戳命名。
- **灵活交互**
- 输入 `-1` 可退出登录并切换用户;
- 输入 `切换为小学/初中/高中` 可动态切换出题等级。
---
## 📂 项目结构
├── Main.java # 程序入口
├── Assign.java # 调度核心逻辑,负责用户登录和功能调用
├── Function.java # 用户交互与出题数量输入处理
├── Create.java # 调用生成器并保存试卷
├── 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
Loading…
Cancel
Save