C++ 实现的通讯录管理系统详解

C++ 实现的通讯录管理系统详解

介绍

本文将详细介绍 C++ 实现的通讯录管理系统,该系统采用面向对象的方式实现,能够帮助用户管理通讯录信息。

本系统的主要功能包括:添加联系人、显示联系人、删除联系人、查找联系人、修改联系人以及清空联系人等。下面将分别对每个功能进行介绍。

添加联系人

添加联系人是通讯录管理系统最基本的功能之一。在系统中,我们可以通过以下代码实现添加联系人的功能:

void AddressBook::addPerson()
{
    string name;
    string phoneNum;
    string age_str;
    int age;

    cout << "请输入联系人姓名: ";
    cin >> name;
    cout << "请输入联系人电话: ";
    cin >> phoneNum;
    cout << "请输入联系人年龄: ";
    cin >> age_str;

    age = stoi(age_str);

    PersonInfo person(name, phoneNum, age);
    vPerson.push_back(person);

    cout << "联系人添加成功!" << endl;
}

在上面的代码中,我们首先通过 std::cout 输出了提示信息,然后通过 std::cin 获取用户输入的联系人信息,最后将该联系人信息加入通讯录管理系统。

显示联系人

显示联系人也是通讯录管理系统中常用的功能,用户可以通过该功能查看当前通讯录中保存的所有联系人信息。我们可以通过以下代码实现该功能:

void AddressBook::showPerson()
{
    for (vector<PersonInfo>::iterator it = vPerson.begin(); it != vPerson.end(); ++it) {
        cout << "姓名:" << it->name << "    ";
        cout << "电话:" << it->phoneNum << "    ";
        cout << "年龄:" << it->age << endl;
    }
}

在上面的代码中,我们使用了迭代器遍历了通讯录管理系统中保存的所有联系人信息,并通过 std::cout 输出了联系人的姓名、电话以及年龄等信息。

删除联系人

在通讯录管理系统中,用户可以删除已经不需要的联系人信息。我们可以通过以下代码实现删除联系人的功能:

void AddressBook::deletePerson()
{
    string name;

    cout << "请输入要删除的联系人姓名: ";
    cin >> name;

    for (vector<PersonInfo>::iterator it = vPerson.begin(); it != vPerson.end(); ++it) {
        if (it->name == name) {
            vPerson.erase(it);
            cout << "联系人删除成功!" << endl;
            return;
        }
    }

    cout << "未找到联系人!" << endl;
}

在上面的代码中,我们首先通过 std::cin 获取用户输入的联系人姓名,然后通过迭代器遍历通讯录管理系统中保存的所有联系人信息,最后删除用户指定的联系人信息。

查找联系人

用户可以通过查找联系人功能快速找到指定的联系人信息。我们可以通过以下代码实现该功能:

void AddressBook::findPerson()
{
    string name;

    cout << "请输入要查找的联系人姓名: ";
    cin >> name;

    for (vector<PersonInfo>::iterator it = vPerson.begin(); it != vPerson.end(); ++it) {
        if (it->name == name) {
            cout << "姓名:" << it->name << "    ";
            cout << "电话:" << it->phoneNum << "    ";
            cout << "年龄:" << it->age << endl;
            return;
        }
    }

    cout << "未找到联系人!" << endl;
}

在上面的代码中,我们首先通过 std::cin 获取用户输入的联系人姓名,然后通过迭代器遍历通讯录管理系统中保存的所有联系人信息,最后输出用户指定的联系人信息。

修改联系人

用户可以通过修改联系人功能修改指定联系人的信息。我们可以通过以下代码实现该功能:

void AddressBook::editPerson()
{
    string name;
    string phoneNum;
    string age_str;
    int age;

    cout << "请输入要修改的联系人姓名: ";
    cin >> name;

    for (vector<PersonInfo>::iterator it = vPerson.begin(); it != vPerson.end(); ++it) {
        if (it->name == name) {
            cout << "请输入联系人电话: ";
            cin >> phoneNum;
            cout << "请输入联系人年龄: ";
            cin >> age_str;

            age = stoi(age_str);

            it->phoneNum = phoneNum;
            it->age = age;

            cout << "联系人信息修改成功!" << endl;
            return;
        }
    }

    cout << "未找到联系人!" << endl;
}

在上面的代码中,我们首先通过 std::cin 获取用户输入的联系人姓名,然后通过迭代器遍历通讯录管理系统中保存的所有联系人信息,最后修改用户指定的联系人信息。

清空联系人

用户可以通过清空联系人功能清空整个通讯录管理系统中保存的所有联系人信息。我们可以通过以下代码实现该功能:

