现在开始第四、五、六个功能:查找、修改和删除联系人。

1、查找联系人

功能描述:按照姓名查看指定联系人信息。

查找联系人实现步骤

  • 封装查找联系人函数

  • 测试查找指定联系人

1.1 封装查找联系人函数

实现思路:判断用户指定的联系人是否存在,如果存在显示信息,不存在则提示查无此人。

查找联系人代码:

//4、查找指定联系人信息
void findPerson(Addressbooks * abs)
{cout << "请输入您要查找的联系人" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret != -1){cout << "姓名:" << abs->personArray[ret].m_Name << "\t";cout << "性别:" << abs->personArray[ret].m_Sex << "\t";cout << "年龄:" << abs->personArray[ret].m_Age << "\t";cout << "电话:" << abs->personArray[ret].m_Phone << "\t";cout << "住址:" << abs->personArray[ret].m_Addr << endl;}else{cout << "查无此人" << endl;}system("pause");system("cls");}

1.2 测试查找指定联系人

在switch case 语句中,case4里添加:

#include <iostream>
#include <string>using namespace std;#define MAX 1000 //最大人数int main() {
​int select = 0;
​while (true){showMenu();
​cin >> select;switch (select){case 1:  //添加联系人addPerson(&abs);break;case 2:  //显示联系人showPerson(&abs);break;case 3:  //删除联系人deletePerson(&abs);   break;case 4:  //查找联系人findPerson(&abs);break;case 5:  //修改联系人break;case 6:  //清空联系人break;case 0:  //退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}
​system("pause");
​return 0;
}

2、修改联系人

功能描述:按照姓名重新修改指定联系人。

修改联系人实现步骤

  • 封装修改联系人函数

  • 测试修改联系人功能

2.1 封装修改联系人函数

实现思路:查找用户输入的联系人,如果查找成功进行修改操作,查找失败提示查无此人。

//5、修改联系人
void modifyPerson(Addressbooks * abs)
{cout << "请输入您要修改的联系人: ";string name;cin >> name;int ret = isExist(abs, name);if (ret != -1){//修改对应的联系人//姓名string nameModify;cout << "请输入修改后的姓名:";cin >> nameModify;abs->personArray[ret].m_Name = nameModify;//性别int sex = 0;while (true){cout << "请输入修改后的性别(1: 男, 2: 女):";cin >> sex;if (sex == 1 || sex == 2){abs->personArray[ret].m_Sex = sex;break;}else{cout << "性别输入错误, 请重新输入!" << endl;}}//年龄cout << "请输入修改后的年龄:";int age = 0;while (true){cin >> age;if (age > 0 && age <= 130){abs->personArray[ret].m_Age = age;break;}else{cout << "年龄输入错误, 请重新输入!" << endl;}}//电话cout << "请输入修改后的电话:";string phone = "";cin >> phone;abs->personArray[ret].m_Phone = phone;//住址cout << "请输入修改后的住址:";string address = "";cin >> address;abs->personArray[ret].m_Addr = address;}else{cout << "查无此人!" << endl;}system("pause");system("cls");
}

2.2 测试修改联系人功能

在switch case 语句中,case 5里添加:

#include <iostream>
#include <string>using namespace std;#define MAX 1000 //最大人数int main() {
​int select = 0;
​while (true){showMenu();
​cin >> select;switch (select){case 1:  //添加联系人addPerson(&abs);break;case 2:  //显示联系人showPerson(&abs);break;case 3:  //删除联系人deletePerson(&abs);   break;case 4:  //查找联系人findPerson(&abs);break;case 5:  //修改联系人modifyPerson(&abs);break;case 6:  //清空联系人break;case 0:  //退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}
​system("pause");
​return 0;
}

实际测试效果:

3、清空联系人

功能描述:清空通讯录中所有信息。

清空联系人实现步骤:

  • 封装清空联系人函数

  • 测试清空联系人

3.1 封装清空联系人函数

实现思路: 将通讯录所有联系人信息清除掉,只要将通讯录记录的联系人数量置为0,做逻辑清空即可。

清空联系人代码:

//6、清空所有联系人
void cleanPerson(Addressbooks * abs)
{cout << "请确认是否要清空所有联系人 ? (0: 否, 1: 是)" << endl;int cleanPerson = 0;cin >> cleanPerson;if (cleanPerson){abs->m_Size = 0;   //将维护的联系人数量置为0,做逻辑清空操作cout << "通讯录已清空!" << endl;}else{cout << "暂不清空, 退出!" << endl;}system("pause");system("cls");return;
}

实际测试效果:

3.2 测试清空联系人

在switch case 语句中,case 6 里添加:

#include <iostream>
#include <string>using namespace std;#define MAX 1000 //最大人数int main() {
​int select = 0;
​while (true){showMenu();
​cin >> select;switch (select){case 1:  //添加联系人addPerson(&abs);break;case 2:  //显示联系人showPerson(&abs);break;case 3:  //删除联系人deletePerson(&abs);   break;case 4:  //查找联系人findPerson(&abs);break;case 5:  //修改联系人modifyPerson(&abs);break;case 6:  //清空联系人cleanPerson(&abs);break;case 0:  //退出通讯录cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}
​system("pause");
​return 0;
}

至此,通讯录管理系统完成!

转载:【C++零基础入门到实战就业教程|传智教育-哔哩哔哩】 https://b23.tv/joc5Gdb

C++ 个人通讯录管理系统(四)相关推荐

  1. c语言个人通讯录管理系统实验报告_C语言实现个人通讯录管理系统

    如何用c语言制作简易的个人通讯录管理系统?想必这是每一位初步学习c语言的同学需要解决的一个大问题.如何将这些数据类型不完全相同的数据元素存储并访问呢?采用结构体便能轻松解决这个问题! #include ...

  2. android运用 sqlite 实现简单的通讯录_大一新生作品:利用 C 语言实现quot;通讯录管理系统quot;,直言太简单...

    说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号.性别.籍贯.政治面貌.手机号.Q ...

  3. c语言3级菜单_大一新生作品:利用 C 语言实现quot;通讯录管理系统quot;,直言太简单...

    说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号.性别.籍贯.政治面貌.手机号.Q ...

  4. python通讯录管理系统 tk_通讯录管理系统课程设计

    按照惯例,一波课程设计走起~ 这次写的是通讯录管理系统,经过几番大修和N+1次小修之后BUG已经很少了~先来看看期间遇到的哪些问题吧: Qusetion 1:针对手机号的排序问题(即交换结构体) 2: ...

  5. C++ 通讯录管理系统实验报告

    [概述] 手机通讯录中的联系人的信息既可以存储在手机中,也可以存储在手机卡中,也可以同时存储在两个位置上(每个位置上的存储容量为1000,即手机卡中或手机上最多只能存储1000个联系人). 存储在手机 ...

  6. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  7. 个人通讯管理程序C语言,个人通讯录管理系统C语言源程序(优秀版)[1]

    个人通讯录管理系统C语言源程序(优秀版)[1] 更新时间:2017/2/22 1:03:00  浏览量:613  手机版 C语言个人通讯录系统源程序: #include /*头文件*/ #includ ...

  8. C 语言课程设计 最终答辩版 学生通讯录管理系统

    <span style="font-family: Arial, Helvetica, sans-serif;">/*</span> *********** ...

  9. 基于C++实现(控制台+界面)通讯录管理系统【100010012】

    个人通讯录管理系统 问题描述: 主要内容: 个人通讯录是记录了同学(包含一起上学的学校名称).同事(包含共事的单位名称).朋友(包含认识的地点).亲戚(包含称呼)等与本人有关人员的数据集. 具体要求: ...

最新文章

  1. 利用JavaScript的复制
  2. 【学习笔记】7、标准数据类型—字符串
  3. Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置
  4. iOS 自定义view里实现控制器的跳转
  5. 让敏捷交付优秀的软件
  6. Exception in thread main java.lang.NoClassDefFoundError解决了
  7. 22计算机408考研—数据结构—线性表、栈、队列、数组
  8. mysql安装教程 2018_sql server 2018下载
  9. 服务器如何备份系统和配置,windows server 2008和2012如何设置完整备份+增量备份
  10. 关于城市旅游的HTML网页设计——中国旅游HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计
  11. 《亲密关系》良句收录和观后观想
  12. 怎么注册Github?用手机2分钟完成注册,互联网就是互相连接
  13. python十进制转八进制_Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)...
  14. 一文多发神器--ArtiPubOpenWrite
  15. 如何将网站上传到服务器空间,如何使用FTP工具将网站上传到虚拟主机空间
  16. 梅科尔工作室-张黎娜-鸿蒙笔记3
  17. Bugku:杂项 小美的秘密part2
  18. 麻雀虽小,五脏俱全——由C语言小程序深入学习软件工程和设计开发规范
  19. 古人对梦的解释_梦见古人如何解释梦意_周公解梦梦到古人如何解释梦意是什么意思_做梦梦见古人如何解释梦意好不好...
  20. 解决ClickHouse短连接超时的一个问题

热门文章

  1. 自定义时间选择器-前端组件
  2. maya单位、网格线设置
  3. 135. 分发糖果 【每日一题】
  4. 为什么找APP开发公司不选“北上广”
  5. idea关闭代码自动提示
  6. 详细了解JS中三目运算
  7. 华为od机考题目-分苹果
  8. vim查找替换的方法
  9. Android模拟器路径迁移遇到的一些问题与解决方案
  10. 通过c#访问海康DVR