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
软件2302班_杨逸轩_个人项目 - 中小学数学卷子自动生成程序
一、项目概览
本项目是一个命令行程序,旨在为小学、初中、高中不同年级的用户自动生成数学试卷。程序实现了用户登录、根据账户类型生成指定数量的题目、题目查重、以及按用户账户保存卷子等核心功能。所有账户信息和已生成题目都通过一个轻量级的 SQLite 数据库进行持久化管理,确保数据的稳定性和查重的高效性。
二、核心功能
- 用户认证与退出: 程序通过命令行接收用户名和密码。除了标准的登录流程,用户还可以在登录界面输入
-2随时退出程序。 - 智能题目生成:
- 小学: 题目只包含
+ - * /和(),并内置了鲁棒的校验逻辑,确保答案为非负整数,且不会出现除零错误。 - 初中/高中: 题目操作数范围调整为
1-5。如果只有一个操作数,程序会直接对其进行开方、平方或三角函数运算,而不是生成带+ - * /的表达式。
- 小学: 题目只包含
- 高效题目查重: 所有老师(用户)已生成的题目都会被记录到中央数据库中。每次生成新题目时,程序会查询该用户的历史题目,确保不会生成重复的题目。
- 命令行交互: 用户可以通过输入
-1退出当前账户,或使用“切换为 XX”(注意切换为后有一个空格)命令来切换题目类型,程序会进行严格的格式校验。 - 文件保存: 自动生成的试卷会保存在
papers/<用户名>/目录下,并以年-月-日-时-分-秒.txt的格式命名。
三、项目目录结构
个人项目/
├── src/
│ ├── main.py # 程序主入口和命令行交互逻辑
│ └── questions.py # 题目生成模块
├── doc/
│ └── README.md # 项目说明文档
└── papers/ # 自动生成的试卷保存目录 (无需提交该目录)
四、运行环境与安装
- 运行环境: Python 3.8 或更高版本。
- 依赖: 本项目仅使用 Python 标准库,无需安装任何额外依赖。
- 启动: 在终端中,进入
src目录的上层,执行以下命令即可启动程序:python3 src/main.py或python src/main.py
五、使用说明(交互流程)
- 启动程序:运行上述命令后,程序将自动初始化数据库并提示登录。
- 登录:输入用户名和密码,例如:
张三1 123,或输入-2退出。 - 生成题目:登录成功后,输入
10-30之间的整数来指定题目数量。 - 切换类型:在登录状态下,输入
切换为 初中或切换为 高中来更改题目类型。 - 退出登录:输入
-1即可退出当前账户,返回登录界面。
六、说明与优化
本项目在开发过程中,为了提升程序的鲁棒性和易用性,对部分需求进行了优化:
- 查重机制: 采用 SQLite 数据库进行集中式查重,相比于通过读取文件进行查重,此方法更为高效、可靠,且不受文件误删等影响。
- 题目生成: 初中和高中题目新增了对单操作数表达式的生成,使其更符合实际教学场景。
- 代码解耦: 重构了题目生成模块,将不同难度的题目生成逻辑封装在各自的类中。使得代码职责更清晰,易于维护和扩展。例如,未来如果需要添加“大学”级别的题目,只需新增一个
UniversityQuestionGenerator类,而无需修改现有代码。