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.0 KiB

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

项目概述

这是一个基于Java开发的中小学数学题目自动生成系统支持小学、初中、高中三个不同难度级别的数学题目生成。系统具有用户登录验证、题目生成等功能。

功能特性

用户管理

  • 预设用户账户系统
  • 支持三种账户类型:小学、初中、高中
  • 用户登录验证功能

题目生成

  • 根据账户类型生成相应难度的数学题目
  • 支持10-30道题目的批量生成
  • 自动避免重复题目生成
  • 题目难度分级:
    • 小学:基础四则运算(+、-、*、/)和括号
    • 初中:包含平方、开根号等高级运算
    • 高中包含三角函数sin、cos、tan

文件管理

  • 自动保存生成的题目到文件
  • 按用户分类存储历史题目

系统架构

核心类说明

MathTestGenerator

主程序入口类,负责:

  • 用户登录流程控制
  • 题目生成流程管理
  • 用户交互界面

AccountManager

账户管理类,负责:

  • 预设账户数据管理
  • 用户登录验证
  • 账户信息查询

QuestionGenerator

题目生成器,负责:

  • 根据账户类型生成相应难度的数学题目
  • 支持小学、初中、高中三种难度级别
  • 题目格式化输出

QuestionHistoryManager

题目历史管理类,负责:

  • 检查题目重复性
  • 生成不重复的题目列表

FileManager

文件管理类,负责:

  • 题目文件保存和读取
  • 用户文件夹管理
  • 历史题目加载

MathQuestion

数学题目实体类,包含:

  • 题目内容
  • 账户类型
  • 基本操作方法

UserAccount

用户账户实体类,包含:

  • 用户名
  • 密码
  • 账户类型

预设账户信息

小学账户

  • 张三1 / 123
  • 张三2 / 123
  • 张三3 / 123

初中账户

  • 李四1 / 123
  • 李四2 / 123
  • 李四3 / 123

高中账户

  • 王五1 / 123
  • 王五2 / 123
  • 王五3 / 123

操作流程

  1. 程序启动后,输入用户名和密码(用空格分隔)
  2. 登录成功后,系统显示当前账户类型
  3. 输入要生成的题目数量10-30之间
  4. 系统自动生成不重复的数学题目
  5. 题目自动保存到用户文件夹中
  6. 输入"-1"可退出当前用户,重新登录
  7. 输入"切换为 XX"可切换题目类型XX为小学、初中、高中之一

题目示例

小学题目

  • 15 + 23 * 4 =
  • (12 + 8) / 5 =
  • 45 - 12 + 7 =

初中题目

  • 25 + 16^2 - 9 =
  • 36 + √64 * 3 =
  • 12^2 + 15 - 8 =

高中题目

  • 25 + sin(30°) * 4 =
  • 16 + cos(45°) - 8 =
  • 32 + tan(60°) / 2 =

技术规格

开发环境

  • Java版本JDK 1.8
  • 编码格式UTF-8

项目结构

sxjzzdscxt/
├── doc/                    # 文档目录
├── questions/              # 题目存储目录
│   ├── 张三1/             # 用户题目文件夹
│   ├── 王五1/             # 用户题目文件夹
│   └── ...
├── src/main/java/com/example/
│   ├── MathTestGenerator.java      # 主程序
│   ├── AccountManager.java         # 账户管理
│   ├── QuestionGenerator.java      # 题目生成器
│   ├── QuestionHistoryManager.java # 历史管理
│   ├── FileManager.java           # 文件管理
│   ├── MathQuestion.java          # 题目实体
│   └── UserAccount.java           # 用户实体
├── target/                 # 编译输出目录
└── pom.xml                # Maven配置文件

题目文件格式

  • 存储位置:questions/用户名/年-月-日-时-分-秒.txt
  • 文件格式:每行一道题目,格式为"题号. 题目内容 ="
  • 编码UTF-8

目录结构

questions/
├── 张三1/
│   ├── 2025-09-29-09-14-55.txt
│   ├── 2025-09-29-09-16-57.txt
│   └── ...
├── 王五1/
│   ├── 2025-09-29-11-21-29.txt
│   └── ...
└── ...