开发一个命令行界面的任务管理系统,允许用户添加、删除、查看和管理他们的待办事项。该系统将涵盖以下功能:
- 添加任务:用户可以添加新的待办任务,包含任务描述、优先级和截止日期。
- 删除任务:用户可以根据任务ID删除指定的任务。
- 查看任务:用户可以查看所有任务,按优先级或截止日期排序。
- 更新任务:用户可以更新任务的详细信息。
- 数据持久化:任务数据将保存在本地文件中,以便在程序重启后仍能保留数据。
- 日志记录:系统将记录用户的操作日志,使用单例模式实现日志系统。
- 扩展性:采用CRTP模式实现基础命令接口,方便未来扩展更多命令。
- 主程序( main.cpp ):处理用户输入和命令调用。
- 任务管理模块( Task.h , TaskManager.h , TaskManager.cpp ):负责任务的创建、删除、更新和查询。
- 日志系统( Logger.h , Logger.cpp ):使用单例模式实现日志记录。
- 命令接口( Command.h , Command.cpp ):采用CRTP模式实现命令的基础接口和具体命令类。
- 数据持久化( DataStore.h , DataStore.cpp ):负责将任务数据保存到文件和从文件加载数据。
使用cmake进行多文件的编译, CMakeLists.txt编写如下:
cmake_minimum_required(VERSION 3.10)
project(LogSystem)
add_executable(LogSystem main.cpp Logger.cpp TaskManager.cpp)
Tue Sep 16 20:03:24 2025
: 任务文件不存在,开始新建。
Tue Sep 16 20:07:24 2025
: 添加任务: ID: 1, 描述: 完成项目报告, 优先级: 1, 截止日期: 2025-07-08
Tue Sep 16 20:07:24 2025
: 保存任务成功。
Tue Sep 16 20:08:03 2025
: 添加任务: ID: 2, 描述: 完成系统测试, 优先级: 2, 截止日期: 2025-09-22
Tue Sep 16 20:08:03 2025
: 保存任务成功。
Tue Sep 16 20:09:17 2025
: 更新前任务: ID: 2, 描述: 完成系统测试, 优先级: 2, 截止日期: 2025-09-22
Tue Sep 16 20:09:17 2025
: 更新后任务: ID: 2, 描述: 完成系统测试, 优先级: 1, 截止日期: 2025-08-29
Tue Sep 16 20:09:17 2025
: 保存任务成功。
Tue Sep 16 20:10:12 2025
: 删除任务: ID: 1, 描述: 完成项目报告, 优先级: 1, 截止日期: 2025-07-08
Tue Sep 16 20:10:12 2025
: 保存任务成功。