这是一款可以支持添加联系人,删除联系人,查找联系人等多功能的电话簿,有一个高尚一点的名字是通讯管理系统,尽管这一部分代码比较长,敲了一个小时才敲完,但是内容比较简单,是C++入门后可选择敲的一个程序。话不多说看代码~

# include <iostream>
# include <string>
# define MAX 1000
using namespace std;
struct Person
{string name;int sex;int age;string phone;string addr;
};
struct Addressbooks
{Person personArray[MAX];int m_Size = 0;
};
void showMenu()
{cout << "***************************" << endl;cout << "*****  1、添加联系人  *****" << endl;cout << "*****  2、显示联系人  *****" << endl;cout << "*****  3、删除联系人  *****" << endl;cout << "*****  4、查找联系人  *****" << endl;cout << "*****  5、修改联系人  *****" << endl;cout << "*****  6、清空联系人  *****" << endl;cout << "*****  0、退出通讯录  *****" << endl;cout << "***************************" << endl;
}
void AddPerson(Addressbooks * abs)
{string name;cout << "请输入联系人的姓名:" << endl;cin >> name;abs->personArray[abs->m_Size].name = name;int sex;cout << "请输入性别:" << endl;cout << "1 --- 男" << endl;cout << "2 --- 女" << endl;while (true){cin >> sex;if (sex == 1 || sex == 2){abs->personArray[abs->m_Size].sex = sex;break;}cout << "输入有误,请重新输入!" << endl;}int age;cout << "请输入年龄:" << endl;cin >> age;abs->personArray[abs->m_Size].age = age;string phone;cout << "请输入电话号码:" << endl;cin >> phone;abs->personArray[abs->m_Size].phone = phone;string homeplace;cout << "请输入家庭住址:" << endl;cin >> homeplace;abs->personArray[abs->m_Size].addr = homeplace;abs->m_Size++;cout << "当前已成功添加" <<abs->m_Size<<"名联系人" <<endl;system("pause");system("cls");
}
void ShowPerson(Addressbooks * abs)
{if (abs->m_Size == 0){cout << "当前通讯录为空" << endl;}else{for (int i = 0; i < abs->m_Size; i++){cout << "姓名: " << abs->personArray[i].name << "\t";cout << "性别: " << (abs->personArray[i].sex == 1 ?"男":"女") << "\t";cout << "年龄: " << abs->personArray[i].age << "\t";cout << "电话: " << abs->personArray[i].phone << "\t";cout << "家庭住址: " << abs->personArray[i].addr<< endl;}}system("pause");system("cls");
}
int isExist(Addressbooks * abs, string name)
{for (int i = 0; i < abs->m_Size; i++){if (abs->personArray[i].name == name)return i;}return -1;
}
void Delete(Addressbooks * abs)
{string name;cout << "请输入您想删除的联系人的姓名: " << endl;cin >> name;int ret = isExist(abs, name);if (ret != -1){for (int i = ret; i < abs->m_Size;i++){abs->personArray[i] = abs->personArray[i+1];}cout << "删除成功!" << endl;abs->m_Size--;}else{cout << "查无此人" << endl;}system("pause");system("cls");
}
void Search(Addressbooks * abs)
{string name;cout << "请输入您要找的联系人" << endl;cin >> name;int ret = isExist(abs,name);cout << "姓名: " << abs->personArray[ret].name << "\t";cout << "性别: " << (abs->personArray[ret].sex == 1 ? "男" : "女") << "\t";cout << "年龄: " << abs->personArray[ret].age << "\t";cout << "电话: " << abs->personArray[ret].phone << "\t";cout << "家庭住址: " << abs->personArray[ret].addr << endl;system("pause");system("cls");
}
void Modify(Addressbooks * abs)
{string name;cout << "请输入您要修改的联系人的姓名: " << endl;cin >> name;int ret = isExist(abs, name);if (ret != -1){system("cls");showMenu();cout << "已找到该联系人,请修改: " << endl;cout << "姓名 : " << endl;cin >> abs->personArray[ret].name;cout << "性别 : " << endl;cin >> abs->personArray[ret].sex;cout << "年龄 : " << endl;cin >> abs->personArray[ret].age;cout << "电话号码 :" << endl;cin >> abs->personArray[ret].phone;cout << "家庭住址 :" << endl;cin >> abs->personArray[ret].addr;cout << "修改成功!" << endl;}system("pause");system("cls");
}
void allClean(Addressbooks * abs)
{cout << "您确定是要执行本操作吗?" << endl;cout << "1 --- 是" << endl;cout << "2 --- 否" << endl;int select;cin >> select;if (select == 1){abs->m_Size = 0;cout << "通讯录已清空!" << endl;}system("pause");system("cls");
}
int main(void)
{int select;Addressbooks abs;while (true){showMenu();cout << "请输入您的选择:" << "  ";cin >> select;switch (select){case 1:AddPerson(&abs);break;case 2:ShowPerson(&abs);break;case 3:Delete(&abs);break;case 4:Search(&abs);break;case 5:Modify(&abs);break;case 6:allClean(&abs);break;case 0:cout << "欢迎您下次再用!" << endl;return 0;}}return 0;
}```![开始界面](https://img-blog.csdnimg.cn/20200301092423922.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01SX2JhaTE=,size_16,color_FFFFFF,t_70)
![删除联系人
](https://img-blog.csdnimg.cn/20200301092521637.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01SX2JhaTE=,size_16,color_FFFFFF,t_70)![添加联系人](https://img-blog.csdnimg.cn/20200301092455289.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01SX2JhaTE=,size_16,color_FFFFFF,t_70)

用C++制作一款电话簿相关推荐

  1. ps怎么把一个颜色替换成另一个颜色_图标设计,用PS制作一款小清新的拟物时钟...

    本篇教程通过PS制作一款干净清新的时钟图标教程,做起来也不复杂,但是不管复杂不复杂的东西,都必须动手制作才行,会用到图层样式,图层样式基本上一直是图标或者字体制作的常客,同学们根据教程来学习一下吧,相 ...

  2. 如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话

    今天我们来实现情景对话.这是一个重要的功能,没有它,游戏将变得索然无味.所以我们不得不来完成它. 但是要知道,使用对话可不是一件简单的事,因为它内部的东西很多,比如说人物头像,人物名称,对话内容... ...

  3. 四针角oled屏连接arduino_使用Arduino开发板连接OLED显示屏制作一款智能手表

    我们大多数人都比较熟悉1602点阵液晶显示屏,它在许多项目中用于向用户显示一些信息.但是这些LCD显示器在他们能做的事情上有很多限制.在本篇文章中,我们将使用OLED显示Android智能手机的一些基 ...

  4. 小哥哥你有98K吗?利用Python制作一款多功能变声器!

    前言 好吧,关于这句小哥哥你有98K吗?出自别人口中经常说的玩笑话,我也略懂一些游戏嘛.不过不常玩,废话不多说,开始咱们今天的教程,非常简单! 利用Python制作一款多功能变声器! 咱们首先登陆百度 ...

  5. 如何制作一款HTML5 RPG游戏引擎——第五篇,人物人物特效

    上一次,我们实现了对话类,今天就来做一个游戏中必不可少的--人物类. 当然,你完全是可以自己写一个人物类,但是为了方便起见,还是决定把人物类封装到这个引擎里. 为了使这个类更有意义,我还给人物类加了几 ...

  6. 如何制作一款HTML5 RPG游戏引擎——第三篇,利用幕布切换场景

    开言: 在RPG游戏中,如果有地图切换的地方,通常就会使用幕布效果.所谓的幕布其实就是将两个矩形合拢,直到把屏幕遮住,然后再展开直到两个矩形全部移出屏幕. 为了大家做游戏方便,于是我给这个引擎加了这么 ...

  7. 如何制作一款HTML5 RPG游戏引擎——第二篇,烟雨+飞雪效果

    今天我们来实现烟雨+飞雪效果.首先来说,一款经典的RPG游戏难免需要加入天气的变化.那么为了使我们的RPG游戏引擎更完美,我们就只好慢慢地实现它. 本文为该系列文章的第二篇,如果想了解以前的文章可以看 ...

  8. 制作一款精美的 Qt IFW 安装程序

    对于 Qt IFW 来说,默认的安装界面并不吸引人.倘若要制作一款精美的安装程序,这显然是不够的,需要在此基础上进行一系列定制. 为了实现这个目的,一般需要自定义安装页面,对相关部件进行美化,并添加一 ...

  9. 如何使用Box2D和Cocos2D制作一款像Fruit Ninja一样的游戏-第3部分

    这篇文章还可以在这里找到 英语 Create a Sprite-Cutting Game with Cocos2D! 本篇教程是由iOS教程组的成员Allen Tan发布的,Allen是一位iOS开发 ...

最新文章

  1. esxi ntp服务器地址_NTP的工作原理以及工作模式
  2. 分苹果问题的C++和Python实现
  3. python 数据可视化 -- 读取数据
  4. 软件开发中部分代码的注解
  5. sqlserver存储过程的参数传递注意事项
  6. 2017年第八届蓝桥杯C/C++ B组国赛 —— 第三题:希尔伯特曲线
  7. ASP.NET Core - Razor页面之Handlers处理方法
  8. Java Sokect编程之HTTP请求
  9. 神话系列之一 C# 开发的操作系统和数据库
  10. 不懂高数,所以我用这本书入门深度学习 | 在线阅读+配套笔记
  11. 【报错】Error inserting GREEM=30 YELLOW=4 RED=5 android.database.sqlite.SQLiteException: no such tab
  12. 下、Hadoop环境搭建——通过Xshell6连接VMware正式配置Hadoop
  13. H265 SAO 技术
  14. 数据可视化的基本流程
  15. 北美票房:奥斯卡提名影片票房回春
  16. 【烈日炎炎战后端】JAVA基础(3.4万字)
  17. VLC全部参数,libvlc_new函数参数,VLC SDK开发
  18. ubuntu 18.04 安装gdb
  19. eclipse hadoop1.2.0配置及wordcount运行
  20. 【腾讯TMQ】走进标准化测试

热门文章

  1. 一款超好用的开源密码管理器?
  2. 网络能力认证CCSC-管理1级 技术1级别
  3. 平衡左右脑、加强记忆、提高情商……冥想的这些好处你知道吗?
  4. 汉语拼音方案里的O(哦)和 UO(窝)
  5. gcc -shared -o libJava.so Java.o ./libdemo.a
  6. kdj超卖_如何正确理解KDJ?
  7. 未来可能的安全焦点:GIS地理信息系统安全问题分析
  8. 由kobject_create_and_add全面了解kobject
  9. 关于H5移动端用什么自动化测试
  10. 功率谱(PS)和功率谱密度(PSD)是否一样、谱估计谱图纵轴数值为什么为负