C++ 类实现个人通信录程序:添加、查询联系人信息

本文将介绍如何使用 C++ 类设计一个简单的个人通信录程序,实现添加、根据姓名查询和根据电话号码查询联系人信息等功能。

代码示例

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

// 定义联系人类
class Contact {
private:
    std::string name;
    std::string phoneNumber;
    std::string emailAddress;

public:
    // 构造函数
    Contact(const std::string& name, const std::string& phoneNumber, const std::string& emailAddress) {
        this->name = name;
        this->phoneNumber = phoneNumber;
        this->emailAddress = emailAddress;
    }

    // 获取联系人姓名
    std::string getName() const {
        return name;
    }

    // 获取联系电话
    std::string getPhoneNumber() const {
        return phoneNumber;
    }

    // 获取电邮地址
    std::string getEmailAddress() const {
        return emailAddress;
    }
};

// 定义通信录类
class AddressBook {
private:
    std::vector<Contact> contacts;

public:
    // 添加联系人
    void addContact(const Contact& contact) {
        contacts.push_back(contact);
    }

    // 根据姓名查询联系人信息
    void searchByName(const std::string& name) const {
        bool found = false;
        for (const auto& contact : contacts) {
            if (contact.getName() == name) {
                std::cout << '姓名: ' << contact.getName() << std::endl;
                std::cout << '联系电话: ' << contact.getPhoneNumber() << std::endl;
                std::cout << '电邮地址: ' << contact.getEmailAddress() << std::endl;
                found = true;
                break;
            }
        }
        if (!found) {
            std::cout << '未找到该联系人!' << std::endl;
        }
    }

    // 根据电话号码查询联系人姓名
    void searchByPhoneNumber(const std::string& phoneNumber) const {
        bool found = false;
        for (const auto& contact : contacts) {
            if (contact.getPhoneNumber() == phoneNumber) {
                std::cout << '联系人姓名: ' << contact.getName() << std::endl;
                found = true;
                break;
            }
        }
        if (!found) {
            std::cout << '未找到该电话号码对应的联系人!' << std::endl;
        }
    }
};

int main() {
    AddressBook addressBook;

    // 添加联系人
    Contact contact1('张三', '123456789', 'zhangsan@example.com');
    addressBook.addContact(contact1);

    Contact contact2('李四', '987654321', 'lisi@example.com');
    addressBook.addContact(contact2);

    // 根据姓名查询联系人信息
    std::cout << '请输入要查询的联系人姓名:';
    std::string name;
    std::cin >> name;
    addressBook.searchByName(name);

    // 根据电话号码查询联系人姓名
    std::cout << '请输入要查询的电话号码:';
    std::string phoneNumber;
    std::cin >> phoneNumber;
    addressBook.searchByPhoneNumber(phoneNumber);

    return 0;
}

代码说明

  • 程序使用了两个类:Contact(联系人)和 AddressBook(通信录)。
  • Contact 类表示一个联系人,包含姓名、联系电话和电邮地址等信息。
  • AddressBook 类表示一个通信录,包含多个联系人对象,并提供添加联系人、根据姓名查询联系人信息和根据电话号码查询联系人姓名等功能。
  • main 函数中,首先创建一个 AddressBook 对象 addressBook,并添加了两个联系人对象。
  • 然后,用户可以输入要查询的联系人姓名和电话号码,程序将根据输入的姓名或电话号码进行查询并输出相应的联系人信息。

进一步优化

  • 可以添加更多联系人信息,例如地址、生日等。
  • 可以使用文件存储联系人信息,以便在程序结束后保存数据。
  • 可以使用更高级的数据结构,例如 std::mapstd::unordered_map,来提高查询效率。

希望本文能够帮助您理解如何使用 C++ 类来设计一个简单的个人通信录程序。


原文地址: https://www.cveoy.top/t/topic/o4NA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录