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++命名空间5种常见用法实例解析

    C++命名空间5种常见用法实例解析 在C++编程中,命名空间是一个非常有用的特性,它能够将一组相关的标识符封装在一个叫做命名空间的区域内。接下来,本文将会详细讲解C++命名空间的5种常见用法,包括:命名空间的创建、命名空间的嵌套、命名空间的别名、命名空间的使用和命名空间的重载。 1.命名空间的创建 在C++中,我们可以通过namespace关键字来创建命名空…

    C 2023年5月30日
    00
  • MFC程序中使用QT开发界面的实现步骤

    在MFC程序中使用QT开发界面的实现步骤一般可以分为以下几个步骤: 安装Qt。 首先需要下载并安装Qt,并且需要选择安装MFC集成插件,确保集成在Visual Studio中可以直接使用。 新建QT窗口。 使用Visual Studio来创建一个Qt窗口,操作如下: a. 在Visual Studio中打开MFC项目。 b. 在解决方案窗口中右键单击项目名称…

    C 2023年5月30日
    00
  • C语言函数语法详解

    针对您提出的问题,我将为您详细讲解C语言函数语法的详细攻略。 什么是函数 函数是C语言中非常重要的程序构建模块,简单来说,函数就是封装了一段可重用的代码,也就是说可以把这段代码当成“黑盒子”,在需要的时候直接调用即可。一个好的函数应该具有以下几个特点: 可重用性:一个好的函数应该是可重用的,可以在程序的多个不同位置调用。 独立性:函数应该尽可能独立,不受函数…

    C 2023年5月23日
    00
  • C语言运算符优先级列表(超详细)

    C语言运算符优先级列表(超详细) 前言 在C语言中,运算符的优先级不同,会影响整个表达式的计算结果,因此深入了解运算符的优先级是非常有必要的。本文将给出C语言中各种运算符的优先级列表及说明,以帮助读者更好地掌握C语言的运算符。 运算符优先级列表 运算符 结合性 说明 () [] -> . 从左到右 圆括号,方括号,箭头符(用于结构体指针),点符号(用于…

    C 2023年5月22日
    00
  • C++实现AVL树的完整代码

    实现AVL树的完整代码需要遵循以下步骤: 第一步:头文件声明 在代码文件的开头,我们需要声明头文件,以引入所需的库和类。在实现AVL树的完整代码中,我们需要添加以下头文件: #include <iostream> #include <algorithm> 这里用到了C++标准库中的iostream库,用于输入输出操作,以及algori…

    C 2023年5月24日
    00
  • 使用SpringMVC响应json格式返回的结果类型

    使用SpringMVC响应json格式返回的结果类型是一个常见的Web开发需求,我们可以通过以下步骤来完成: 1. 引入相关依赖 我们首先需要在项目中引入相关依赖。最重要的依赖是Jackson库,它可以帮我们将Java对象转换为JSON格式的字符串。这里我们需要添加以下依赖到我们的项目中: <!– Spring Web –> <depe…

    C 2023年5月23日
    00
  • jQuery简单验证上传文件大小及类型的方法

    下面就是对于“jQuery简单验证上传文件大小及类型的方法”的详细攻略。 什么是文件验证? 文件上传是Web开发中常用的功能,但是常常需要验证上传文件的大小、类型等信息。通过对文件进行验证,可以避免上传恶意或者不支持的文件类型,也可以限制文件的大小,避免系统资源浪费,提高系统的安全性和稳定性。 如何使用jQuery验证上传文件大小及类型? 在jQuery中,…

    C 2023年5月23日
    00
  • SQL Server 利用触发器对多表视图进行更新的实现方法

    SQL Server 利用触发器对多表视图进行更新的实现方法是一个比较常见的问题,它需要借助于视图、触发器、存储过程等多种技术。下面是一个详细的攻略: 1. 创建多表视图 多表视图是由多个基本表结合而成的虚拟表,可以实现数据的分组、组合、限制等操作。在创建多表视图时,需要使用“CREATE VIEW”语句,并在其中指定所需的基本表和字段。 示例1: CREA…

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