用c++实现下面问题:本项目主要结合教材所学知识开发一个个人版通讯录,要求通讯录可以实现以下功能:1添加联系人2删除联系人3查找联系人4联系人列表5通讯录存盘6读出通讯录7退出
时间: 2024-05-14 19:16:31 浏览: 38
好的,下面是用C++实现的通讯录程序:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct Contact {
string name;
string phone;
};
class AddressBook {
public:
// 添加联系人
void AddContact() {
Contact c;
cout << "请输入联系人姓名:" << endl;
cin >> c.name;
cout << "请输入联系人电话:" << endl;
cin >> c.phone;
contacts.push_back(c);
cout << "添加联系人成功!" << endl;
}
// 删除联系人
void RemoveContact() {
string name;
cout << "请输入要删除的联系人姓名:" << endl;
cin >> name;
for (vector<Contact>::iterator it = contacts.begin(); it != contacts.end(); ++it) {
if (it->name == name) {
contacts.erase(it);
cout << "删除联系人成功!" << endl;
return;
}
}
cout << "联系人不存在!" << endl;
}
// 查找联系人
void SearchContact() {
string name;
cout << "请输入要查找的联系人姓名:" << endl;
cin >> name;
for (vector<Contact>::iterator it = contacts.begin(); it != contacts.end(); ++it) {
if (it->name == name) {
cout << "联系人姓名:" << it->name << endl;
cout << "联系人电话:" << it->phone << endl;
return;
}
}
cout << "联系人不存在!" << endl;
}
// 显示联系人列表
void ShowContactList() {
if (contacts.empty()) {
cout << "联系人列表为空!" << endl;
return;
}
cout << "联系人列表:" << endl;
for (vector<Contact>::iterator it = contacts.begin(); it != contacts.end(); ++it) {
cout << "姓名:" << it->name << ",电话:" << it->phone << endl;
}
}
// 通讯录存盘
void SaveToFile() {
ofstream ofs("addressbook.txt");
for (vector<Contact>::iterator it = contacts.begin(); it != contacts.end(); ++it) {
ofs << it->name << " " << it->phone << endl;
}
ofs.close();
cout << "通讯录已存盘!" << endl;
}
// 读出通讯录
void ReadFromFile() {
ifstream ifs("addressbook.txt");
if (!ifs.is_open()) {
cout << "无法打开通讯录文件!" << endl;
return;
}
Contact c;
while (ifs >> c.name && ifs >> c.phone) {
contacts.push_back(c);
}
ifs.close();
cout << "读取通讯录成功!" << endl;
}
private:
vector<Contact> contacts;
};
int main() {
AddressBook ab;
while (true) {
cout << "请选择操作:" << endl;
cout << "1.添加联系人" << endl;
cout << "2.删除联系人" << endl;
cout << "3.查找联系人" << endl;
cout << "4.联系人列表" << endl;
cout << "5.通讯录存盘" << endl;
cout << "6.读出通讯录" << endl;
cout << "7.退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
ab.AddContact();
break;
case 2:
ab.RemoveContact();
break;
case 3:
ab.SearchContact();
break;
case 4:
ab.ShowContactList();
break;
case 5:
ab.SaveToFile();
break;
case 6:
ab.ReadFromFile();
break;
case 7:
cout << "谢谢使用!" << endl;
return 0;
default:
cout << "请选择正确的操作!" << endl;
}
}
return 0;
}
```
在该程序中,我们使用了结构体 `Contact` 来表示一个联系人,使用了 `vector` 容器来存储多个联系人。`AddressBook` 类包含了添加、删除、查找、显示联系人列表、通讯录存盘、读出通讯录等方法,以及一个 `contacts` 成员变量来存储联系人列表。在 `main` 函数中,我们通过一个循环来不断读取用户的操作选择,并调用相应的方法来实现各种功能。
阅读全文