5.9 KiB
中小学数学卷子自动生成程序 - 项目说明文档
一、项目概述
1.1 项目名称
中小学数学卷子自动生成程序
1.2 项目定位
面向小学、初中、高中三个学段的数学题目自动生成工具,支持用户登录验证、分学段出题、题目去重及文件保存功能,满足教学练习中快速生成个性化数学题目的需求。
1.3 核心功能
用户认证:预设小学、初中、高中各 3 个账号,支持用户名密码验证
分学段出题:
小学:仅包含 +、-、*、/ 及括号,确保减法非负、除法整除
初中:在小学基础上增加平方(²)、开根号(√),且每题至少包含 1 个特殊运算符
高中:在小学基础上增加 sin、cos、tan 三角函数(仅使用 0°、30°、45° 等特殊角度)
题目去重:自动读取用户历史生成题目,避免重复
文件管理:按用户创建专属文件夹,以时间戳命名题目文件,便于追溯
1.4项目需求
用户:
小学、初中和高中数学老师。
功能:
1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高
中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显
示“当前选择为 XX 出题”,XX 为小学、初中和高中三个选项中的一个。否则
提示“请输入正确的用户名、密码”,重新输入用户名、密码;
2、登录后,系统提示“准备生成 XX 数学题目,请输入生成题目数量(输入-1
将退出当前用户,重新登录):”,XX 为小学、初中和高中三个选项中的一
个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。
每道题目的操作数在 1-5 个之间,操作数取值范围为 1-100;
3、题目数量的有效输入范围是“10-30”(含 10,30,或-1 退出登录),程序
根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求
见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重
复(以指定文件夹下存在的文件为准,见 5);
4、在登录状态下,如果用户需要切换类型选项,命令行输入“切换为 XX”,
XX 为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台
提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“系
统提示“准备生成 XX 数学题目,请输入生成题目数量”,用户输入所需出的卷
子的题目数量,系统新设置的类型进行出题;
5、生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文
件夹。每道题目有题号,每题之间空一行;
二、项目结构
2.1 目录结构
plaintext
软4_张豪_个人项目/
├─ src/ # 源代码目录
│ ├─ IUserManager.java # 用户管理接口
│ ├─ UserManager.java # 用户管理接口实现类
│ ├─ IQuestionGenerator.java # 题目生成接口
│ ├─ QuestionGenerator.java # 题目生成接口实现类
│ ├─ IQuestionStorage.java # 题目存储接口
│ ├─ QuestionStorage.java # 题目存储接口实现类
│ └─ MathTestGenerator.java # 程序主类(含main方法)
└─ doc/ # 文档目录
└─ shuoming.md # 项目说明文档(本文档)
2.2 类职责说明
类 / 接口 所属目录 核心职责
MathTestGenerator src 程序入口,协调用户登录、题目生成、文件保存流程,处理命令行交互
IUserManager src 定义用户管理规范,包含用户验证方法
UserManager src 实现用户验证逻辑,存储预设账号信息(用户名:密码 -> 学段)
IQuestionGenerator src 定义题目生成规范,包含分学段生成题目方法
QuestionGenerator src 实现分学段题目生成逻辑,处理运算符选择、括号添加、题目去重
IQuestionStorage src 定义题目存储规范,包含文件夹创建、历史题目读取、题目保存方法
QuestionStorage src 实现文件操作逻辑,按用户创建目录、读取历史 TXT 文件、生成时间戳命名的题目文件
三、环境依赖
3.1 运行环境
JRE 版本:JRE 8 及以上(推荐 JRE 8 / JRE 11,兼容性最优)
操作系统:Windows 10/11
3.2 开发环境
JDK 版本:JDK 17
开发工具:IntelliJ IDEA、IDEA
四、使用教程
4.1 编译源代码(本地运行需执行)
打开命令行,进入 src 目录:
bash
# Windows示例
cd D:\软4_张豪_个人项目\src
4.2 运行程序
保持在 src 目录,执行运行命令:
bash
java MathTestGenerator
按提示完成操作:
步骤 1:登录:输入预设用户名和密码(空格分隔),例如:
请输入用户名和密码(用空格隔开):张三1 123
预设账号列表:
学段 用户名 密码
小学 张三1/2/3 123
初中 李四1/2/3 123
高中 王五1/2/3 123
步骤 2:生成题目:输入题目数量(10-30 之间,输入 -1 退出当前用户),例如:
准备生成 小学 数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):15
步骤 3:切换学段(可选):输入 切换为+学段 可切换出题类型,例如:
准备生成 小学 数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):切换为初中
4.3 查看生成的题目
程序会在 src 目录下创建用户名命名的文件夹,题目文件以 yyyy-MM-dd-HH-mm-ss.txt 格式命名,例如:
路径:src/张三1/2024-05-20-14-30-25.txt
题目格式:
1. 5 + (3 * 8) = ?
2. √(36) * 4 + 7 = ?
3. sin(30°) + 15 * 3 = ?