功能描述:
实现添加联系人功能,联系人上限为1000人,联系人信息包括(姓名、性别、年龄、联系电话、家庭住址)
添加联系人实现步骤:
●设计联系人结构体
●设计通讯录结构体
●main函数中创建通讯录
●封装添加联系人函数
●测试添加联系人功能

1.1,设计联系人结构体

//联系人结构体
struct Person{string m_Name; //姓名int m_Sex; //性别: 1男2女int m_Age; //年龄string m_Phone; //电话string m_Addr; //住址
};

1.2设计通讯录结构体
设计时候可以在通讯录结构体中,维护-个容量为1000的存放联系人的数组,并记录当前通讯录中联系人数量
设计如下:

#define MAX 1000 //最大人数
//通讯录结构体
struct Addressbooks
{struct Person personArray[MAX]; // 通讯录中保存的联系人数组int m_Size; //通讯录中人员个数
};

1.3,main函数中创建通讯录

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、显示联系人break;case 3:            //3、删除联系人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.4、封装添加联系人函数

//添加联系人
void addPerson(Addressbooks * p) {//先判断通讯录是不是已经满了,满了不在添加if (p->m_Size == MAX) {cout << "通讯录已经满了" << endl;return;}else {//具体添加联系人//姓名string name;cout << "请输入姓名: " << endl;cin >> name;p->personArray[p->m_Size].m_Name = name;//性别cout << "请输入性别 :" << endl;cout << "1 ---男" << endl;cout << "2 ---女" << endl;int sex = 0;while (true){//如果输入的是1或者2可以退出循环,因为输入的是正确值// 如果输入有误,重新输入[cin >> sex;if (sex == 1 || sex == 2) {p->personArray[p->m_Size].m_Sex = sex;break;}cout << "输入有误请重新输入" << endl;}//年龄cout << "请输入年龄:" << endl;int age = 0;cin >> age;p->personArray[p->m_Size].m_Age = age;//电话cout << "请输入联系电话:"<< endl;string phone;cin >> phone;p->personArray[p->m_Size].m_Phone = phone;//住址cout << "请输入家庭住址 : " << endl;string address;cin >> address;p->personArray[p->m_Size].m_Addr = address;//更新通讯录人数p->m_Size++;cout << "添加成功" << endl;}}

1.5、测试添加联系人功能

添加成功之后这个屏幕有很多菜单列表:

我们需要清屏:

system("pause");//请按任意键继续
system("cls");//清屏

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

  1. (原创)基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示

    在(原创基于ZedBoard的Webcam设计(一):Zedboard上的USB摄像头(V4L2接口)的图片采集中,我们完成了ZedBoard上USB摄像头的单幅图片采集,采集到的图片是存储在文件系统 ...

  2. go二维map_mirrorlang——从0设计二维内存寻址语言及vm(五.内存管理的思考)

    目录 鹏鹏李李:mirrorlang--从0设计二维内存寻址语言及vm [目录]​zhuanlan.zhihu.com 由一段函数开始思考内存布局 func longestPalindrome(s s ...

  3. 计算机网络抓包参考文献,计算机网络课程设计二(网络抓包与分析)

    <计算机网络课程设计二(网络抓包与分析)>由会员分享,可在线阅读,更多相关<计算机网络课程设计二(网络抓包与分析)(9页珍藏版)>请在人人文库网上搜索. 1.课程设计课程名称: ...

  4. LoRa 学习Day4 LoRa无线通信设计(二)空空距离测试

    https://blog.csdn.net/jiangjunjie_2005/article/details/48102279 LoRa无线通信设计(二)空空距离测试 https://blog.csd ...

  5. Lua--棋牌游戏开发(概念性设计二

    Lua–棋牌游戏开发(概念性设计二) 1:获取"棋牌工具.lua"文件,文件后return CardUtils 参考上一篇博文链接:Lua–棋牌游戏开发(概念性设计一) local ...

  6. 基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示

    在(原创基于ZedBoard的Webcam设计(一):Zedboard上的USB摄像头(V4L2接口)的图片采集中,我们完成了ZedBoard上USB摄像头的单幅图片采集,采集到的图片是存储在文件系统 ...

  7. 【二维码营销案例】圣诞促销活动如何设计二维码能拉新留存促活转化?

    圣诞节是品牌宣传造势的又一大节日,拉新留存促活转化考验大家KPI能力的时刻到了.二维码作为必不可少的移动互联网营销工具,能给品牌营销活动带来事半功倍的效果.那么,圣诞促销活动如何设计二维码才好呢?这是 ...

  8. (王爽)汇编语言-课程设计二完整版

    王爽汇编语言-课程设计二 前言 特别感谢 实验结果 实验思路 如何优化调试流程以节省时间 源码 未完成部分 前言 刚刚把lab2调试完,2021年10月12日 16:26:36,本来是打算在oneno ...

  9. 将沁园春长沙写出来使用html css,高一语文教案:《沁园春长沙》教案设计二

    高一 断肠句子:难过的诗句子.http://n.sinaimg.cn/news/1_img/dfic/2b0c102b/107/w1024h683/20190807/0ecd-iaxiufn3904 ...

  10. C语言实现通讯录【二】(动态内存开辟,文件数据存储)

    C语言实现通讯录[二] 在C语言实现通讯录[一]的基础上进行优化,主要实现两大模块: 动态内存开辟 文件数据存储 动态内存开辟: 考虑到通讯录的大小无法固定,在C语言实现通讯录[一]版本上定义一个足够 ...

最新文章

  1. 大利好!学历低的算法工程师要起飞了,这波惊喜来的太突然!
  2. python【Matlibplot绘图库】-绘制三维图像
  3. Spring Boot Actuator
  4. 使用 dotnet-monitor 分析.NET 应用程序
  5. http invoker_Http Invoker的Spring Remoting支持
  6. 264 参考帧 list0 list1
  7. selenium-入门与安装-0223
  8. Unity AssetBundle 爬坑手记
  9. [多图]Maclean的巴厘岛游记
  10. oracle数据库驱动下载(ojdbc)
  11. linux运行关关采集器,杰奇小说2.3-自动采集-关关采集器高级版
  12. gl常用库函数,glu常用库函数 简介
  13. 暑假视力如何保护?护眼台灯可以保护视力
  14. 小技巧丨累了困了学不下去的时候该怎么办?
  15. 遍历本路径下所有文件夹和子文件夹,修改文件后缀名
  16. Java字节码,字节码指令
  17. videoPlayer 无法播放视频
  18. tp-link wr 841n 300m 局域网限速的研究
  19. 毕设-基于LoRa的智能农业大棚(三)
  20. 一座教学楼内的计算机网络系统属于,2006—2007学年第一学期期末考试(计算机网络技术试卷》A...

热门文章

  1. python表示当前对象_对象操作
  2. ffmpeg-win32-v3.2.4 下载_iTOP-4412开发板android4.4代码下载和编译
  3. linux cat cd,linux 文件系统命令 cat cd chmod
  4. oracle vitu,Supply Chain Management (SCM) a Manufacturing | Oracle Česká Republika
  5. hbuild json红叉_MUI+Hbuilder之踩坑(三)
  6. 迭代器 java_百战程序员:Java设计模式之迭代器模式
  7. 搭建webUI自动化及问题解决:Message: ‘chromedriver‘ executable needs to be in PATH.解决办法
  8. 数据分析CSV模块的基本使用(以分析复杂的天气情况为例),附完整的Python代码及csv文件详解---数据可视化
  9. js数组sort排序原理
  10. C# WCF WinCE 解决方案 错误提示之:已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性...