通讯录管理系统
通讯录管理系统
内容
// 添加联系人(姓名,性别,年龄,联系电话,家庭住址)
// 显示联系人
// 删除联系人
// 查找联系人
// 修改联系人
// 清空联系人
// 退出通讯录
提示:以下是本篇文章正文内容,下面案例可供参考
一、代码
1.头文件
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<fstream>
#define _FILE "person.txt"
using namespace std;
2.类
class Person
{
public:
// 属性
// 姓名
string m_name;
// 性别
string m_sex;
// 年龄
int m_age;
// 联系方式
int m_phone_number;
// 家庭住址
string m_address;
};
3.函数声明
// 添加联系人
void add_person();
// 显示联系人
void show_person();
// 显示联系人_01
void show_person_01();
// 删除联系人
void delete_person();
// 查找联系人
void find_person();
// 修改联系人
void modification_person();
// 清空联系人
void clear_person();
4.主函数入口
int main()
{
// 初始化用户选择
int select = 0;
// 开启大循环
while (true)
{
cout << "\t\t ---------------------通讯录管理系统---------------------" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 1、添加联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 2、显示联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 3、删除联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 4、查找联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 5、修改联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 6、清空联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 0、退出 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t --------------------------------------------------------" << endl;
cout << "请输入您的选择:" << endl;
// 接受用户选择
cin >> select;
// 根据用户选择不同进入不同的方向
switch (select)
{
case 1: // 添加联系人(姓名,性别,年龄,联系电话,家庭住址)
add_person();
break;
case 2: // 显示联系人
show_person();
break;
case 3: // 删除联系人
show_person_01();
delete_person();
break;
case 4: // 查找联系人
find_person();
break;
case 5: // 修改联系人
show_person_01();
modification_person();
break;
case 6: // 清空联系人
clear_person();
break;
case 0: // 退出通讯录
system("cls");
cout << "确定要退出通讯录吗?" << endl;
cout << "1、确定" << endl;
cout << "2、否定" << endl;
// 初始化用户选择
int choice = 0;
// 接收用户选择
while (true)
{
cin >> choice;
if (choice == 1)
{
cout << "欢迎您下一次使用,再见!" << endl;
// 清屏操作
system("pause");
system("cls");
exit(0);
}
else if (choice == 2)
{
// 清屏操作
system("cls");
break;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
break;
}
}
return 0;
}
5.添加联系人
// 添加联系人
void add_person()
{
system("cls");
cout << "请输入要存储人员数量:" << endl;
// 创建一个容器用于接受人员
vector<Person>v;
// 初始化用户选择
int select = 0;
while (true)
{
// 接受用户选择
cin >> select;
if (select >= 1)
{
break;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
规定v的大小
//v.resize(select);
for (int i = 0; i < select; i++)
{
cout << "-----------------------" << endl;
cout << "请输入第" << i + 1 << "名人员信息:" << endl;
// 录入姓名
cout << "请输入姓名:" << endl;
cin >> name;
// 录入性别
cout << "请输入性别:" << endl;
cin >> sex;
// 录入年龄
cout << "请输入年龄:" << endl;
cin >> age;
// 录入联系方式
cout << "请输入联系方式:" << endl;
cin >> phone_num;
// 录入家庭地址
cout << "请输入家庭地址:" << endl;
cin >> address;
// 创建对象
Person p;
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
// 把类放到容器里面
// vector的容量
v.push_back(p);
}
// 把容器里的数据存放到文件中
ofstream ofs;
ofs.open(_FILE, ios::in | ios::app);
for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
{
ofs << it->m_name << " ";
ofs << it->m_sex << " ";
ofs << it->m_age << " ";
ofs << it->m_phone_number << " ";
ofs << it->m_address << endl;
}
cout << "恭喜你,录入成功:" << endl;
// 清空容器
v.erase(v.begin(), v.end());
ofs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
6.显示联系人
// 显示联系人
void show_person()
{
system("cls");
ifstream ifs;
ifs.open(_FILE, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (ifs.eof())
{
cout << "文件为空!" << endl;
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 读入信息从文件中
while (ifs >> name && ifs >> sex && ifs >> age &&
ifs >> phone_num && ifs >> address)
{
cout << "姓名:" << name << " ";
cout << "性别:" << sex << " ";
cout << "年龄:" << age << " ";
cout << "联系方式:" << phone_num << " ";
cout << "家庭住址:" << address << endl;
}
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
7.显示联系人01(目的:删除或修改之前全部查看一遍)
// 显示联系人_01
void show_person_01()
{
system("cls");
ifstream ifs;
ifs.open(_FILE, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (ifs.eof())
{
cout << "文件为空!" << endl;
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 读入信息从文件中
while (ifs >> name && ifs >> sex && ifs >> age &&
ifs >> phone_num && ifs >> address)
{
cout << "姓名:" << name << " ";
cout << "性别:" << sex << " ";
cout << "年龄:" << age << " ";
cout << "联系方式:" << phone_num << " ";
cout << "家庭住址:" << address << endl;
}
ifs.close();
}
8.删除联系人
// 删除联系人
void delete_person()
{
fstream fs;
fs.open(_FILE, ios::in);
if (!fs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (fs.eof())
{
cout << "文件为空!" << endl;
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 创建一个对象接受信息
Person p;
// 创建一个接受容器
vector<Person>v1;
// 读入信息从文件中
while (fs >> name && fs >> sex && fs >> age &&
fs >> phone_num && fs >> address)
{
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
v1.push_back(p);
}
/*for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << it->m_name << endl;
}*/
选择查询方式
//int select = 0;
cout << "请选择您要删除人的姓名:" << endl;
string delete_name;
// 读入名字
cin >> delete_name;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_name) == delete_name)
{
v1.erase(it);
cout << "删除成功!" << endl;
break;
}
}
fs.close();
// 清空文件并重新录入
fs.open(_FILE, ios::trunc);
fs.close();
fs.open(_FILE, ios::out);
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
fs << it->m_name << " ";
fs << it->m_sex << " ";
fs << it->m_age << " ";
fs << it->m_phone_number << " ";
fs << it->m_address << endl;
}
fs.close();
// 清屏操作
system("pause");
system("cls");
}
9.查找联系人
// 查找联系人
void find_person()
{
system("cls");
ifstream ifs;
ifs.open(_FILE, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (ifs.eof())
{
cout << "文件为空!" << endl;
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 创建一个对象接受信息
Person p;
// 创建一个接受容器
vector<Person>v1;
// 读入信息从文件中
while (ifs >> name && ifs >> sex && ifs >> age &&
ifs >> phone_num && ifs >> address)
{
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
v1.push_back(p);
}
// 请选择查找方式
int select = 0;
cout << "请选择查找方式:" << endl;
cout << "1、姓名" << endl;
cout << "2、联系方式" << endl;
while (true)
{
cin >> select;
if (select == 1)
{
string find_name;
cout << "请输入要查找的姓名:" << endl;
cin >> find_name;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_name) == find_name)
{
cout << "已找到!信息如下:" << endl;
cout << "姓名:" << it->m_name << " ";
cout << "性别:" << it->m_sex << " ";
cout << "年龄:" << it->m_age << " ";
cout << "联系方式:" << it->m_phone_number << " ";
cout << "家庭住址:" << it->m_address << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
}
cout << "查无此人!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
else if (select == 2)
{
int find_phone_num;
cout << "请输入要查找的联系方式:" << endl;
cin >> find_phone_num;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_phone_number) == find_phone_num)
{
cout << "已找到!信息如下:" << endl;
cout << "姓名:" << it->m_name << " ";
cout << "性别:" << it->m_sex << " ";
cout << "年龄:" << it->m_age << " ";
cout << "联系方式:" << it->m_phone_number << " ";
cout << "家庭住址:" << it->m_address << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
}
cout << "查无此人!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
10.修改联系人
// 修改联系人
void modification_person()
{
fstream fs;
fs.open(_FILE, ios::in);
if (!fs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (fs.eof())
{
cout << "文件为空!" << endl;
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 创建一个对象接受信息
Person p;
// 创建一个接受容器
vector<Person>v1;
// 读入信息从文件中
while (fs >> name && fs >> sex && fs >> age &&
fs >> phone_num && fs >> address)
{
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
v1.push_back(p);
}
/*for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << it->m_name << endl;
}*/
选择查询方式
//int select = 0;
cout << "请选择您要修改人的姓名:" << endl;
string modification_name;
// 读入名字
cin >> modification_name;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_name) == modification_name)
{
cout << "-----------------------" << endl;
cout << "请输入新人员信息:" << endl;
// 录入姓名
cout << "请输入姓名:" << endl;
cin >> it->m_name;
// 录入性别
cout << "请输入性别:" << endl;
cin >> it->m_sex;
// 录入年龄
cout << "请输入年龄:" << endl;
cin >> it->m_age;
// 录入联系方式
cout << "请输入联系方式:" << endl;
cin >> it->m_phone_number;
// 录入家庭地址
cout << "请输入家庭地址:" << endl;
cin >> it->m_address;
cout << "修改成功!" << endl;
/*cout << it->m_name << it->m_sex << it->m_age
<< it->m_phone_number << it->m_address << endl;*/
}
}
/*for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << it->m_name << it->m_sex << it->m_age
<< it->m_phone_number << it->m_address << endl;
}*/
fs.close();
// 清空文件并重新录入
fs.open(_FILE, ios::trunc);
fs.close();
fs.open(_FILE, ios::out);
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
fs << it->m_name << " ";
fs << it->m_sex << " ";
fs << it->m_age << " ";
fs << it->m_phone_number << " ";
fs << it->m_address << endl;
}
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
11.清空联系人
// 清空联系人
void clear_person()
{
system("cls");
cout << "确认是否清空联系人" << endl;
cout << "1、确认" << endl;
cout << "2、否认" << endl;
int select = 0;
while (true)
{
cin >> select;
if (select == 1)
{
fstream fs;
fs.open(_FILE, ios_base::out);
cout << "清空成功!" << endl;
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
else if (select == 2)
{
system("cls");
return;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
}
二、全部代码
// 添加联系人(姓名,性别,年龄,联系电话,家庭住址)
// 显示联系人
// 删除联系人
// 查找联系人
// 修改联系人
// 清空联系人
// 退出通讯录
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<fstream>
#define _FILE "person.txt"
using namespace std;
class Person
{
public:
// 属性
// 姓名
string m_name;
// 性别
string m_sex;
// 年龄
int m_age;
// 联系方式
int m_phone_number;
// 家庭住址
string m_address;
};
// 添加联系人
void add_person();
// 显示联系人
void show_person();
// 显示联系人_01
void show_person_01();
// 删除联系人
void delete_person();
// 查找联系人
void find_person();
// 修改联系人
void modification_person();
// 清空联系人
void clear_person();
int main()
{
// 初始化用户选择
int select = 0;
// 开启大循环
while (true)
{
cout << "\t\t ---------------------通讯录管理系统---------------------" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 1、添加联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 2、显示联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 3、删除联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 4、查找联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 5、修改联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 6、清空联系人 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | 0、退出 |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t | |" << endl;
cout << "\t\t --------------------------------------------------------" << endl;
cout << "请输入您的选择:" << endl;
// 接受用户选择
cin >> select;
// 根据用户选择不同进入不同的方向
switch (select)
{
case 1: // 添加联系人(姓名,性别,年龄,联系电话,家庭住址)
add_person();
break;
case 2: // 显示联系人
show_person();
break;
case 3: // 删除联系人
show_person_01();
delete_person();
break;
case 4: // 查找联系人
find_person();
break;
case 5: // 修改联系人
show_person_01();
modification_person();
break;
case 6: // 清空联系人
clear_person();
break;
case 0: // 退出通讯录
system("cls");
cout << "确定要退出通讯录吗?" << endl;
cout << "1、确定" << endl;
cout << "2、否定" << endl;
// 初始化用户选择
int choice = 0;
// 接收用户选择
while (true)
{
cin >> choice;
if (choice == 1)
{
cout << "欢迎您下一次使用,再见!" << endl;
// 清屏操作
system("pause");
system("cls");
exit(0);
}
else if (choice == 2)
{
// 清屏操作
system("cls");
break;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
break;
}
}
return 0;
}
// 添加联系人
void add_person()
{
system("cls");
cout << "请输入要存储人员数量:" << endl;
// 创建一个容器用于接受人员
vector<Person>v;
// 初始化用户选择
int select = 0;
while (true)
{
// 接受用户选择
cin >> select;
if (select >= 1)
{
break;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
规定v的大小
//v.resize(select);
for (int i = 0; i < select; i++)
{
cout << "-----------------------" << endl;
cout << "请输入第" << i + 1 << "名人员信息:" << endl;
// 录入姓名
cout << "请输入姓名:" << endl;
cin >> name;
// 录入性别
cout << "请输入性别:" << endl;
cin >> sex;
// 录入年龄
cout << "请输入年龄:" << endl;
cin >> age;
// 录入联系方式
cout << "请输入联系方式:" << endl;
cin >> phone_num;
// 录入家庭地址
cout << "请输入家庭地址:" << endl;
cin >> address;
// 创建对象
Person p;
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
// 把类放到容器里面
// vector的容量
v.push_back(p);
}
// 把容器里的数据存放到文件中
ofstream ofs;
ofs.open(_FILE, ios::in | ios::app);
for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
{
ofs << it->m_name << " ";
ofs << it->m_sex << " ";
ofs << it->m_age << " ";
ofs << it->m_phone_number << " ";
ofs << it->m_address << endl;
}
cout << "恭喜你,录入成功:" << endl;
// 清空容器
v.erase(v.begin(), v.end());
ofs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 显示联系人
void show_person()
{
system("cls");
ifstream ifs;
ifs.open(_FILE, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (ifs.eof())
{
cout << "文件为空!" << endl;
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 读入信息从文件中
while (ifs >> name && ifs >> sex && ifs >> age &&
ifs >> phone_num && ifs >> address)
{
cout << "姓名:" << name << " ";
cout << "性别:" << sex << " ";
cout << "年龄:" << age << " ";
cout << "联系方式:" << phone_num << " ";
cout << "家庭住址:" << address << endl;
}
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 显示联系人_01
void show_person_01()
{
system("cls");
ifstream ifs;
ifs.open(_FILE, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (ifs.eof())
{
cout << "文件为空!" << endl;
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 读入信息从文件中
while (ifs >> name && ifs >> sex && ifs >> age &&
ifs >> phone_num && ifs >> address)
{
cout << "姓名:" << name << " ";
cout << "性别:" << sex << " ";
cout << "年龄:" << age << " ";
cout << "联系方式:" << phone_num << " ";
cout << "家庭住址:" << address << endl;
}
ifs.close();
}
// 删除联系人
void delete_person()
{
fstream fs;
fs.open(_FILE, ios::in);
if (!fs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (fs.eof())
{
cout << "文件为空!" << endl;
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 创建一个对象接受信息
Person p;
// 创建一个接受容器
vector<Person>v1;
// 读入信息从文件中
while (fs >> name && fs >> sex && fs >> age &&
fs >> phone_num && fs >> address)
{
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
v1.push_back(p);
}
/*for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << it->m_name << endl;
}*/
选择查询方式
//int select = 0;
cout << "请选择您要删除人的姓名:" << endl;
string delete_name;
// 读入名字
cin >> delete_name;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_name) == delete_name)
{
v1.erase(it);
cout << "删除成功!" << endl;
break;
}
}
fs.close();
// 清空文件并重新录入
fs.open(_FILE, ios::trunc);
fs.close();
fs.open(_FILE, ios::out);
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
fs << it->m_name << " ";
fs << it->m_sex << " ";
fs << it->m_age << " ";
fs << it->m_phone_number << " ";
fs << it->m_address << endl;
}
fs.close();
// 清屏操作
system("pause");
system("cls");
}
// 查找联系人
void find_person()
{
system("cls");
ifstream ifs;
ifs.open(_FILE, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (ifs.eof())
{
cout << "文件为空!" << endl;
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 创建一个对象接受信息
Person p;
// 创建一个接受容器
vector<Person>v1;
// 读入信息从文件中
while (ifs >> name && ifs >> sex && ifs >> age &&
ifs >> phone_num && ifs >> address)
{
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
v1.push_back(p);
}
// 请选择查找方式
int select = 0;
cout << "请选择查找方式:" << endl;
cout << "1、姓名" << endl;
cout << "2、联系方式" << endl;
while (true)
{
cin >> select;
if (select == 1)
{
string find_name;
cout << "请输入要查找的姓名:" << endl;
cin >> find_name;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_name) == find_name)
{
cout << "已找到!信息如下:" << endl;
cout << "姓名:" << it->m_name << " ";
cout << "性别:" << it->m_sex << " ";
cout << "年龄:" << it->m_age << " ";
cout << "联系方式:" << it->m_phone_number << " ";
cout << "家庭住址:" << it->m_address << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
}
cout << "查无此人!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
else if (select == 2)
{
int find_phone_num;
cout << "请输入要查找的联系方式:" << endl;
cin >> find_phone_num;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_phone_number) == find_phone_num)
{
cout << "已找到!信息如下:" << endl;
cout << "姓名:" << it->m_name << " ";
cout << "性别:" << it->m_sex << " ";
cout << "年龄:" << it->m_age << " ";
cout << "联系方式:" << it->m_phone_number << " ";
cout << "家庭住址:" << it->m_address << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
}
cout << "查无此人!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
ifs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 修改联系人
void modification_person()
{
fstream fs;
fs.open(_FILE, ios::in);
if (!fs.is_open())
{
cout << "文件打开失败!" << endl;
// 清屏操作
system("pause");
system("cls");
return;
}
// 判断是否为空
char c;
if (fs.eof())
{
cout << "文件为空!" << endl;
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 定义名字
string name;
// 定义性别
string sex;
// 定义年龄
int age;
// 定义联系方式
int phone_num;
// 定义家庭住址
string address;
// 创建一个对象接受信息
Person p;
// 创建一个接受容器
vector<Person>v1;
// 读入信息从文件中
while (fs >> name && fs >> sex && fs >> age &&
fs >> phone_num && fs >> address)
{
p.m_name = name;
p.m_sex = sex;
p.m_age = age;
p.m_phone_number = phone_num;
p.m_address = address;
v1.push_back(p);
}
/*for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << it->m_name << endl;
}*/
选择查询方式
//int select = 0;
cout << "请选择您要修改人的姓名:" << endl;
string modification_name;
// 读入名字
cin >> modification_name;
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
if ((it->m_name) == modification_name)
{
cout << "-----------------------" << endl;
cout << "请输入新人员信息:" << endl;
// 录入姓名
cout << "请输入姓名:" << endl;
cin >> it->m_name;
// 录入性别
cout << "请输入性别:" << endl;
cin >> it->m_sex;
// 录入年龄
cout << "请输入年龄:" << endl;
cin >> it->m_age;
// 录入联系方式
cout << "请输入联系方式:" << endl;
cin >> it->m_phone_number;
// 录入家庭地址
cout << "请输入家庭地址:" << endl;
cin >> it->m_address;
cout << "修改成功!" << endl;
/*cout << it->m_name << it->m_sex << it->m_age
<< it->m_phone_number << it->m_address << endl;*/
}
}
/*for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << it->m_name << it->m_sex << it->m_age
<< it->m_phone_number << it->m_address << endl;
}*/
fs.close();
// 清空文件并重新录入
fs.open(_FILE, ios::trunc);
fs.close();
fs.open(_FILE, ios::out);
for (vector<Person>::iterator it = v1.begin(); it != v1.end(); it++)
{
fs << it->m_name << " ";
fs << it->m_sex << " ";
fs << it->m_age << " ";
fs << it->m_phone_number << " ";
fs << it->m_address << endl;
}
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
// 清空联系人
void clear_person()
{
system("cls");
cout << "确认是否清空联系人" << endl;
cout << "1、确认" << endl;
cout << "2、否认" << endl;
int select = 0;
while (true)
{
cin >> select;
if (select == 1)
{
fstream fs;
fs.open(_FILE, ios_base::out);
cout << "清空成功!" << endl;
fs.close();
// 清屏操作
system("pause");
system("cls");
return;
}
else if (select == 2)
{
system("cls");
return;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
}
三、效果预览