C/C++实现通讯录的制作,实现添加,删除,查找,显示,退出等功能。


#include<iostream>
#include<string>
using namespace std;
#define MAX 1000//设计联系人结构体
struct person {//名字string name;//性别 1男 2女int sex;//年龄int age;//电话string phone;//家庭住址string add;
};//设计通讯录结构体
struct books {//联系人数组person p[MAX];//联系人个数int size;
}; //添加联系人
void add(books* abs) {//先判断是否已满,如果满了不添加if (abs->size == MAX) {cout << "通讯录已满" << endl;return;}else {//添加具体联系人string name;cout << "请输入姓名" << endl;cin >> name;abs->p[abs->size].name = name;//性别cout << "请输入性别" << endl;cout << "1----男" << endl;cout << "2----女" << endl;int sex;while (true) {cin >> sex;if (sex == 1 || sex == 2) {abs->p[abs->size].sex = sex;break;}else {cout << "输入有误,请重新输入" << endl;}}//年龄cout << "请输入年龄" << endl;int age;cin >> age;abs->p[abs->size].age = age;//电话cout << "请输入电话:" << endl;string phone;cin >> phone;abs->p[abs->size].phone = phone;//家庭住址cout << "请输入家庭地址:" << endl;string add;cin >> add;abs->p[abs->size].add = add;//更新通讯录人数abs->size++;cout << "恭喜您添加成功" << endl;system("pause");//请按任意键继续system("cls");//清屏}
}//显示联系人
void show(books* abs) {//判断通讯录是否有人//若有人,显示,若没有,提示if (abs->size == 0) {cout << "通讯录为空" << endl;}else {for (int i = 0; i < abs->size; i++) {cout << "姓名:" << abs->p[i].name << "\t";cout << "性别:" <<( abs->p[i].sex==1?"男":"女") << "\t";cout << "年龄:" << abs->p[i].age << "\t";cout << "电话:" << abs->p[i].phone << "\t";cout << "住址:" << abs->p[i].add << endl;}}system("pause");system("cls");
}//检测联系人是否存在,如果存在,则删除,否则返回-1
int exist(books* abs,string name) {for (int i = 0; i < abs->size; i++) {if (abs->p[i].name == name) {return i;//找到了,返回这个人在数组中的下标}}return -1;//如果遍历完没有找到,返回-1
}//删除指定联系人
void del(books* abs) {cout << "请输入您要删除的人" << endl;string name;cin >> name;int ret = exist(abs, name);if (ret != -1) {for (int i = ret; i < abs->size; i++) {//数据前移abs->p[i] = abs->p[i + 1];}abs->size--;//更新人数cout << "删除成功!" << endl;}else {cout << "查无此人" << endl;}system("pause");system("cls");
}//查找指定的联系人
void find(books* abs) {cout << "请输入您要查找的联系人" << endl;string name;cin >> name;//判断指定联系人是否存在int ret = exist(abs,name);if (ret != -1) {cout << "姓名:" << abs->p[ret].name << "\t";cout << "性别:" << abs->p[ret].sex << "\t";cout << "年龄:" << abs->p[ret].age << "\t";cout << "电话:" << abs->p[ret].phone << "\t";cout << "地址:" << abs->p[ret].add << "\t";}else {cout << "查无此人" << endl;}system("pause");system("cls");
}//修改联系人
void modify(books* abs) {cout << "请输入要修改的联系人信息" << endl;string name;cin >> name;int ret = exist(abs, name);if (ret != -1) {string name;cout << "请输入姓名" << endl;cin >> name;abs->p[ret].name = name;//性别cout << "请输入性别" << endl;cout << "1----男" << endl;cout << "2----女" << endl;int sex;while (true) {cin >> sex;if (sex == 1 || sex == 2) {abs->p[ret].sex = sex;break;}else {cout << "输入有误,请重新输入" << endl;}}//年龄cout << "请输入年龄" << endl;int age;cin >> age;abs->p[ret].age = age;//电话cout << "请输入电话:" << endl;string phone;cin >> phone;abs->p[ret].phone = phone;//家庭住址cout << "请输入家庭地址:" << endl;string add;cin >> add;abs->p[ret].add = add;}else {cout << "查无此人" << endl;}system("pause");system("cls");
}//清空联系人
void clear(books* abs) {abs->size = 0;//将联系人数目置零,逻辑上清空cout << "通讯录已经清空" << endl;system("pause");system("cls");
}//菜单界面
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;
}int main() {//创建一个通讯录books abs;abs.size = 0;int select;//创建用户选择输入的变量while (true) {//菜单的调用showmenu();cin >> select;switch (select) {case 1://1、添加联系人add(&abs);//利用地址传递break;case 2:// 2、显示联系人show(&abs);break;case 3:// 3、删除联系人del(&abs);break;case 4://4、查找联系人find(&abs);break;case 5://5、修改联系人modify(&abs);break;case 6://6、清空联系人clear(&abs);break;case 0:// 0、退出通讯录 cout << "欢迎下次使用" << endl;system("pause");return 0;break;default:break;}}system("pause");return 0;
}

结果如图所示:

c++实现通讯录制作相关推荐

  1. Android Studio 简易通讯录制作 (Java)

    通讯录首页: 添加联系人页面: 修改联系人: 删除联系人: 程序代码: MainActivity.java package com.example.myapplication;import andro ...

  2. c语言 数据结构 课程设计 通讯录制作

    c语言  数据结构  课程设计  源码 infoBook.c #include "dataStruct.h" #include <stdio.h> #include & ...

  3. java课设通讯录制作,JAVA课程设计--个人通讯录管理系统

    JAVA课程设计--个人通讯录管理系统 JAVAJAVA 课程设计课程设计 课题个人通讯录管理系统课题个人通讯录管理系统 课程名称 java 课程设计 院 系 计算机科学与技术学院 班 级 09 计本 ...

  4. html模仿原生ios通讯录制作国家展示页(手机端)

    html内容 <div id="item-container"><ul></ul> </div><script src=&qu ...

  5. LinuxC语言——通讯录

    LinuxC语言--通讯录 制作通讯录的一些基础知识 功能 代码 链表节点创建 节点插入 增加节点到链表头 节点插入 增加节点到链表尾部 节点查找(姓名.号码) 节点删除 显示节点 主函数逻辑 运行效 ...

  6. 【效率特工队】Excel转手机通讯录格式,如何将一个Excel批量拆分生成多个vcf,怎么快速的加微信好友,优化一下方法效率可能更高,解决微信通讯录手机联系人好友不显示的问题

    本文用到的软件下载地址 软件下载地址:https://share.weiyun.com/JG6ZNAv7 CSDN贵族下载地址:https://download.csdn.net/download/b ...

  7. 【效率特工队】如何快速将Excel表格的号码导入安卓和苹果手机通讯录,批量添加大量手机号码到手机通讯录的最快方法

    很多人遇到一个问题,在做微商.还有整理客户资料等等过程中 有大批量的手机号需要导入到安卓和苹果手机的通讯录保存 然后通过通讯录加客户微信,通过支付宝通讯录核实用户信息等等应用中 很多人也知道QQ同步助 ...

  8. 中原大学 php,台湾中原大学php教程孙仲岳主讲

    1.一周学会 PHP ftp://ftp.cycu.edu.tw/CNA/Course ... os/040816_PHP_1.wmv ftp://ftp.cycu.edu.tw/CNA/Course ...

  9. 日常所需 - 收藏集 - 掘金

    通过 Weex 300 行代码开发一款简易的跑步 App - 前端 - 掘金 一套构建高性能.可扩展的原生应用的跨平台开发方案 Weex 给大家带来的无疑是客户端开发效率的提升,我们可以通过一套代码, ...

  10. 自定义view - 收藏集 - 掘金

    Android 从 0 开始自定义控件之 View 的 draw 过程 (九) - Android - 掘金 转载请标明出处: http://blog.csdn.net/airsaid/... 本文出 ...

最新文章

  1. 如何从头开始构建自己的Linux Dotfiles Manager
  2. java实现高斯赛德尔算法解线性方程组
  3. 美团点评业务风控系统构建经验
  4. Android O限制系统全屏进一步遏制手机勒索
  5. vs如何写多线程_VS + PS + GS
  6. CSS3之Transition
  7. 用gSOAP开发Web Service程序
  8. 基于php校园失物招领,校园失物招领系统的设计.doc
  9. 修改服务器ip 需要重启,linux服务器设置ip后需要重启吗
  10. 高通Android平台下关于display部分的几个关键问题
  11. Qt多线程之QMutex
  12. 爬虫—使用Requests
  13. Elasticsearch mysql 增量同步
  14. 解决button多次重复点击
  15. 软件项目开发文档模板
  16. Excel技巧—超实用的字符串拆分小技巧
  17. 英雄联盟数据分析专题(一)
  18. C++-导出类-导出宏-纯虚函数-DllMain函数-调用约定与参数命名
  19. 拳皇觉醒服务器维护,拳魂觉醒活动什么时候开 服务器开区活动时间顺序
  20. mysql免安装版修改密码

热门文章

  1. 分享好用的Mac系统的FTP工具和SHELL工具
  2. Revit导入CAD翻模丨CAD图层管理控制显示隐藏图层
  3. 【Xamarin挖墙脚系列:mac 终端 常用命令+Mac OS X的快捷键+beamoff 】
  4. excel删除行闪退_excle2017打开就闪退:excel表格打开闪退怎么办
  5. Leetcode五大常用算法
  6. Unity开发 罗技方向盘 G29 白话版
  7. matlab除法不对,matlab中除法的使用,错误使用 / 矩阵维度必须一致
  8. 计算机拓展名cad,CAD用到的各种文件格式有哪些
  9. Filter 敏感词汇过滤案例
  10. c语言必背数组函数100代码,C语言必背的典型程序设计题目 数组、函数参考答案.pdf...