我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++如何实现简易通讯录功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++如何实现简易通讯录功能

这篇文章主要讲解了“C++如何实现简易通讯录功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++如何实现简易通讯录功能”吧!

实现功能

提示:这里可以添加本文要记录的大概内容:

通过c++语法的学习,实现一个简易的通讯录功能,具体实现功能如下:
添加联系人:向通讯录中添加联系人,信息包括(姓名、性别、年龄、联系电话、家庭住址),做多记录1000人
显示联系人:显示通讯录中所有联系人信息
删除联系人:按照姓名进行删除联系人
查找联系人:按照姓名进行查找联系人
修改联系人:根据姓名重新修改联系人
清空联系人:清空通讯录中所有信息
脱出通讯录:退出当前使用的通讯录

一、定义通讯录和通讯录人员结构体

定义通讯录和通讯录内人员信息的结构体,通讯录最多容纳1000人信息。
联系人结构体:

//联系人结构体struct Person{    string m_Name;//姓名    int m_Sex;//1-男,2-女    int m_Age;//年龄    string m_Phone;//电话    string m_Afddar;//通讯地址};

通讯录结构体:

struct AddaressBooks{    struct Person personArray[MAX];//通讯录中保存的人员数据    int m_Size;//记录当前记录数};

二、实现通讯录输入菜单

定义菜单函数:

//菜单界面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() {    //创建通讯录结构体变量    AddaressBooks 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.删除联系人            deletePerson(&abs);            break;        case 4: //4.查找联系人            selectPerson(&abs);            break;        case 5: //5.修改联系人            editPerson(&abs);            break;        case 6: //6.清空联系人            cleanPerson(&abs);            break;        case 0: //0.退出通讯录             cout << "欢迎下次使用" << endl;            system("pause");            return 0;            break;        default:            break;        }    }    }

三、实现增删改查和清空通讯录功能

实现具体的通讯录增删改查功能:

完整源码如下:

//封装函数显示通讯录界面 void showMenu()//在main中调用封装好的函数#include<iostream>#include<string>using namespace std;#define MAX 1000 //最大人数//联系人结构体struct Person{    string m_Name;//姓名    int m_Sex;//1-男,2-女    int m_Age;//年龄    string m_Phone;//电话    string m_Afddar;//通讯地址};struct AddaressBooks{    struct Person personArray[MAX];//通讯录中保存的人员数据    int m_Size;//记录当前记录数};//菜单界面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;}//1.添加联系人void addPerson(AddaressBooks* abs) {    //通讯录是否满了,如果满了就不能在添加    if (abs->m_Size == MAX) {        cout << "通讯录记录已满,无法添加!" << endl;        return;    }    else {        //添加具体联系人        //姓名        string name;        cout << "请输入姓名:" << endl;        cin >> name;        abs->personArray[abs->m_Size].m_Name = name;        //性别        int sex = 0;        cout << "请输入性别:" << endl;        cout << "1 --- 男" << endl;        cout << "2 --- 女" << endl;        while (true) {            // 如果输入1或者2退出循环,如果有误,则重新输入            cin >> sex;            if (sex == 1 || sex == 2) {                abs->personArray[abs->m_Size].m_Sex = sex;                break;            }            cout << "输入性别有误,请重新输入!" << endl;        }                //年龄        int age;        cout << "请输入年龄:" << endl;        cin >> age;        abs->personArray[abs->m_Size].m_Age = age;        //电话        string phone;        cout << "请输入联系电话:" << endl;        cin >> phone;        abs->personArray[abs->m_Size].m_Phone = phone;        //住址        string addres;        cout << "请输入家庭住址:" << endl;        cin >> addres;        abs->personArray[abs->m_Size].m_Afddar = addres;        //更新通讯录人数        abs->m_Size++;        cout << "添加成功!" << endl;        system("pause");//请按任意键继续        system("cls");//清屏    }}//显示联系人void showPerson(AddaressBooks* abs) {    //判断通讯录中记录是否为0,如果不为0进行显示    if (abs->m_Size <= 0) {        cout << "通讯录记录为空!" << endl;    }    else {        for (int i = 0; i < abs->m_Size; i++) {            cout << "姓名:" << abs->personArray[i].m_Name << "\t";            cout << "性别:" << ((abs->personArray[i].m_Sex == 1) ? "男" : "女" )<< "\t";            cout << "年龄:" << abs->personArray[i].m_Age << "\t";            cout << "电话:" << abs->personArray[i].m_Phone << "\t";            cout << "住址:" << abs->personArray[i].m_Afddar << endl;        }    }    system("pause");//请按任意键继续    system("cls");//清屏}//检测联系人是否存在,如果存在返回联系人所在数组的位置,不存在返回-1int isExist(AddaressBooks* abs,string name) {    for (int i = 0; i < abs->m_Size; i++) {        if (abs->personArray[i].m_Name == name) {            return i;        }    }    //没有找到返回-1    return -1;}//删除联系人void deletePerson(AddaressBooks* abs) {    cout << "请输入要删除的联系人姓名:" << endl;    string name;    cin >> name;    int ret = isExist(abs, name);    if (ret != -1) {        //找到此人,进行删除操作        for (int i = 0; i < abs->m_Size; i++) {            //数据前移            abs->personArray[i] = abs->personArray[i + 1];        }        abs->m_Size--;//更新通讯录中数量        cout << "删除成功!" << endl;    }    else {        cout << "查无此人!" << endl;    }    system("pause");//请按任意键继续    system("cls");//清屏}//查找联系人void selectPerson(AddaressBooks* 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 == 1) ? "男" : "女") << "\t";        cout << "年龄:" << abs->personArray[ret].m_Age << "\t";        cout << "电话:" << abs->personArray[ret].m_Phone << "\t";        cout << "住址:" << abs->personArray[ret].m_Afddar << endl;    }    else {        cout << "查无此人!" << endl;    }    system("pause");//请按任意键继续    system("cls");//清屏}//修改联系人void editPerson(AddaressBooks* abs) {    cout << "请输入要修改的联系人姓名:" << endl;    string name;    cin >> name;    int ret = isExist(abs, name);    if (ret != -1) {        string name;        cout << "请输入姓名:" << endl;        cin >> name;        abs->personArray[ret].m_Name = name;        //性别        int sex = 0;        cout << "请输入性别:" << endl;        cout << "1 --- 男" << endl;        cout << "2 --- 女" << endl;        while (true) {            // 如果输入1或者2退出循环,如果有误,则重新输入            cin >> sex;            if (sex == 1 || sex == 2) {                abs->personArray[ret].m_Sex = sex;                break;            }            cout << "输入性别有误,请重新输入!" << endl;        }        //年龄        int age;        cout << "请输入年龄:" << endl;        cin >> age;        abs->personArray[ret].m_Age = age;        //电话        string phone;        cout << "请输入联系电话:" << endl;        cin >> phone;        abs->personArray[ret].m_Phone = phone;        //住址        string addres;        cout << "请输入家庭住址:" << endl;        cin >> addres;        abs->personArray[ret].m_Afddar = addres;        cout << "修改成功!" << endl;    }    else {        cout << "查无此人!" << endl;    }    system("pause");//请按任意键继续    system("cls");//清屏}//清空联系人void cleanPerson(AddaressBooks* abs) {    abs->m_Size = 0;//当前记录的联系人数量置为0,做逻辑上清空    cout << "通讯录已清空!:" << endl;    system("pause");//请按任意键继续    system("cls");//清屏}int main() {    //创建通讯录结构体变量    AddaressBooks 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.删除联系人            deletePerson(&abs);            break;        case 4: //4.查找联系人            selectPerson(&abs);            break;        case 5: //5.修改联系人            editPerson(&abs);            break;        case 6: //6.清空联系人            cleanPerson(&abs);            break;        case 0: //0.退出通讯录             cout << "欢迎下次使用" << endl;            system("pause");            return 0;            break;        default:            break;        }    }    }

四、运行截图展示

C++如何实现简易通讯录功能

C++如何实现简易通讯录功能

C++如何实现简易通讯录功能

感谢各位的阅读,以上就是“C++如何实现简易通讯录功能”的内容了,经过本文的学习后,相信大家对C++如何实现简易通讯录功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++如何实现简易通讯录功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++如何实现简易通讯录功能

这篇文章主要讲解了“C++如何实现简易通讯录功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++如何实现简易通讯录功能”吧!实现功能提示:这里可以添加本文要记录的大概内容:通过c++语法
2023-07-02

C++如何实现通讯录功能

这篇文章主要介绍“C++如何实现通讯录功能”,在日常操作中,相信很多人在C++如何实现通讯录功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++如何实现通讯录功能”的疑惑有所帮助!接下来,请跟着小编一起来
2023-07-02

C++如何实现简易通讯录管理系统

这篇文章主要介绍“C++如何实现简易通讯录管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何实现简易通讯录管理系统”文章能帮助大家解决问题。前言建议收藏,亲手写一遍代码,感受指针神奇的
2023-07-02

C++如何实现通讯录小功能

这篇文章主要介绍“C++如何实现通讯录小功能”,在日常操作中,相信很多人在C++如何实现通讯录小功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++如何实现通讯录小功能”的疑惑有所帮助!接下来,请跟着小编
2023-07-02

C++类怎么实现通讯录功能

这篇文章主要介绍了C++类怎么实现通讯录功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++类怎么实现通讯录功能文章都会有所收获,下面我们一起来看看吧。首先,是思考要实现什么功能。一般的通讯录有添加,删除,
2023-07-02

C#如何实现简易计算器小功能

这篇文章主要介绍C#如何实现简易计算器小功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下简易的登陆界面。具有幻灯片效果。(picturebox time控件)计算器支持多位数,小数,括号的运算。音乐是一
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录