C++实现简单通讯录管理系统

C++实现简单通讯录管理系统攻略

目标

实现一个简单的通讯录管理系统,可以进行添加联系人、删除联系人、修改联系人和显示联系人等操作。程序的主要功能如下:

  1. 添加联系人:输入姓名、性别、年龄、电话及地址信息,添加一个联系人信息到通讯录中。
  2. 显示联系人:显示通讯录中的所有联系人信息。
  3. 删除联系人:输入要删除联系人的姓名,从通讯录中删除该联系人的信息。
  4. 查找联系人:输入要查找联系人的姓名,从通讯录中查找该联系人的信息。
  5. 修改联系人:输入要修改联系人的姓名,然后可以修改该联系人的姓名、性别、年龄、电话或地址信息。

实现步骤

1. 首先定义联系人结构体

struct Contact
{
    string name;    // 姓名
    string gender;  // 性别
    int age;        // 年龄
    string phone;   // 电话
    string address; // 地址
};

2. 定义通讯录类

class AddressBook
{
public:
    // 添加联系人
    void addContact(Contact& contact);

    // 显示所有联系人
    void showAllContacts();

    // 查找联系人
    void searchContact(string name);

    // 删除联系人
    void deleteContact(string name);

    // 修改联系人
    void modifyContact(string name);

private:
    vector<Contact> contacts; // 通讯录联系人数组
};

3. 添加联系人功能实现

void AddressBook::addContact(Contact& contact)
{
    this->contacts.push_back(contact);
    cout << "联系人添加成功!" << endl;
}

4. 显示所有联系人功能实现

void AddressBook::showAllContacts()
{
    if (this->contacts.empty()) {
        cout << "通讯录为空!" << endl;
        return;
    }

    for (auto it = this->contacts.begin(); it != this->contacts.end(); it++) {
        Contact contact = *it;
        cout << "姓名:" << contact.name << endl;
        cout << "性别:" << contact.gender << endl;
        cout << "年龄:" << contact.age << endl;
        cout << "电话:" << contact.phone << endl;
        cout << "地址:" << contact.address << endl;
        cout << endl;
    }
}

5. 查找联系人功能实现

void AddressBook::searchContact(string name)
{
    for (auto it = this->contacts.begin(); it != this->contacts.end(); it++) {
        Contact contact = *it;
        if (contact.name == name) {
            cout << "姓名:" << contact.name << endl;
            cout << "性别:" << contact.gender << endl;
            cout << "年龄:" << contact.age << endl;
            cout << "电话:" << contact.phone << endl;
            cout << "地址:" << contact.address << endl;
            cout << endl;
            return;
        }
    }

    cout << "未查询到该联系人。" << endl;
}

6. 删除联系人功能实现

void AddressBook::deleteContact(string name)
{
    for (auto it = this->contacts.begin(); it != this->contacts.end(); it++) {
        Contact contact = *it;
        if (contact.name == name) {
            this->contacts.erase(it);
            cout << "删除联系人成功!" << endl;
            return;
        }
    }

    cout << "未查询到该联系人。" << endl;
}

7. 修改联系人功能实现

