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

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