从c++的角度说明建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
时间: 2023-12-21 11:04:03 浏览: 46
在C++中可以使用类来实现通讯录的建立,以下是一个简单的通讯录类的实现:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Contact {
private:
string name;
string phone;
string address;
public:
Contact(string n, string p, string a) : name(n), phone(p), address(a) {}
string getName() const {
return name;
}
string getPhone() const {
return phone;
}
string getAddress() const {
return address;
}
void setName(string n) {
name = n;
}
void setPhone(string p) {
phone = p;
}
void setAddress(string a) {
address = a;
}
};
class AddressBook {
private:
vector<Contact> contacts;
public:
void display() const {
for (const auto& c : contacts) {
cout << "Name: " << c.getName() << endl;
cout << "Phone: " << c.getPhone() << endl;
cout << "Address: " << c.getAddress() << endl << endl;
}
}
void add(Contact c) {
contacts.push_back(c);
}
int find(string name) const {
for (int i = 0; i < contacts.size(); i++) {
if (contacts[i].getName() == name) {
return i;
}
}
return -1;
}
void modify(int index, Contact c) {
contacts[index] = c;
}
void remove(int index) {
contacts.erase(contacts.begin() + index);
}
};
int main() {
AddressBook book;
// Add contacts
book.add(Contact("John Smith", "123-456-7890", "123 Main St"));
book.add(Contact("Jane Doe", "555-555-5555", "456 Elm St"));
// Display contacts
book.display();
// Find contact
int index = book.find("John Smith");
if (index != -1) {
Contact c = book[index];
cout << "Found contact:" << endl;
cout << "Name: " << c.getName() << endl;
cout << "Phone: " << c.getPhone() << endl;
cout << "Address: " << c.getAddress() << endl << endl;
} else {
cout << "Contact not found." << endl;
}
// Modify contact
index = book.find("Jane Doe");
if (index != -1) {
Contact c = book[index];
c.setPhone("999-999-9999");
book.modify(index, c);
cout << "Modified contact:" << endl;
cout << "Name: " << c.getName() << endl;
cout << "Phone: " << c.getPhone() << endl;
cout << "Address: " << c.getAddress() << endl << endl;
} else {
cout << "Contact not found." << endl;
}
// Remove contact
index = book.find("John Smith");
if (index != -1) {
book.remove(index);
cout << "Contact removed." << endl;
} else {
cout << "Contact not found." << endl;
}
// Display contacts again
book.display();
return 0;
}
```
这个类中包含两个类,一个是Contact类,用于存储联系人的姓名、电话和地址。另一个是AddressBook类,用于管理Contact对象的集合。
AddressBook类中包含了显示、添加、查找、修改和删除联系人的方法。其中,添加联系人使用的是add()方法,查找联系人使用的是find()方法,修改联系人使用的是modify()方法,删除联系人使用的是remove()方法。而显示所有联系人的信息则使用的是display()方法。
在main函数中,首先创建了一个AddressBook对象book,并添加了两个Contact对象。接着使用display()方法显示了所有联系人的信息。然后使用find()方法查找了一个联系人,并显示了该联系人的信息。接着使用modify()方法修改了另一个联系人的电话号码,并显示了修改后的联系人的信息。最后使用remove()方法删除了一个联系人,并再次显示了所有联系人的信息。
这个通讯录类简单实用,可以满足基本的需求,但在实际使用中还需要进行进一步的扩展和优化。