楼层: 首页/ 软件技术/ 现代 C++/ 小项目:现代 C++ 任务管理器
12

小项目:现代 C++ 任务管理器

Mini Project — Task Manager

对比上一页 C 的学生管理系统,你会发现现代 C++ 写同样的东西代码短了一大半,还不用手动管内存。下面用 vector 存任务、用智能指针、用 lambda 排序、用文件持久化。

项目骨架:vector + struct + 文件 + lambda 排序

#include <vector> #include <string> #include <algorithm> #include <fstream> #include <iostream> struct Task { std::string title; int priority; // 数字越小越急 bool done = false; }; int main() { std::vector<Task> tasks; tasks.push_back({"买牛奶", 2}); tasks.push_back({"交报告", 1}); tasks.push_back({"遛狗", 3}); // 用 lambda 按优先级排序 std::sort(tasks.begin(), tasks.end(), [](const Task& a, const Task& b) { return a.priority < b.priority; }); // 打印 for (const auto& t : tasks) std::cout << "[" << t.priority << "] " << t.title << "\n"; // 持久化到文件(vector 自动管理内存,不用 free) std::ofstream out("tasks.txt"); for (const auto& t : tasks) out << t.priority << " " << t.title << "\n"; }

运行结果

[1] 交报告 [2] 买牛奶 [3] 遛狗

练扩展作业

① 加一个"后台提醒线程":用 std::thread 睡几秒后提醒未完成任务。② 用 std::unique_ptr<Task> 管理任务指针。③ 用 std::format 替换 cout 拼接。④ 加命令行菜单(增删改查)。做完你就把 OOP、STL、智能指针、并发全过了一遍。