从c++的角度说明建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
时间: 2023-12-14 13:03:57 浏览: 27
首先,我们可以定义一个结构体来表示每个联系人的信息:
```c++
struct Contact {
string name;
string phone;
string address;
};
```
然后,我们可以使用一个vector来存储所有联系人的信息:
```c++
vector<Contact> contacts;
```
接下来,我们可以编写一个菜单程序,让用户选择需要进行的操作:
```c++
int main() {
while (true) {
cout << "请选择操作:\n";
cout << "1. 显示通讯录\n";
cout << "2. 查找联系人\n";
cout << "3. 添加联系人\n";
cout << "4. 修改联系人\n";
cout << "5. 删除联系人\n";
cout << "6. 退出程序\n";
int choice;
cin >> choice;
switch (choice) {
case 1:
showContacts();
break;
case 2:
searchContact();
break;
case 3:
addContact();
break;
case 4:
modifyContact();
break;
case 5:
deleteContact();
break;
case 6:
return 0;
default:
cout << "无效的选择,请重新输入。\n";
}
}
}
```
下面是各个操作的实现细节:
1. 显示通讯录
```c++
void showContacts() {
if (contacts.empty()) {
cout << "通讯录为空。\n";
return;
}
cout << "姓名\t电话\t住址\n";
for (const auto& contact : contacts) {
cout << contact.name << '\t' << contact.phone << '\t' << contact.address << '\n';
}
}
```
2. 查找联系人
```c++
void searchContact() {
if (contacts.empty()) {
cout << "通讯录为空。\n";
return;
}
cout << "请输入要查找的联系人姓名:";
string name;
cin >> name;
for (const auto& contact : contacts) {
if (contact.name == name) {
cout << "电话:" << contact.phone << '\n';
cout << "住址:" << contact.address << '\n';
return;
}
}
cout << "未找到联系人 " << name << "。\n";
}
```
3. 添加联系人
```c++
void addContact() {
cout << "请输入新联系人的姓名:";
string name;
cin >> name;
for (const auto& contact : contacts) {
if (contact.name == name) {
cout << "联系人 " << name << " 已存在。\n";
return;
}
}
cout << "请输入新联系人的电话号码:";
string phone;
cin >> phone;
cout << "请输入新联系人的住址:";
string address;
cin >> address;
Contact newContact = {name, phone, address};
contacts.push_back(newContact);
cout << "联系人 " << name << " 已添加。\n";
}
```
4. 修改联系人
```c++
void modifyContact() {
if (contacts.empty()) {
cout << "通讯录为空。\n";
return;
}
cout << "请输入要修改的联系人姓名:";
string name;
cin >> name;
for (auto& contact : contacts) {
if (contact.name == name) {
cout << "请输入新的电话号码:";
cin >> contact.phone;
cout << "请输入新的住址:";
cin >> contact.address;
cout << "联系人 " << name << " 已修改。\n";
return;
}
}
cout << "未找到联系人 " << name << "。\n";
}
```
5. 删除联系人
```c++
void deleteContact() {
if (contacts.empty()) {
cout << "通讯录为空。\n";
return;
}
cout << "请输入要删除的联系人姓名:";
string name;
cin >> name;
for (auto iter = contacts.begin(); iter != contacts.end(); ++iter) {
if (iter->name == name) {
contacts.erase(iter);
cout << "联系人 " << name << " 已删除。\n";
return;
}
}
cout << "未找到联系人 " << name << "。\n";
}
```