1.解决记录员工任务的问题
2.保证员工的进度可以同步到项目组长
3.保证项目按照计划进行以及及时调整
点击空白处退出提示
1.解决记录员工任务的问题
2.保证员工的进度可以同步到项目组长
3.保证项目按照计划进行以及及时调整
1. 添加任务
此功能允许用户向系统中录入新的工作任务。用户需要依次输入任务ID(整数)、任务名称(字符串)以及被分配员工的姓名(字符串)。系统会将这些信息封装成一个新的节点,并使用栈的“压入”操作将其放置在任务栈的顶部,确保最新的任务总是最先被处理。添加成功后,界面会立即回显该任务的详细信息以确认录入正确。
2. 完成最新任务
此功能用于标记并移除最近添加的一项任务,模拟实际工作中的“完成”操作。系统会检查任务栈是否为空,若非空,则自动获取栈顶(即最新添加)的任务节点,将其ID、名称和负责人信息展示给用户作为完成确认,随后将该节点从栈中弹出并释放其内存。这体现了“后进先出”的处理逻辑,适用于需要逐项回溯完成的任务流。
3. 显示所有任务
此功能以清晰、格式化的列表形式展示当前系统中所有未完成的任务。遍历从栈顶(最新任务)开始,依次输出到栈底(最旧任务),为每项任务编号并详细列出其任务ID、具体名称和指派员工。该视图让管理者能够一目了然地掌握所有工作的堆积状态、最新进展以及责任分配情况,便于进行整体监督和协调。
4. 退出
此功能负责安全地终止整个任务管理程序的运行。在用户选择退出后,程序会首先释放任务栈中所有动态分配的节点内存,防止内存泄漏,确保资源被正确回收。随后,向用户显示感谢使用的友好告别信息,并结束主循环,最终关闭应用程序。这保证了程序有一个完整、严谨的结束流程。
1.我在本项目中负责实现整个任务管理系统的核心功能,包括设计并实现栈数据结构、节点类、任务数据的存储与操作、用户界面的交互逻辑、以及系统的整体流程控制。具体任务包括:
设计 Node 类,用于存储任务ID、任务名称、分配员工等任务信息;
实现 Stack 类,提供 push、pop、display、isEmpty 等栈操作;
编写菜单系统,实现用户交互界面;
在主函数中集成所有功能,实现任务的添加、完成、展示和退出;
实现内存管理,确保动态分配的节点在程序结束前正确释放;
设计并实现系统的输入验证和错误提示机制。
2.技术栈:
C++ 语言
面向对象编程(OOP)
链表实现的栈数据结构
标准输入输出流(iostream)
3.架构:
采用 Node 类表示任务节点,包含任务信息和指向下一个节点的指针;
使用 Stack 类封装栈操作,内部使用链表结构存储节点;
主程序通过循环菜单驱动用户交互,调用栈类方法实现功能。
4.实现亮点:
使用链表实现栈,动态内存管理灵活;
界面友好,每一步操作都有明确提示和反馈;
支持任务信息的完整展示,包括ID、名称、负责人;
实现了栈的完整功能(入栈、出栈、遍历、判空、获取大小);
程序结构清晰,模块化程度高,便于扩展和维护。
5.实现难点:
内存管理:需要确保 pop 操作和析构函数中正确释放节点内存,避免内存泄漏;
用户输入处理:使用 cin.ignore() 处理输入缓冲区,防止字符串输入时的换行符问题;
链表操作:在 push 和 pop 中正确处理头指针和节点链接;
界面与逻辑分离:将菜单显示与业务逻辑分离,提高代码可读性。




评论