Reviewed-on: #2 |
||
|---|---|---|
| app | ||
| include | ||
| src | ||
| tests | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md | ||
| events.ndjson | ||
| requirements.txt | ||
README.md
Todo Manager - C++ 命令行版
将 Python Todo Manager(PyQt5 桌面版)转换为 C++ 命令行工程。
保留核心业务能力:任务创建、查询、更新、删除,以及 JSON 文件持久化。
技术栈
- 语言: C++17
- 构建工具: CMake 3.14+
- 持久化: 纯手写简易 JSON 解析器(零外部依赖)
- 测试: 标准库
assert(零外部依赖)
工程结构
codegen-runs/codegen_9ecc529e4d094130b0491b9d389ef836/
├── CMakeLists.txt # CMake 构建配置
├── README.md # 本文件
├── include/
│ └── app.hpp # TodoItem / TodoService 公开声明
├── src/
│ ├── app.cpp # TodoService 实现 + JSON 解析器
│ └── main.cpp # 命令行交互入口
├── tests/
│ └── basic_test.cpp # 单元测试(assert)
└── todos.json # 运行时自动生成的数据文件
本地编译与运行
前置条件
- CMake 3.14 或更高版本
- 支持 C++17 的编译器(GCC 7+、Clang 5+、MSVC 2019+)
编译步骤
cd codegen-runs/codegen_9ecc529e4d094130b0491b9d389ef836
mkdir -p build && cd build
cmake ..
cmake --build .
运行主程序
# Linux / macOS
./todo_manager
# Windows
todo_manager.exe
程序启动后显示交互菜单:
===== Todo Manager =====
1. 列出所有任务
2. 添加任务
3. 编辑任务
4. 删除任务
5. 退出
请选择 (1-5):
运行测试
# 在 build 目录下
./basic_test
测试通过时会输出:
✓ test_create_and_list passed
✓ test_get_by_id passed
✓ test_update passed
✓ test_delete passed
✓ test_persistence passed
✓ ✓ ✓ 所有测试通过!
与 Python 原版的差异
| 特性 | Python 原版 | C++ 版 |
|---|---|---|
| 用户界面 | PyQt5 桌面窗口 | 命令行交互菜单 |
| 数据校验 | Pydantic BaseModel | C++ 结构体 + 运行时检查 |
| JSON 解析 | 标准库 json 模块 | 手写简易递归下降解析器 |
| 测试框架 | pytest + httpx | 标准库 assert |
| 持久化文件 | todos.json | todos.json(格式兼容) |
| 外部依赖 | PyQt5, Pydantic, pytest, httpx | 零外部依赖 |