void AddressBook::modifyContact(string name)
{
    for (auto it = this->contacts.begin(); it != this->contacts.end(); it++) {
        Contact& contact = *it;
        if (contact.name == name) {
            cout << "请输入新姓名:";
            string newName;
            cin >> newName;
            contact.name = newName;

            cout << "请输入新性别:";
            string newGender;
            cin >> newGender;
            contact.gender = newGender;

            cout << "请输入新年龄:";
            int newAge;
            cin >> newAge;
            contact.age = newAge;

            cout << "请输入新电话:";
            string newPhone;
            cin >> newPhone;
            contact.phone = newPhone;

            cout << "请输入新地址:";
            string newAddress;
            cin >> newAddress;
            contact.address = newAddress;

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

    cout << "未查询到该联系人。" << endl;
}

示例

示例1:添加联系人

int main()
{
    AddressBook ab;

    Contact c1 = {"张三", "男", 23, "13011112222", "北京市朝阳区"};
    Contact c2 = {"李四", "女", 19, "13122223333", "北京市海淀区"};

    ab.addContact(c1);
    ab.addContact(c2);

    ab.showAllContacts();

    return 0;
}

输出结果:

联系人添加成功!
联系人添加成功!

姓名:张三
性别:男
年龄:23
电话:13011112222
地址:北京市朝阳区

姓名:李四
性别:女
年龄:19
电话:13122223333
地址:北京市海淀区

示例2:删除联系人

int main()
{
    AddressBook ab;

    Contact c1 = {"张三", "男", 23, "13011112222", "北京市朝阳区"};
    Contact c2 = {"李四", "女", 19, "13122223333", "北京市海淀区"};

    ab.addContact(c1);
    ab.addContact(c2);

    ab.deleteContact("张三");

    ab.showAllContacts();

    return 0;
}

输出结果:

删除联系人成功!

姓名:李四
性别:女
年龄:19
电话:13122223333
地址:北京市海淀区

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

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

相关文章

  • C++实现模拟shell命令行(代码解析)

    C++实现模拟shell命令行(代码解析) 简介 本文主要介绍如何使用C++实现模拟shell命令行。通过本文,您将学习到如何使用C++实现简单的命令行操作,以及理解如何在命令行中传递参数和执行命令。 实现过程 步骤一:从命令行读取输入 首先我们需要获取用户在命令行中输入的内容,我们可以使用getchar()实现从标准输入读取输入的字符。例如: char c…

    C 2023年5月23日
    00
  • Java语法中Lambda表达式无法抛出异常的解决

    Java 8引入的Lambda表达式是一种比较方便的编程方式,但有一点需要注意:Lambda表达式不能抛出异常。而在实际应用中,有时需要在Lambda表达式中抛出异常,这时候就需要找到“Java语法中Lambda表达式无法抛出异常的解决方法”。 要解决这个问题,可以使用函数式接口和Lambda表达式结合使用,来使Lambda表达式可以抛出异常。 具体步骤如下…

    C 2023年5月22日
    00
  • 雅虎公司C#笔试题(后半部份才是)

    “雅虎公司C#笔试题(后半部份才是)”是一道常见于程序员面试和笔试的题目。下面就从如何解题的角度,为大家讲解完整攻略。 题目描述 题目大意是给出两个字符串,求它们在其中一个字符串中的最长公共子串。 具体需要完成的是,实现一个方法 string Find(string str1, string str2, string source),其中: 参数 str1 …

    C 2023年5月23日
    00
  • C++基础学生管理系统

    C++基础学生管理系统:完整攻略 简介 学生管理系统是程序开发中常见的一个小型项目,用于对学生信息、成绩等进行管理。本篇攻略将介绍如何使用C++编写一个简单的学生管理系统。 功能分析 根据需求,我们将实现以下功能: 添加学生信息(包括姓名、学号、性别、年龄、身份证号、联系电话、家庭住址等); 查询所有学生信息; 按条件查询学生信息(可以按学号、姓名、年龄等条…

    C 2023年5月23日
    00
  • C语言 位运算详解及示例代码

    C语言 位运算详解及示例代码 什么是位运算 在计算机中,数据存储采用二进制的形式,二进制位只有0和1两个取值。位运算是一种直接针对二进制位进行操作的运算,常见的位运算包括按位与、按位或、按位异或、位左移、位右移等。 位运算的分类 在C语言中,位运算可以分为3类:按位逻辑运算符、按位位移运算符和按位赋值运算符。 按位逻辑运算符 按位逻辑运算符用于操作二进制数中…

    C 2023年5月30日
    00
  • 北邮计算机考研复试题的C语言解答精选

    我根据题目需要,为你提供“北邮计算机考研复试题的C语言解答精选”完整攻略,并且包含两条示例说明。 北邮计算机考研复试题的C语言解答精选攻略 1. 确认考试的范围和知识点 在准备考研复试之前,首先要确定考试的范围和知识点。一般来说,计算机考研的复试内容包含C语言、数据结构、计算机组成原理、操作系统等内容。因此,我们需要在准备复试前,全面了解所需要掌握的知识点,…

    C 2023年5月24日
    00
  • Java详细讲解异常Exception的处理

    Java详细讲解异常Exception的处理 什么是异常Exception 异常(Exception)指的是程序运行过程中不正常(错误)的情况,例如输入输出错误、计算错误、网络连接中断等情况。一般来说,出现异常会导致程序停止运行。 在Java中,异常被抛出后可以被程序处理,以免程序崩溃。Java中的异常分为两种类型:受检异常(Checked Exceptio…

    C 2023年5月22日
    00
  • C语言 坐标移动详解及实例代码

    C语言 坐标移动详解及实例代码攻略 坐标移动的概念 在计算机中,坐标移动是指移动一个对象或点的位置以改变其在屏幕上显示的位置。在C语言中,使用结构体来表示坐标,并利用操作结构体的函数来实现坐标移动的功能。 坐标移动的实现步骤 定义结构体 首先,需要定义表示坐标的结构体。一般来说,坐标结构体包含两个变量:x坐标和y坐标。以下是一个示例程序: typedef s…

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