1、删除联系人
功能描述:按照姓名进行删除指定联系人
删除联系人实现步骤:
●封装检测联系人是否存在
●封装删除联系人函数
●测试删除联系人功能
1.1封装检测联系人是否存在
设计思路:
删除联系人前,我们需要先判断用户输入的联系人是否存在,如果存在删除,不存在提示用户没有要删除的联系人
因此我们可以把检测联系人是否存在封装成一个函数中, 如果存在,返回联系人在通讯录中的位置,不存在返回-1

//检测联系人是否存在,如果存在,返回联系人所在数组中的具体位置,不存在返回-1
//参数1 通讯录参数2 对比姓名
int isExist(Addressbooks * abs, string name) {for (int i = 0; i < abs ->m_Size; i++){//找到了if (abs->personArray[i].m_Name == name){return i;}}//没有找到返回-1return -1;
}
int main() {//创建通讯录结构体变量Addressbooks abs;//初始化通讯录中当前人员个数abs.m_Size = 0;int select = 0;//创建用户选择输入菜单的变量while (true){showMenu();cin >> select;switch (select){case 1:            //1、添加联系人addPerson(&abs);  //利用地址传递可以修饰形参break;case 2:            //2、显示联系人showPerson(&abs);break;case 3:            //3、删除联系人{cout << "请输入删除联系人姓名 : " << endl;string name;cin >> name;if (isExist(&abs, name) == -1){cout << " 查无此人" << endl;}else{cout << "找到此人" << endl;}}break;case 4:            //4、查找联系人break;case 5:            //5、修改联系人break;case 6:            //6、清空联系人break;case 0:            //0、退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");}

测试

1.2封装删除联系人函数
根据用户输入的联系人判断该通讯录中是否有此人
查找到进行删除,并提示删除成功
查不到提示查无此人。

//3、删除指定联系人
void deletePerson(Addressbooks * abs){cout << " 请输入您要删除的联系人" << endl;string name;cin >> name;//ret == -1未查到 .//ret != -1查到 了int ret = isExist(abs,name);if (ret != -1) {// 查找到人,要进行删除操作for (int i = ret; i < abs->m_Size; i++) {//数据前移abs->personArray[i] = abs->personArray[i + 1];}abs->m_Size--; //更新通讯录中的人员数cout << "删除成功" <<endl;}else {cout << "未找到此人" << endl;}system("pause");system("cls");}
int main() {//创建通讯录结构体变量Addressbooks abs;//初始化通讯录中当前人员个数abs.m_Size = 0;int select = 0;//创建用户选择输入菜单的变量while (true){showMenu();cin >> select;switch (select){case 1:            //1、添加联系人addPerson(&abs);  //利用地址传递可以修饰形参break;case 2:            //2、显示联系人showPerson(&abs);break;case 3:            //3、删除联系人/**{cout << "请输入删除联系人姓名 : " << endl;string name;cin >> name;if (isExist(&abs, name) == -1){cout << " 查无此人" << endl;}else{        cout << "找到此人" << endl;}}*/deletePerson(&abs);break;case 4:            //4、查找联系人break;case 5:            //5、修改联系人break;case 6:            //6、清空联系人break;case 0:            //0、退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");}

现在添加了一名联系人

删除成功:

是不是真的删除成功(当前记录为空):

C++ 通讯录设计(四)相关推荐

  1. 【读书笔记】简约至上-交互式设计四策略

    4月读的第一本书:简约至上-交互式设计四策略. 整理了一份思维导图: 转载于:https://www.cnblogs.com/brigth-9V/p/8856049.html

  2. 利用接口做参数,写个计算器,能完成加减乘除运算。 (1)定义一个接口Compute含有一个方法int computer(int n, int m)。 (2)设计四个类分

    代码 /*第二题:利用接口做参数,写个计算器,能完成加减乘除运算.(1)定义一个接口Compute含有一个方法int computer(int n, int m).(2)设计四个类分别实现此接口,完成 ...

  3. ITSM-CMDB数据库设计-四种方案任你选

    ITSM-CMDB数据库设计-四种方案任你选 来源 http://kiral.javaeye.com/blog/789467 最近在做CMDB的数据库设计方案,有4种方案,各有利弊,我选方案3,大家可 ...

  4. java设计四个按钮分别命名为,计算器 1.0

    小计算器 编写一个应用程序,有一个标题为"计算"的窗口,窗口的布局为FlowLayout布局. 设计四个按钮,分别命名为"加"."差".&q ...

  5. 四旋翼飞行器2——自己设计四旋翼飞行器的硬件准备和基础知识

    四旋翼飞行器2--自己设计四旋翼飞行器的硬件准备和基础知识 文章目录 四旋翼飞行器2--自己设计四旋翼飞行器的硬件准备和基础知识 DIY四轴需要准备什么零件 [基本原理与名词解释] 1.遥控器篇 什么 ...

  6. 简约至上 交互设计四策略 读书心得

    简约至上 交互设计四策略 --读书心得 大道致"简" 一.人喜欢的是简单.值得信赖.适应性强的产品 二.复杂的产品很难有可持续性 增加的功能越多,就越是不易发现真正对用户有价值的新 ...

  7. 简约至上:交互式设计四策略笔记

    一.用户分三种 (1)专家型用户 专家型用户愿意探索你的产品或服务,并且会给你提出各种改进建议.他们希望看到为他们量身定做的前所未有的技术.即便拿到的是一个从未见过的产品,他们也会摆出专家的态度.换句 ...

  8. php小小通讯录,2009年小学信息技术优质课一等奖教学设计四上《小小通讯录》...

    课    题 架起友谊之桥--好友通讯录 教学目标 知识 1.了解表格的基本构成 技能 1.能够通过菜单方式制作基本的二维表格 2.能在表格中输入内容 情感 1.培养学生的信息搜集和整理能力 2.能够 ...

  9. 单链表的应用---通讯录设计(数据结构课设)

    一.实验目的 1)熟悉并掌握线性表的逻辑结构.物理结构: 2)熟悉并掌握线性链表的存储结构.基本操作和具体函数的定义: 二.实验内容 设计一个含有多个菜单项的主菜单程序,然后再为这些菜单项配上相应的功 ...

最新文章

  1. 7 个小仙女花3年时间写了一本1200页的机器学习算法手册(限时开放下载)
  2. Effective C++ -- 构造析构赋值运算
  3. LeetCode Flatten a Multilevel Doubly Linked List(dfs)
  4. 比较重量 网易2016实习研发工程师编程题
  5. 银行营业网点管理系统——dao包(BaseDao)
  6. 性能测试在软件测试中的位置,性能测试的响应时间,你真的算对了吗?
  7. SpringBoot自动配置原理流程
  8. Java正则获取a标签href_正则表达式,同时获取a标签里的href,text 的值
  9. 想不到吧,这些都是 Go 语言的语法糖
  10. Redis:复制,第3部分——redis-py和Python中的Redi哨兵一起使用
  11. 优酷用户触达平台技术大揭秘
  12. 计算机科学与技术python方向_专业解读丨计算机科学与技术
  13. 【剑指 offer】(十八)—— 树的子结构
  14. NS3中路由协议分析【AODV理论分析】
  15. 温度传感器MLX90614的STM32驱动实现
  16. 任务调度的合理性 (25 分)
  17. Monkey King - 左偏树
  18. 用python绘制heatmap
  19. C# winform 实现微信二维码登录、第三方登录(已实现、附源码)
  20. 树莓派驱动数码管c 语言,0023 树莓派电脑控制单位数码管显示数字

热门文章

  1. java 窗体 源码_Java制作MDI窗体源代码
  2. kali 邮箱攻击_kali下邮件发送工具swaks入坑
  3. laravel 任务队列_laravel队列-让守护进程处理耗时任务
  4. 自学计算机软件及应用,[计算机软件及应用]JavaEE自学材料.pdf
  5. python 每天执行一次_python 定时器每天就执行一次的实现代码
  6. 【数据库】Mysql日期/时间相关函数汇总
  7. 【资讯】全球瞩目!无人驾驶真的来了!
  8. Luogu P1280 Niko的任务【线性dp】By cellur925
  9. java : nio 学习
  10. 一个带关闭按钮的Div窗口,很漂亮