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/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 diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..0847020 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,93 @@ +# 中小学数学试卷自动生成系统 + +## 项目简介 +基于 Python 的跨平台命令行工具,支持: +- 小学 / 初中 / 高中 三个难度 +- 自动生成不重复数学题(含根号、平方、三角函数) +- 自动保存到本地 `papers/{用户名}/` 目录 +- 带括号随机化、整除校验、题目去重 + +## 依赖 +| 需求 | 版本 | +| ---------- | ------------------------------------------ | +| **Python** | ≥ 3.8(64 位) | +| **操作系统** | Windows / macOS / Linux | +| **第三方库** | **无**(使用标准库:random、datetime、os、typing、abc) 仅当需要运行build.py生成.exe可执行文件时需要安装pyinstaller| + + +## 快速开始 +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 排除规则 +``` + +## 预置账号 +| 用户名 | 密码 | 难度 | +|--------|------|------| +| 张三1 | 123 | 小学 | +| 张三2 | 123 | 小学 | +| 张三3 | 123 | 小学 | +| 李四1 | 123 | 初中 | +| 李四2 | 123 | 初中 | +| 李四3 | 123 | 初中 | +| 王五1 | 123 | 高中 | +| 王五2 | 123 | 高中 | +| 王五3 | 123 | 高中 | + +## 核心类图 +```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 +``` + + + 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