Compare commits

...

3 Commits

@ -1,2 +0,0 @@
# self-project

@ -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/ 目录")

@ -0,0 +1,94 @@
# self-project
# 中小学数学试卷自动生成系统
## 项目简介
基于 Python 的跨平台命令行工具,支持:
- 小学 / 初中 / 高中 三个难度
- 自动生成不重复数学题(含根号、平方、三角函数)
- 自动保存到本地 `papers/{用户名}/` 目录
- 带括号随机化、整除校验、题目去重
## 依赖
| 需求 | 版本 |
| ---------- | ------------------------------------------ |
| **Python** | ≥ 3.864 位) |
| **操作系统** | 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
```
Loading…
Cancel
Save