|
|
4 months ago | |
|---|---|---|
| .. | ||
| README.md | 4 months ago | |
README.md
<<<<<<< HEAD 中小学数学卷子自动生成系统 项目简介 中小学数学卷子自动生成系统是一个基于C++开发的命令行应用程序,旨在帮助小学、初中和高中数学老师快速生成符合教学大纲要求的数学题目。系统支持题目查重、难度切换、文件保存等功能,严格遵循Google C++代码规范。
功能特性 用户认证系统 预设小学、初中、高中各三个教师账户
安全的用户名密码验证机制
自动识别用户类型并设置相应难度
题目生成能力 小学题目:包含加减乘除基本运算,操作数2-5个
初中题目:必须包含平方(?)或开根号(√)运算符,支持单操作数
高中题目:必须包含三角函数(sin/cos/tan),支持单操作数
智能查重:避免生成重复题目
交互功能 动态难度切换(小学/初中/高中)
题目数量控制(10-30题)
实时题目预览
用户友好的命令行界面
文件管理 按用户分文件夹存储
时间戳命名的文件格式(年-月-日-时-分-秒.txt)
题目编号和格式化输出
技术架构 类设计(面向对象)
QuestionGenerator(抽象基类) ├── PrimaryGenerator(小学题目生成器) ├── JuniorGenerator(初中题目生成器) └── SeniorGenerator(高中题目生成器)
核心管理类: ├── AuthManager(认证管理) ├── SessionManager(会话管理) ├── FileManager(文件管理)
设计模式 工厂模式:题目生成器的多态实现
单一职责原则:每个类专注特定功能
开放封闭原则:易于扩展新难度级别
安装与运行 环境要求 操作系统:Windows 10/11 或 Linux (WSL)
编译器:GCC 8.1.0+ 支持C++17
构建工具:直接使用g++ 直接编译 cd src g++ -Wall -Wextra -g3 -std=c++17 -pthread *.cpp -o ../output/main.exe 运行程序
chcp 65001 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 ./main.exe 使用指南 登录系统
===================================== 中小学数学卷子自动生成系统
请输入用户名和密码(格式:用户名 密码),或输入 quit 退出系统:
张三1 123
登录成功!当前选择为小学出题
===================================== 当前用户: 张三1 (小学老师) 当前出题类型: 小学
请选择操作:
生成题目(输入题目数量 10-30)
切换难度(输入:切换为小学/初中/高中)
退出登录(输入:-1)
15
测试账户
用户类型 用户名 密码 默认难度
小学 张三1, 张三2, 张三3 123 小学
初中 李四1, 李四2, 李四3 123 初中
高中 王五1, 王五2, 王五3 123 高中
? 题目示例
小学题目
3 + 5 × 2 = ?
24 ÷ 3 + 7 - 2 = ?
初中题目
√(16) + 5 = ?
4? × 3 - 2 = ?
√(25) = ? (单操作数)
高中题目
sin(30°) × 2 = ?
5 + cos(45°) - 1 = ?
tan(60°) = ? (单操作数)
项目结构
exam/ ├── src/ │ ├── main.cpp # 程序入口 │ ├── auth_manager.h/cpp # 认证管理 │ ├── question_generator.h/cpp # 题目生成基类 │ ├── primary_generator.h/cpp # 小学题目生成 │ ├── junior_generator.h/cpp # 初中题目生成 │ ├── senior_generator.h/cpp # 高中题目生成 │ ├── file_manager.h/cpp # 文件管理 │ └── session_manager.h/cpp # 会话管理 ├── exams/ # 生成的题目文件 │ ├── zhangsan1/ │ ├── lisi1/ │ └── wangwu1/ ├── Makefile # 编译配置 ├── doc/ │ ├──README.md # 项目说明 开发指南 代码规范 遵循Google C++代码规范
使用大驼峰命名法(类名)
成员变量以下划线结尾
包含详细的注释文档
扩展新功能 添加新难度级别:继承QuestionGenerator基类
修改题目规则:调整各生成器的算法参数
增强文件格式:修改FileManager的输出格式
编译选项
CXX = g++ CXXFLAGS = -std=c++17 -Wall -Wextra -I. LDFLAGS = -pthread 故障排除 常见问题 编译错误:确保GCC支持C++17,检查文件路径
文件权限:确保有创建目录和文件的权限
编码问题:系统使用UTF-8编码,确保终端支持中文显示
调试模式
未来规划 功能增强 图形用户界面(Qt版本)
题目难度分级(简单/中等/困难)
答案生成和批改功能
题目导出为PDF格式
网络协作和题目共享
技术优化 单元测试覆盖
性能优化和内存管理
跨平台兼容性增强
配置文件和个性化设置
开发流程 Fork本项目
创建功能分支(git checkout -b feature/AmazingFeature)
提交更改(git commit -m ‘Add some AmazingFeature’)
推送到分支(git push origin feature/AmazingFeature)
开启Pull Request
致谢 感谢所有为这个项目提供建议和帮助的贡献者!
开发者:软件2303班 郭永瑞 最后更新:2025年9月 版本:v1.0.0
中小学数学卷子自动生成系统 项目简介 中小学数学卷子自动生成系统是一个基于C++开发的命令行应用程序,旨在帮助小学、初中和高中数学老师快速生成符合教学大纲要求的数学题目。系统支持题目查重、难度切换、文件保存等功能,严格遵循Google C++代码规范。
功能特性 用户认证系统 预设小学、初中、高中各三个教师账户
安全的用户名密码验证机制
自动识别用户类型并设置相应难度
题目生成能力 小学题目:包含加减乘除基本运算,操作数2-5个
初中题目:必须包含平方(?)或开根号(√)运算符,支持单操作数
高中题目:必须包含三角函数(sin/cos/tan),支持单操作数
智能查重:避免生成重复题目
交互功能 动态难度切换(小学/初中/高中)
题目数量控制(10-30题)
实时题目预览
用户友好的命令行界面
文件管理 按用户分文件夹存储
时间戳命名的文件格式(年-月-日-时-分-秒.txt)
题目编号和格式化输出
技术架构 类设计(面向对象)
QuestionGenerator(抽象基类) ├── PrimaryGenerator(小学题目生成器) ├── JuniorGenerator(初中题目生成器) └── SeniorGenerator(高中题目生成器)
核心管理类: ├── AuthManager(认证管理) ├── SessionManager(会话管理) ├── FileManager(文件管理)
设计模式 工厂模式:题目生成器的多态实现
单一职责原则:每个类专注特定功能
开放封闭原则:易于扩展新难度级别
安装与运行 环境要求 操作系统:Windows 10/11 或 Linux (WSL)
编译器:GCC 8.1.0+ 支持C++17
构建工具:直接使用g++ 直接编译
g++ -Wall -Wextra -g3 -std=c++17 -pthread *.cpp -o ..\output\main.exe 运行程序 main.exe会生成在output目录下 chcp 65001 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 ./main.exe 使用指南 登录系统
===================================== 中小学数学卷子自动生成系统
请输入用户名和密码(格式:用户名 密码),或输入 quit 退出系统:
张三1 123
登录成功!当前选择为小学出题
===================================== 当前用户: 张三1 (小学老师) 当前出题类型: 小学
请选择操作:
生成题目(输入题目数量 10-30)
切换难度(输入:切换为小学/初中/高中)
退出登录(输入:-1)
15
测试账户
用户类型 用户名 密码 默认难度
小学 张三1, 张三2, 张三3 123 小学
初中 李四1, 李四2, 李四3 123 初中
高中 王五1, 王五2, 王五3 123 高中
? 题目示例
小学题目
3 + 5 × 2 = ?
24 ÷ 3 + 7 - 2 = ?
初中题目
√(16) + 5 = ?
4? × 3 - 2 = ?
√(25) = ? (单操作数)
高中题目
sin(30°) × 2 = ?
5 + cos(45°) - 1 = ?
tan(60°) = ? (单操作数)
? 项目结构
exam/ ├── src/ │ ├── main.cpp # 程序入口 │ ├── auth_manager.h/cpp # 认证管理 │ ├── question_generator.h/cpp # 题目生成基类 │ ├── primary_generator.h/cpp # 小学题目生成 │ ├── junior_generator.h/cpp # 初中题目生成 │ ├── senior_generator.h/cpp # 高中题目生成 │ ├── file_manager.h/cpp # 文件管理 │ └── session_manager.h/cpp # 会话管理 ├── exams/ # 生成的题目文件 │ ├── zhangsan1/ │ ├── lisi1/ │ └── wangwu1/ ├── Makefile # 编译配置 ├── doc/ │ ├──README.md # 项目说明 开发指南 代码规范 遵循Google C++代码规范
使用大驼峰命名法(类名)
成员变量以下划线结尾
包含详细的注释文档
扩展新功能 添加新难度级别:继承QuestionGenerator基类
修改题目规则:调整各生成器的算法参数
增强文件格式:修改FileManager的输出格式
编译选项
CXX = g++ CXXFLAGS = -std=c++17 -Wall -Wextra -I. LDFLAGS = -pthread 故障排除 常见问题 编译错误:确保GCC支持C++17,检查文件路径
文件权限:确保有创建目录和文件的权限
编码问题:系统使用UTF-8编码,确保终端支持中文显示
调试模式
未来规划 功能增强 图形用户界面(Qt版本)
题目难度分级(简单/中等/困难)
答案生成和批改功能
题目导出为PDF格式
网络协作和题目共享
技术优化 单元测试覆盖
性能优化和内存管理
跨平台兼容性增强
配置文件和个性化设置
开发流程 Fork本项目
创建功能分支(git checkout -b feature/AmazingFeature)
提交更改(git commit -m ‘Add some AmazingFeature’)
推送到分支(git push origin feature/AmazingFeature)
开启Pull Request
致谢 感谢所有为这个项目提供建议和帮助的贡献者!
开发者:软件2303班 郭永瑞 最后更新:2025年9月 版本:v1.0.0