从c++的角度说明建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
时间: 2023-12-21 11:03:54 浏览: 95
要建立一通讯录,首先需要定义一个存储联系人信息的数据结构。可以使用结构体来表示一个联系人的信息,如下所示:
```c++
struct Contact
{
std::string name; // 姓名
std::string phoneNum; // 电话号码
std::string address; // 地址
};
```
然后,我们可以定义一个动态数组来存储多个联系人的信息:
```c++
std::vector<Contact> contacts;
```
接下来,我们就可以实现通讯录的各种功能了:
1. 添加联系人
可以通过以下代码实现:
```c++
void addContact()
{
Contact c;
std::cin.ignore(); // 忽略之前的换行符
std::cout << "请输入姓名:";
std::getline(std::cin, c.name);
std::cout << "请输入电话号码:";
std::getline(std::cin, c.phoneNum);
std::cout << "请输入地址:";
std::getline(std::cin, c.address);
contacts.push_back(c);
}
```
2. 显示联系人
可以通过以下代码实现:
```c++
void showContacts()
{
std::cout << "姓名\t电话号码\t地址" << std::endl;
for (const auto& c : contacts)
{
std::cout << c.name << '\t' << c.phoneNum << '\t' << c.address << std::endl;
}
}
```
3. 查找联系人
可以通过以下代码实现:
```c++
void findContact()
{
std::string name;
std::cout << "请输入要查找的姓名:";
std::getline(std::cin, name);
for (const auto& c : contacts)
{
if (c.name == name)
{
std::cout << "姓名\t电话号码\t地址" << std::endl;
std::cout << c.name << '\t' << c.phoneNum << '\t' << c.address << std::endl;
return;
}
}
std::cout << "未找到该联系人!" << std::endl;
}
```
4. 修改联系人
可以通过以下代码实现:
```c++
void modifyContact()
{
std::string name;
std::cout << "请输入要修改的联系人姓名:";
std::getline(std::cin, name);
for (auto& c : contacts)
{
if (c.name == name)
{
std::cout << "请输入新的电话号码:";
std::getline(std::cin, c.phoneNum);
std::cout << "请输入新的地址:";
std::getline(std::cin, c.address);
std::cout << "联系人信息已修改!" << std::endl;
return;
}
}
std::cout << "未找到该联系人!" << std::endl;
}
```
5. 删除联系人
可以通过以下代码实现:
```c++
void deleteContact()
{
std::string name;
std::cout << "请输入要删除的联系人姓名:";
std::getline(std::cin, name);
for (auto iter = contacts.begin(); iter != contacts.end(); ++iter)
{
if (iter->name == name)
{
contacts.erase(iter);
std::cout << "联系人已删除!" << std::endl;
return;
}
}
std::cout << "未找到该联系人!" << std::endl;
}
```
完整的程序如下所示:
```c++
#include <iostream>
#include <string>
#include <vector>
struct Contact
{
std::string name;
std::string phoneNum;
std::string address;
};
std::vector<Contact> contacts;
void addContact()
{
Contact c;
std::cin.ignore(); // 忽略之前的换行符
std::cout << "请输入姓名:";
std::getline(std::cin, c.name);
std::cout << "请输入电话号码:";
std::getline(std::cin, c.phoneNum);
std::cout << "请输入地址:";
std::getline(std::cin, c.address);
contacts.push_back(c);
}
void showContacts()
{
std::cout << "姓名\t电话号码\t地址" << std::endl;
for (const auto& c : contacts)
{
std::cout << c.name << '\t' << c.phoneNum << '\t' << c.address << std::endl;
}
}
void findContact()
{
std::string name;
std::cout << "请输入要查找的姓名:";
std::getline(std::cin, name);
for (const auto& c : contacts)
{
if (c.name == name)
{
std::cout << "姓名\t电话号码\t地址" << std::endl;
std::cout << c.name << '\t' << c.phoneNum << '\t' << c.address << std::endl;
return;
}
}
std::cout << "未找到该联系人!" << std::endl;
}
void modifyContact()
{
std::string name;
std::cout << "请输入要修改的联系人姓名:";
std::getline(std::cin, name);
for (auto& c : contacts)
{
if (c.name == name)
{
std::cout << "请输入新的电话号码:";
std::getline(std::cin, c.phoneNum);
std::cout << "请输入新的地址:";
std::getline(std::cin, c.address);
std::cout << "联系人信息已修改!" << std::endl;
return;
}
}
std::cout << "未找到该联系人!" << std::endl;
}
void deleteContact()
{
std::string name;
std::cout << "请输入要删除的联系人姓名:";
std::getline(std::cin, name);
for (auto iter = contacts.begin(); iter != contacts.end(); ++iter)
{
if (iter->name == name)
{
contacts.erase(iter);
std::cout << "联系人已删除!" << std::endl;
return;
}
}
std::cout << "未找到该联系人!" << std::endl;
}
void printMenu()
{
std::cout << "=============================" << std::endl;
std::cout << "通讯录管理系统" << std::endl;
std::cout << "1. 添加联系人" << std::endl;
std::cout << "2. 显示联系人" << std::endl;
std::cout << "3. 查找联系人" << std::endl;
std::cout << "4. 修改联系人" << std::endl;
std::cout << "5. 删除联系人" << std::endl;
std::cout << "6. 退出程序" << std::endl;
std::cout << "=============================" << std::endl;
}
int main()
{
while (true)
{
printMenu();
std::cout << "请输入操作编号:";
int choice;
std::cin >> choice;
switch (choice)
{
case 1:
addContact();
break;
case 2:
showContacts();
break;
case 3:
findContact();
break;
case 4:
modifyContact();
break;
case 5:
deleteContact();
break;
case 6:
std::cout << "程序已退出!" << std::endl;
return 0;
default:
std::cout << "输入有误,请重新输入!" << std::endl;
break;
}
}
}
```
阅读全文