[SYSU实训] Agenda

本项目旨在开发一个基于命令行的议程管理系统,采用面向对象编程技术实现用户管理和会议安排等功能,涵盖用户登录、账户管理及会议操作等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目简介:

开发一个基于命令行的议程管理系统。系统需提供用户登录,新用户注册,已注册用户登陆后用户可以注销(delete)当前用户账户,查询(query)用户名单,也可以添加(add)、删除(delete)、查询(query)系统中记录的会议安排等管理功能。

在这个案例中,利用面向对象程序的设计和实现技术,按用户需求对整个程序框架进行设计和实现,并逐步完成基本和扩展功能。通过此项目掌握在Linux环境下进行代码编写、程序调试和测试的基本知识,让学生初步了解面向对象编程的过程、初步了解三层架构UML图的含义,加强C++编程能力等技能。

 

阶段任务简介:

阶段一: 实现三层架构中的数据访问层,根据UML类图实现Date 类,User 类,Meeting 类,Storage类的代码,管理并持久化实体数据(用Json存储数据)

阶段二:实现三层架构中的业务逻辑层和UI访问层,编写AgendaService,AgendaUI部分的代码,根据需求,实现应用程序功能逻辑设计,根据UML设计,实现人机交互编程,使用Makefile 编译出可执行的测试


部分类图:





难点:


1.  lambda函数

与普通函数最大的区别是,除了可以使用参数以外,Lambda函数还可以通过捕获列表访问一些上下文中的数据。


(1)桥梁作用,两边传参。定义在逻辑层,调用在数据层(传参数给逻辑层),捕获UI层传来的数据



(2)假设你设计了一个地址簿的类。现在你要提供函数查询这个地址簿,可能根据姓名查询,可能根据地址查询,还有可能两者结合。所以你应该提供一个接口,能方便地让用户自定义自己的查询方式(在逻辑层自定义方式)。在这里可以使用lambda函数来实现这个功能。


比如:逻辑层:





2. 三层架构

传送门






项目源码:https://github.com/cajet/SYSU_Agenda



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值