file-type

C++实现通讯录类功能:添加、显示、删除记录

下载需积分: 50 | 838B | 更新于2025-02-11 | 155 浏览量 | 13 下载量 举报 1 收藏
download 立即下载
在C++中创建一个通讯录类涉及到面向对象编程的基本概念,包括类的定义、成员函数的设计与实现以及对象的使用。本知识点将详细说明如何构建这样一个通讯录类,以及如何通过成员函数实现输入记录、显示记录和删除记录的功能。 首先,我们需要定义一个通讯录类,类中应该包含用于存储数据的私有成员变量,如姓名、邮编和手机等信息。接下来,我们要为这个类提供一系列的公有成员函数,以便对通讯录中的记录进行添加、显示和删除操作。 私有成员变量一般包括: - `std::vector<std::string> names;` 用于存储通讯录中所有联系人的姓名。 - `std::vector<std::string> postcodes;` 用于存储通讯录中所有联系人的邮编。 - `std::vector<std::string> phones;` 用于存储通讯录中所有联系人的电话号码。 公有成员函数一般包括: 1. 构造函数:可以是默认构造函数,也可以接受初始数据填充通讯录。 2. 添加记录函数:该函数允许用户输入姓名、邮编和电话号码,并将它们添加到上述三个向量中。 3. 显示记录函数:该函数遍历三个向量,显示当前所有记录的详细信息。 4. 删除记录函数:根据用户输入的姓名(或其他唯一标识符),从三个向量中删除对应的记录。 以下是一个简单的示例实现: ```cpp #include <iostream> #include <vector> #include <string> class AddressBook { private: std::vector<std::string> names; std::vector<std::string> postcodes; std::vector<std::string> phones; public: // 添加记录 void addRecord(const std::string& name, const std::string& postcode, const std::string& phone) { names.push_back(name); postcodes.push_back(postcode); phones.push_back(phone); } // 显示所有记录 void displayRecords() const { for (size_t i = 0; i < names.size(); ++i) { std::cout << "姓名: " << names[i] << ", 邮编: " << postcodes[i] << ", 手机: " << phones[i] << std::endl; } } // 删除记录 bool deleteRecord(const std::string& name) { for (size_t i = 0; i < names.size(); ++i) { if (names[i] == name) { names.erase(names.begin() + i); postcodes.erase(postcodes.begin() + i); phones.erase(phones.begin() + i); return true; } } return false; } }; int main() { AddressBook myAddressBook; // 添加记录示例 myAddressBook.addRecord("张三", "100000", "13800000000"); myAddressBook.addRecord("李四", "200000", "13911111111"); // 显示所有记录示例 myAddressBook.displayRecords(); // 删除记录示例 myAddressBook.deleteRecord("张三"); // 再次显示所有记录,确认张三已被删除 myAddressBook.displayRecords(); return 0; } ``` 在上述代码中,我们首先包含了必要的头文件,并定义了`AddressBook`类。该类拥有三个私有成员变量,分别用于存储姓名、邮编和电话号码,以及三个公有成员函数用于执行添加、显示和删除操作。 - `addRecord`函数接受三个字符串参数(姓名、邮编和电话号码),并使用`push_back`方法将它们添加到对应的向量中。 - `displayRecords`函数遍历这三个向量,并使用`std::cout`显示所有记录。 - `deleteRecord`函数根据提供的姓名,在三个向量中查找对应的记录,并使用`erase`方法删除之。 在`main`函数中,我们创建了一个`AddressBook`对象,并演示了如何使用这些成员函数。通过调用`addRecord`添加记录,`displayRecords`显示记录,以及`deleteRecord`删除记录。 需要注意的是,在实际应用中,我们可能还需要考虑错误处理和输入验证,比如在添加记录时检查姓名、邮编和电话号码是否为空,以及在删除记录时检查记录是否存在。此外,如果需要支持更多的查询、排序等操作,我们可能还需要引入更复杂的数据结构或设计模式,如使用`std::map`或`std::unordered_map`将姓名映射到其他信息,或者使用工厂模式等。 通过以上内容,我们可以了解到构建一个简单通讯录类的基本方法,并且理解了成员函数在实现记录管理操作中的重要性。

相关推荐