
C++实现通讯录类功能:添加、显示、删除记录
下载需积分: 50 | 838B |
更新于2025-02-11
| 155 浏览量 | 举报
1
收藏
在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`将姓名映射到其他信息,或者使用工厂模式等。
通过以上内容,我们可以了解到构建一个简单通讯录类的基本方法,并且理解了成员函数在实现记录管理操作中的重要性。
相关推荐








Darkmoss
- 粉丝: 5
最新资源
- 指纹识别算法套件:C++源代码及样本
- 探索WANT.2.0.4的Delphi构建工具特性
- UDP多播通信与IOCP实现的示例研究
- Vc++端口映射技术实现与源码分析
- Apache 2.2.4与Tomcat 6.0.16整合配置教程
- 郭克华J2ME GAME API3实例教程详解
- Symbian开发新手入门与常用框架架构
- ARM7与uc/os—II移植实践及源代码解析
- VC6.0基础教程与实例操作指南
- C#教程:如何在2003系统中使用代码创建IIS站点
- Web页面批量上传组件使用教程与示例
- 掌握ASP.NET基础:入门教程与Demo下载
- no$gba2.6a模拟器:体验任天堂口袋怪兽游戏
- 探索ARM9 2410开发板与wince5.0系统的高级实验
- WWF工作流设计器C#源码解析及演示
- Web2.0新特征图解解析