初始化仓库:plan_execute
Go to file
root febb8b7e9a Merge pull request '推送代码工程a' (#2) from 20260506-135259 into main
Reviewed-on: #2
2026-05-06 05:58:14 +00:00
app 生成代码工程 2026-05-06 13:42:33 +08:00
include 推送代码工程 2026-05-06 13:54:41 +08:00
src 推送代码工程 2026-05-06 13:54:41 +08:00
tests 推送代码工程 2026-05-06 13:54:41 +08:00
.gitignore Initial commit: 项目初始化 2026-05-06 13:03:08 +08:00
CMakeLists.txt 推送代码工程 2026-05-06 13:54:41 +08:00
README.md 推送代码工程 2026-05-06 13:54:41 +08:00
events.ndjson 推送代码工程 2026-05-06 13:54:41 +08:00
requirements.txt 生成代码工程 2026-05-06 13:42:33 +08:00

README.md

Todo Manager - C++ 命令行版

将 Python Todo ManagerPyQt5 桌面版)转换为 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 零外部依赖