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.

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 = ?