通讯录系统的设计与实现 代码
时间: 2023-08-15 08:03:50 浏览: 47
下面是一个简单的通讯录系统设计与实现的C++代码示例:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 联系人结构体
struct Contact {
string name; // 姓名
string phone; // 电话
string email; // 邮箱
};
// 通讯录类
class AddressBook {
public:
// 构造函数
AddressBook() {
load(); // 加载数据
}
// 添加联系人
void addContact() {
Contact contact;
cout << "请输入姓名:";
cin >> contact.name;
cout << "请输入电话:";
cin >> contact.phone;
cout << "请输入邮箱:";
cin >> contact.email;
contacts_.push_back(contact); // 添加到联系人列表中
save(); // 保存数据
cout << "添加成功!" << endl;
}
// 删除联系人
void deleteContact() {
string name;
cout << "请输入要删除的联系人姓名:";
cin >> name;
for (auto it = contacts_.begin(); it != contacts_.end(); ++it) {
if (it->name == name) {
contacts_.erase(it); // 从联系人列表中删除
save(); // 保存数据
cout << "删除成功!" << endl;
return;
}
}
cout << "联系人不存在!" << endl;
}
// 显示所有联系人
void showContacts() {
if (contacts_.empty()) {
cout << "无联系人!" << endl;
} else {
for (const auto& contact : contacts_) {
cout << "姓名:" << contact.name << ",电话:" << contact.phone << ",邮箱:" << contact.email << endl;
}
}
}
// 查找联系人
void findContact() {
string name;
cout << "请输入要查找的联系人姓名:";
cin >> name;
for (const auto& contact : contacts_) {
if (contact.name == name) {
cout << "姓名:" << contact.name << ",电话:" << contact.phone << ",邮箱:" << contact.email << endl;
return;
}
}
cout << "联系人不存在!" << endl;
}
private:
vector<Contact> contacts_; // 联系人列表
// 加载数据
void load() {
ifstream ifs("address_book.txt");
if (ifs) {
Contact contact;
while (ifs >> contact.name >> contact.phone >> contact.email) {
contacts_.push_back(contact);
}
}
}
// 保存数据
void save() const {
ofstream ofs("address_book.txt");
for (const auto& contact : contacts_) {
ofs << contact.name << " " << contact.phone << " " << contact.email << endl;
}
}
};
// 主函数
int main() {
AddressBook addressBook;
while (true) {
cout << "请选择操作:1.添加联系人 2.删除联系人 3.显示所有联系人 4.查找联系人 0.退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
addressBook.addContact();
break;
case 2:
addressBook.deleteContact();
break;
case 3:
addressBook.showContacts();
break;
case 4:
addressBook.findContact();
break;
case 0:
cout << "感谢使用通讯录系统!" << endl;
return 0;
default:
cout << "非法操作!" << endl;
break;
}
}
}
```
这个通讯录系统使用了一个Contact结构体来表示每个联系人的姓名、电话、邮箱等信息,使用了一个vector<Contact>来存储所有联系人。在主函数中,通过一个循环来不断显示菜单并等待用户输入操作,根据用户输入的操作来调用相应的函数,实现添加联系人、删除联系人、显示所有联系人和查找联系人等功能。在AddressBook类中,使用了一个load()函数来从文件中加载数据,使用了一个save()函数来保存数据,实现了添加联系人、删除联系人、显示所有联系人和查找联系人等功能。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)