void AddressBook::clearPerson()
{
    vPerson.clear();
    cout << "通讯录清空成功!" << endl;
}

在上面的代码中,我们使用了 std::vector::clear() 函数删除了保存在通讯录管理系统中的所有联系人信息,并输出了提示信息。

总结

通过上面的详细介绍,相信大家已经掌握了 C++ 实现的通讯录管理系统的基本实现和操作方法。该系统简单易用,能够帮助用户高效管理通讯录信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ 实现的通讯录管理系统详解 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • win10系统左下角搜索栏点击Win+C无反应的解决方法

    当我们在Win10系统中使用搜索栏,偶尔会遇到点击Win+C无反应的问题。这可能是由于系统故障、Win10更新问题或安装软件不当等原因引起的。以下是解决这个问题的完整攻略,可以帮助您解决这个问题。 问题分析 当搜索栏出现在左下角时,在Windows 10操作系统上单击Win+C组合键时,应该会打开Cortana语音助手,但是有时候无论怎么按,都没有反应。这种…

    C 2023年5月23日
    00
  • PyPy 如何让Python代码运行得和C一样快

    PyPy(Python运行时编译器)是一个替代CPython(官方Python解释器)的选择。它通过JIT(即时编译)技术不断优化代码,使得Python执行速度与C语言一样快。攻略如下: 步骤1:安装PyPy 在PyPy的官方网站上下载与您的操作系统相关的二进制文件。然后解压缩文件,将可执行文件添加到您的系统环境变量。 步骤2:运行PyPy PyPy提供了一…

    C 2023年5月23日
    00
  • C语言中的状态机设计深入讲解

    C语言中的状态机设计深入讲解 什么是状态机 状态机(State Machine),也称状态自动机,是一种抽象的数学模型,是一种对事物变化过程进行描述的工具。状态机可分为两类:有限状态机和无限状态机。 有限状态机(FSM, Finite State Machine)是一种计算模型。有限状态机由有限个状态及在这些状态之间的转移和动作组成,其中一个状态是我们所关心…

    C 2023年5月22日
    00
  • C++的程序流程结构你了解多少

    C++程序的流程结构是指程序的执行顺序和执行条件,程序流程结构分为顺序结构、选择结构和循环结构。 顺序结构 顺序结构是C++程序中最简单的结构,它是指按顺序执行的结构。当程序中只有一条语句时,就是顺序结构。 示例1: #include <iostream> using namespace std; int main() { // 输出Hello …

    C 2023年5月23日
    00
  • 详解C语言实现推箱子的基本功能

    详解C语言实现推箱子的基本功能 推箱子是一款经典的益智游戏,它在C语言中的实现,可以帮助我们加深对基本数据结构和算法的理解。本文将详细讲解如何在C语言中实现推箱子的基本功能。 第一步:初始化游戏地图 首先,我们需要定义一个游戏地图。游戏地图是由若干行和列组成的二维数组。其中,数字0表示空地,数字1表示障碍物,数字2表示目标点,数字3表示箱子,数字4表示玩家。…

    C 2023年5月23日
    00
  • Java多线程中线程间的通信实例详解

    Java多线程中线程间的通信实例详解 多线程编程既可以充分利用计算机的多核资源,又可以实现异步操作,提升程序的响应速度。在多线程编程中,线程间的通信是非常重要的一部分,常用的线程通信方式包括共享内存和消息传递两种。本文通过两个示例分别讲解了Java多线程编程中线程间的通信实现。 示例1:使用共享内存进行线程通信 共享内存是指多个线程之间共享同一块内存区域,通…

    C 2023年5月22日
    00
  • 详解c++ libuv工作队列

    当我们写高并发和高性能的程序时,需要考虑为多个并发任务安排合适的执行顺序,以避免出现竞争和死锁等问题。此时,工作队列就是一个非常灵活且高效的解决方案,我们可以用工作队列管理并发状态的转移和处理。 C++ Libuv是一个跨平台异步IO库,同时提供了事件循环和工作队列的支持。下面我们将详细讲解如何使用C++ Libuv的工作队列。 创建工作队列 要想使用工作队…

    C 2023年5月22日
    00
  • 使用c3p0连接数据库实现增删改查

    下面我将详细讲解使用c3p0连接数据库实现增删改查的完整攻略。 使用c3p0连接数据库 c3p0是一个开源的JDBC连接池库。它被大量应用于Java Web开发中,可以有效降低数据库的开销,优化系统的性能。下面介绍如何使用c3p0连接数据库。 步骤一:引入c3p0库 在Java工程的pom.xml文件中添加以下依赖: <dependency> &…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部