C++如何实现通讯录系统

发布时间:2022-06-21 09:46:45 作者:iii
来源:亿速云 阅读:174

C++如何实现通讯录系统

通讯录系统是一种常见的管理联系人信息的工具,它可以帮助用户存储、查询、修改和删除联系人信息。本文将介绍如何使用C++实现一个简单的通讯录系统。

1. 系统功能需求

在开始编写代码之前,我们需要明确通讯录系统的基本功能需求:

  1. 添加联系人:用户可以输入联系人的姓名、电话号码等信息,并将其存储到通讯录中。
  2. 显示所有联系人:系统可以显示所有已存储的联系人信息。
  3. 查找联系人:用户可以通过姓名或电话号码查找特定的联系人。
  4. 修改联系人信息:用户可以修改已存储的联系人信息。
  5. 删除联系人:用户可以从通讯录中删除指定的联系人。
  6. 退出系统:用户可以退出通讯录系统。

2. 数据结构设计

为了存储联系人信息,我们可以使用struct来定义一个联系人结构体,包含姓名、电话号码等字段。为了方便管理多个联系人,我们可以使用std::vector来存储所有的联系人。

#include <iostream>
#include <vector>
#include <string>

struct Contact {
    std::string name;
    std::string phoneNumber;
};

3. 功能实现

3.1 添加联系人

用户可以通过输入姓名和电话号码来添加联系人。我们将联系人信息存储到std::vector<Contact>中。

void addContact(std::vector<Contact>& contacts) {
    Contact newContact;
    std::cout << "请输入姓名: ";
    std::cin >> newContact.name;
    std::cout << "请输入电话号码: ";
    std::cin >> newContact.phoneNumber;
    contacts.push_back(newContact);
    std::cout << "联系人添加成功!" << std::endl;
}

3.2 显示所有联系人

我们可以遍历std::vector<Contact>,并输出每个联系人的信息。

void displayContacts(const std::vector<Contact>& contacts) {
    if (contacts.empty()) {
        std::cout << "通讯录为空!" << std::endl;
        return;
    }
    for (const auto& contact : contacts) {
        std::cout << "姓名: " << contact.name << ", 电话号码: " << contact.phoneNumber << std::endl;
    }
}

3.3 查找联系人

用户可以通过姓名或电话号码查找联系人。我们可以遍历std::vector<Contact>,并匹配用户输入的关键字。

void findContact(const std::vector<Contact>& contacts) {
    std::string keyword;
    std::cout << "请输入要查找的姓名或电话号码: ";
    std::cin >> keyword;

    bool found = false;
    for (const auto& contact : contacts) {
        if (contact.name == keyword || contact.phoneNumber == keyword) {
            std::cout << "找到联系人: 姓名: " << contact.name << ", 电话号码: " << contact.phoneNumber << std::endl;
            found = true;
        }
    }
    if (!found) {
        std::cout << "未找到联系人!" << std::endl;
    }
}

3.4 修改联系人信息

用户可以通过姓名查找联系人,并修改其信息。我们可以遍历std::vector<Contact>,找到匹配的联系人后,允许用户修改其信息。

void modifyContact(std::vector<Contact>& contacts) {
    std::string name;
    std::cout << "请输入要修改的联系人姓名: ";
    std::cin >> name;

    for (auto& contact : contacts) {
        if (contact.name == name) {
            std::cout << "请输入新的电话号码: ";
            std::cin >> contact.phoneNumber;
            std::cout << "联系人信息修改成功!" << std::endl;
            return;
        }
    }
    std::cout << "未找到联系人!" << std::endl;
}

3.5 删除联系人

用户可以通过姓名查找联系人,并将其从std::vector<Contact>中删除。

void deleteContact(std::vector<Contact>& contacts) {
    std::string name;
    std::cout << "请输入要删除的联系人姓名: ";
    std::cin >> name;

    for (auto it = contacts.begin(); it != contacts.end(); ++it) {
        if (it->name == name) {
            contacts.erase(it);
            std::cout << "联系人删除成功!" << std::endl;
            return;
        }
    }
    std::cout << "未找到联系人!" << std::endl;
}

3.6 退出系统

用户可以选择退出系统,结束程序的运行。

void exitSystem() {
    std::cout << "退出系统,感谢使用!" << std::endl;
    exit(0);
}

4. 主函数设计

在主函数中,我们可以使用一个循环来不断显示菜单,并根据用户的选择调用相应的功能函数。

int main() {
    std::vector<Contact> contacts;
    int choice;

    while (true) {
        std::cout << "\n通讯录管理系统\n";
        std::cout << "1. 添加联系人\n";
        std::cout << "2. 显示所有联系人\n";
        std::cout << "3. 查找联系人\n";
        std::cout << "4. 修改联系人信息\n";
        std::cout << "5. 删除联系人\n";
        std::cout << "6. 退出系统\n";
        std::cout << "请选择操作: ";
        std::cin >> choice;

        switch (choice) {
            case 1:
                addContact(contacts);
                break;
            case 2:
                displayContacts(contacts);
                break;
            case 3:
                findContact(contacts);
                break;
            case 4:
                modifyContact(contacts);
                break;
            case 5:
                deleteContact(contacts);
                break;
            case 6:
                exitSystem();
                break;
            default:
                std::cout << "无效的选择,请重新输入!" << std::endl;
                break;
        }
    }

    return 0;
}

5. 总结

通过以上步骤,我们实现了一个简单的通讯录系统。该系统可以满足基本的联系人管理需求,包括添加、显示、查找、修改和删除联系人。当然,这个系统还可以进一步扩展,例如增加更多的联系人信息字段、支持文件存储、提供更复杂的查找功能等。

希望本文能帮助你理解如何使用C++实现一个简单的通讯录系统。如果你有任何问题或建议,欢迎在评论区留言讨论!

推荐阅读:
  1. C++实现简单通讯录
  2. C++怎么实现通讯录管理系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:怎么使用Python+Pyecharts实现散点图

下一篇:MySQL数据库的触发器和存储过程实例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》