用顺序表实现通信录管理代码
时间: 2024-09-13 16:04:05 浏览: 29
使用顺序表(如数组或链表)实现通信录管理,可以设计成一个简单的结构,例如一个电话簿类,包含姓名、电话号码等属性,以及添加联系人、查找联系人和删除联系人的方法。这里是一个简化的C++示例:
```cpp
#include <iostream>
#include <vector> // 使用动态数组作为顺序表
class Contact {
public:
std::string name;
std::string phone_number;
Contact(const std::string& name, const std::string& phone) : name(name), phone_number(phone) {}
};
class AddressBook {
private:
std::vector<Contact> contacts; // 顺序表存储联系人
public:
void add_contact(const Contact& contact) {
contacts.push_back(contact);
}
bool find_contact(const std::string& name, Contact& found_contact) {
for (const auto& contact : contacts) {
if (contact.name == name) {
found_contact = contact;
return true;
}
}
return false;
}
void remove_contact(const std::string& name) {
for (auto it = contacts.begin(); it != contacts.end(); ++it) {
if (it->name == name) {
contacts.erase(it);
break;
}
}
}
};
int main() {
AddressBook book;
Contact c1("张三", "13800138000");
book.add_contact(c1);
Contact foundContact;
if (book.find_contact("张三", foundContact)) {
std::cout << "找到了 '张三',电话: " << foundContact.phone_number << std::endl;
} else {
std::cout << "未找到 '张三'" << std::endl;
}
return 0;
}
```
在这个例子中,`AddressBook`类维护了一个`Contact`对象的动态列表,并提供相应的方法来管理它们。注意,这个版本没有考虑线程安全,实际应用中可能会需要额外的数据同步机制。