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.
|
|
4 months ago | |
|---|---|---|
| .. | ||
| readme.md | 4 months ago | |
readme.md
结对项目
带UI的小初高数学学习软件
项目简介
基于 Python 开发的跨平台桌面应用程序,专为小学、初中和高中学生设计,提供个性化的数学练习体验。
核心特性
- 三个学习阶段:小学 / 初中 / 高中 不同难度数学题
- 邮箱验证注册:通过邮箱获取注册码完成注册
- 安全密码管理:密码强度验证与修改功能
- 智能出题系统:自动生成不重复的选择题试卷
- 实时评分系统:即时反馈学习成果
- 本地数据存储:无需数据库,使用文件系统存储数据
系统要求
| 需求 | 版本/说明 |
|---|---|
| Python | ≥ 3.8(64 位) |
| 操作系统 | Windows 10/11 / macOS 10.14+ / Linux Ubuntu 18.04+ |
安装与运行
环境配置
- 克隆或下载代码到本地
- 确保安装 Python 3.8 或更高版本
启动程序
方法一
在项目根目录运行:
python src/main.py
方法二
直接下载运行我们给出的exe文件,无需自己进行环境配置
项目结构
src/
├── main.py # 程序入口点
├── models/ # 数据模型层
│ └── appuser.py # 用户模型
├── views/ # 视图层
│ ├── base_view.py # 基础视图类
│ ├── login_view.py # 登录界面
│ ├── register_view.py # 注册界面
│ ├── main_view.py # 主选择界面
│ └── setpassword_view.py # 设置密码界面
├── controllers/ # 控制层
│ ├── paper_controller.py # 试卷控制器
│ └── user_controller.py # 用户控制器
├── services/ # 服务层
│ ├── paper_service.py # 试卷服务
│ ├── question_service.py # 题目生成服务
│ └── email_service.py # 邮件服务
└── data/ # 数据存储目录
└── user_data.json # 用户信息储存
技术特性
- 邮箱和用户名是否存在检测,防止重名或多次注册
- 注册过程实时监测邮箱,防止用户输入注册码后又单独对邮箱进行更改
- 错误选项以正确选项为中心随机生成,干扰性大
- 题目去重:同一张试卷不会出现重复题目
- 运算符权重随机化
- 自动括号生成
- 整除校验(小学难度)
- 时间戳文件名管理
预置测试账号
| 用户名 | 密码 | 是否注册 |
|--------|------|------|
| 1 | 1 | true |
注:内置账号为了测试方便未遵循邮箱密码格式,实际通过注册功能新增的用户必须给出有效的邮箱地址和合规密码
扩展开发
继承 BasePaperManager 类并实现相应方法即可新增题目难度或类型。
注意事项
- 所有用户数据存储在本地
data/目录,第一次运行时自动在程序文件所在根目录生成 - 生成的试卷保存在
papers/{用户名}/目录 - 程序无需数据库支持