From 5e0650109b01b6380f8bebaa71ba3d094f206d6f Mon Sep 17 00:00:00 2001 From: clumxc <2088043998@qq.com> Date: Sun, 28 Sep 2025 20:32:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=E6=95=B4=E7=90=86=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E5=B9=B6=E7=94=9F=E6=88=90=E5=8F=AF=E6=89=A7=E8=A1=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 - doc/README.md | 40 +++++++++++++++++++ MainSystem.py => src/MainSystem.py | 0 paper_manager.py => src/paper_manager.py | 0 .../question_generator.py | 0 user.py => src/user.py | 0 6 files changed, 40 insertions(+), 2 deletions(-) delete mode 100644 README.md create mode 100644 doc/README.md rename MainSystem.py => src/MainSystem.py (100%) rename paper_manager.py => src/paper_manager.py (100%) rename question_generator.py => src/question_generator.py (100%) rename user.py => src/user.py (100%) diff --git a/README.md b/README.md deleted file mode 100644 index fadf15f..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# self-project - diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..c06aeba --- /dev/null +++ b/doc/README.md @@ -0,0 +1,40 @@ +# self-project +# 中小学数学卷子自动生成系统 + +## 项目简介 + +一个基于Python的命令行应用程序,用于为小学、初中和高中教师自动生成数学试卷。系统支持不同难度级别的题目生成、题目去重、用户管理和试卷保存功能。 + +## 功能特性 + +- **多用户支持**:预设小学、初中、高中各3个教师账号 +- **难度分级**:根据学段生成相应难度的数学题目 +- **题目去重**:确保同一教师的题目不重复 +- **自动保存**:按时间戳生成试卷文件 +- **灵活切换**:支持登录后切换题目难度 + +## 系统要求 + +### 运行可执行文件 +- **Windows**: Windows 7/8/10/11 (x64) +- **内存**: 至少 512MB 可用内存 +- **磁盘空间**: 至少 50MB 可用空间 + +### 运行源代码 +- **Python**: 3.6 或更高版本 +- **操作系统**: Windows / Linux / macOS + +## 快速开始 + +### 方法一:使用可执行文件(推荐普通用户) + +#### Windows 平台 +1. 从 Release页面 下载 `数学试卷生成系统-windows.exe` +2. 双击运行即可 +3. 无需安装Python或其他依赖 + +#### Linux 平台 +1. 从 Release页面 下载 `数学试卷生成系统-linux` +2. 添加执行权限: + ```bash + chmod +x 数学试卷生成系统-linux diff --git a/MainSystem.py b/src/MainSystem.py similarity index 100% rename from MainSystem.py rename to src/MainSystem.py diff --git a/paper_manager.py b/src/paper_manager.py similarity index 100% rename from paper_manager.py rename to src/paper_manager.py diff --git a/question_generator.py b/src/question_generator.py similarity index 100% rename from question_generator.py rename to src/question_generator.py diff --git a/user.py b/src/user.py similarity index 100% rename from user.py rename to src/user.py -- 2.34.1 From 1b2f0acf8c0444413aa42e3c3aa29b9ff39bbe69 Mon Sep 17 00:00:00 2001 From: clumxc <2088043998@qq.com> Date: Sun, 28 Sep 2025 20:37:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E6=95=B4=E7=90=86=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 build.py diff --git a/build.py b/build.py new file mode 100644 index 0000000..567155a --- /dev/null +++ b/build.py @@ -0,0 +1,18 @@ +import PyInstaller.__main__ +import os + +# 打包配置 +files = ['user.py', 'paper_manager.py', 'question_generator.py'] +add_data_args = [f'--add-data=src/{f};.' for f in files] + +PyInstaller.__main__.run([ + 'src/MainSystem.py', + '--onefile', + '--console', + '--name=数学试卷生成系统', + '--clean', + '--noconfirm', + *add_data_args # 包含所有源文件 +]) + +print("打包完成!可执行文件在 dist/ 目录") \ No newline at end of file -- 2.34.1 From c833a6e438bf92d4b39e47013f5e2643f1f2305d Mon Sep 17 00:00:00 2001 From: clumxc <2088043998@qq.com> Date: Sun, 28 Sep 2025 21:24:48 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E7=BC=96=E5=86=99=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/README.md | 109 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 81 insertions(+), 28 deletions(-) diff --git a/doc/README.md b/doc/README.md index c06aeba..0847020 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,40 +1,93 @@ -# self-project -# 中小学数学卷子自动生成系统 +# 中小学数学试卷自动生成系统 ## 项目简介 +基于 Python 的跨平台命令行工具,支持: +- 小学 / 初中 / 高中 三个难度 +- 自动生成不重复数学题(含根号、平方、三角函数) +- 自动保存到本地 `papers/{用户名}/` 目录 +- 带括号随机化、整除校验、题目去重 -一个基于Python的命令行应用程序,用于为小学、初中和高中教师自动生成数学试卷。系统支持不同难度级别的题目生成、题目去重、用户管理和试卷保存功能。 +## 依赖 +| 需求 | 版本 | +| ---------- | ------------------------------------------ | +| **Python** | ≥ 3.8(64 位) | +| **操作系统** | Windows / macOS / Linux | +| **第三方库** | **无**(使用标准库:random、datetime、os、typing、abc) 仅当需要运行build.py生成.exe可执行文件时需要安装pyinstaller| -## 功能特性 -- **多用户支持**:预设小学、初中、高中各3个教师账号 -- **难度分级**:根据学段生成相应难度的数学题目 -- **题目去重**:确保同一教师的题目不重复 -- **自动保存**:按时间戳生成试卷文件 -- **灵活切换**:支持登录后切换题目难度 +## 快速开始 +1. 克隆或下载代码到本地 +2. 在项目根目录运行: +```bash +python MainSystem.py +``` +3. 按提示输入用户名、密码、题目数量即可生成试卷。 -## 系统要求 +## 目录结构 +``` +. +├── src/ # 源代码目录 +│ ├── MainSystem.py # 入口 & 主控 +│ ├── user.py # 用户实体 +│ ├── paper_manager.py # 抽象基类 & 公共功能 +│ └── question_generator.py +├── doc/ +│ └── README.md # 项目说明(本文件) +├── papers/ # 自动生成试卷(git 忽略) +│ +├── build.py # 一键打包脚本 +└── .gitignore # Git 排除规则 +``` -### 运行可执行文件 -- **Windows**: Windows 7/8/10/11 (x64) -- **内存**: 至少 512MB 可用内存 -- **磁盘空间**: 至少 50MB 可用空间 +## 预置账号 +| 用户名 | 密码 | 难度 | +|--------|------|------| +| 张三1 | 123 | 小学 | +| 张三2 | 123 | 小学 | +| 张三3 | 123 | 小学 | +| 李四1 | 123 | 初中 | +| 李四2 | 123 | 初中 | +| 李四3 | 123 | 初中 | +| 王五1 | 123 | 高中 | +| 王五2 | 123 | 高中 | +| 王五3 | 123 | 高中 | -### 运行源代码 -- **Python**: 3.6 或更高版本 -- **操作系统**: Windows / Linux / macOS +## 核心类图 +```mermaid +classDiagram + BasePaperManager <|-- PrimaryPaperGenerator + BasePaperManager <|-- JuniorPaperGenerator + BasePaperManager <|-- SeniorPaperGenerator + MainSystem *-- BasePaperManager + MainSystem *-- User +``` -## 快速开始 +## 特性列表 +- 题目去重(同用户历史试卷比对) +- 运算符权重随机 +- 自动加括号(概率可控) +- 整除校验(小学) +- 平方 / 平方根 / 三角函数(初高中) +- 时间戳文件名(Windows 安全) + + + +## 自定义规则 +继承 `BasePaperManager` 并实现: +```python +def get_operators(self) -> List[str]: ... +def generate_single_question(self) -> str: ... +``` +即可新增难度。 + + +## Git 忽略 +`.gitignore` 已包含: +``` +papers/ +__pycache__/ +*.pyc +``` -### 方法一:使用可执行文件(推荐普通用户) -#### Windows 平台 -1. 从 Release页面 下载 `数学试卷生成系统-windows.exe` -2. 双击运行即可 -3. 无需安装Python或其他依赖 -#### Linux 平台 -1. 从 Release页面 下载 `数学试卷生成系统-linux` -2. 添加执行权限: - ```bash - chmod +x 数学试卷生成系统-linux -- 2.34.1