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

中小学数学卷子自动生成系统 - 项目说明文档

项目概述

本项目是一个基于 Java 开发的中小学数学卷子自动生成系统,为不同学段的数学教师提供智能化的题目生成和试卷管理服务。系统支持小学、初中和高中三个难度级别,具备完整的用户认证、题目生成、历史记录和文件管理功能。

系统架构

核心类设计

类名 职责描述
Main 程序主入口,负责用户交互和流程控制
User 用户实体类,存储用户信息和权限
DifficultyLevel 难度级别枚举,定义小学、初中、高中三个等级
QuestionGenerator 题目生成器,根据难度生成不同类型的数学题目
QuestionPaper 试卷类,管理题目集合和格式化输出
FileManager 文件管理器,负责试卷的保存和目录管理

类关系图

User → DifficultyLevel
    ↓
Main → QuestionGenerator → QuestionPaper → FileManager

功能特性

1. 分层用户系统

  • 小学用户: 张三1, 张三2, 张三3 (密码: 123)
  • 初中用户: 李四1, 李四2, 李四3 (密码: 123)
  • 高中用户: 王五1, 王五2, 王五3 (密码: 123)

2. 智能题目生成

  • 小学题目: 基础四则运算(+、-、×、÷),支持括号
  • 初中题目: 在小学基础上增加平方(²)和开根号(√)运算
  • 高中题目: 在初中基础上增加三角函数sin、cos、tan

3. 高级去重机制

  • 实时检测当前会话中已生成的题目
  • 自动加载用户历史题目并进行去重检查
  • 防止题目重复生成,确保试卷多样性

4. 灵活的操作模式

  • 支持动态切换难度级别("切换为小学/初中/高中"
  • 题目数量可配置10-30题
  • 支持用户退出重新登录(输入-1

5. 智能文件管理

  • 按用户名分目录存储试卷文件
  • 时间戳命名格式:yyyy-MM-dd-HH-mm-ss.txt
  • 自动创建目录结构,确保文件组织有序

核心算法说明

题目生成策略

// 基础题目生成
private String generateBasicQuestion(int operandCount, String[] operators, boolean useParentheses)

// 难度特定增强
private String addPowerOrRoot(String originalQuestion)      // 初中:平方/开根
private String addTrigonometricFunction(String originalQuestion) // 高中:三角函数

去重算法

// 双重检查机制
while (generatedQuestions.contains(question) || userHistoryQuestions.contains(question)) {
    // 重新生成题目
}

使用指南

启动程序

java Main

操作流程示例

  1. 用户登录

    请输入用户名和密码(用空格隔开):
    张三1 123
    当前选择为小学出题
    
  2. 生成试卷

    准备生成小学数学题目,请输入生成题目数量(输入-1将退出当前用户重新登录:
    15
    试卷已保存至: papers/张三1/2025-09-28-14-30-25.txt
    已生成15道小学数学题目
    
  3. 切换难度

    切换为初中
    准备生成初中数学题目,请输入生成题目数量
    
   
4. **退出系统**
   

-1 请输入用户名和密码(用空格隔开):


## 文件存储结构

项目根目录/ ├── papers/ # 试卷存储根目录 │ ├── 张三1/ # 用户个人目录 │ │ ├── 2025-01-20-10-15-30.txt │ │ └── 2025-01-20-14-20-45.txt │ ├── 李四1/ │ │ └── 2025-01-20-11-25-10.txt │ └── 王五1/ │ └── 2025-01-20-09-10-20.txt ├── DifficultyLevel.java ├── FileManager.java ├── Main.java ├── QuestionGenerator.java ├── QuestionPaper.java └── User.java


## 技术特色

### 1. 面向对象设计
- 清晰的类职责分离
- 枚举类型管理难度级别
- 实体类封装核心数据

### 2. 算法优化
- 智能题目生成,确保符合难度要求
- 高效去重算法,避免重复题目
- 随机数合理分布,保证题目多样性

### 3. 用户体验
- 中文界面,操作直观
- 实时反馈,错误提示明确
- 历史记录持久化,跨会话保持

### 4. 健壮性保障
- 输入验证和异常处理
- 文件操作安全可靠
- 内存管理优化

## 扩展性设计

系统采用模块化设计,便于后续扩展:
- 可轻松添加新的难度级别
- 支持扩展新的数学运算类型
- 文件存储格式易于解析和处理
- 用户管理系统可集成数据库

## 环境要求

- **JDK版本**: 17
- **编码格式**: UTF-8
- **操作系统**: Windows
- **存储空间**: 至少 10MB 可用空间

---

*本系统专为中小学数学教育设计,致力于为教师提供高效、便捷的试卷生成工具。