#include<iostream>
using namespace std;
int n = 0;
struct person {
string name;
string gender;
int age;
string tel;
string add;
};
void main_init()
{
cout << "------------------------" << endl;
cout << "请输入您要执行的操作命令" << endl;
cout << " 1——添加联系人 " << endl;
cout << " 2——显示联系人 " << endl;
cout << " 3——删除联系人 " << endl;
cout << " 4——查找联系人 " << endl;
cout << " 5——修改联系人 " << endl;
cout << " 6——清空联系人 " << endl;
cout << " 0——退出通讯录 " << endl;
cout << "------------------------" << endl;
}
void add_person(person a[])
{
char j = 0;
while (a[n].name != "")
n++;
cout << "请输入联系人的姓名" << endl;
cin >> a[n].name;
while (j == 0)
{
cout << "请选择联系人的性别" << endl << "M——男 F——女" << endl;
cin >> j;
if (j == 'M'||j=='m')
a[n].gender = "男";
else if (j == 'F'||j=='f')
a[n].gender = "女";
else
{
cout << "输入非法,请重新输入" << endl;
j = 0;
}
}
cout << a[n].gender << endl;
cout << "请输入联系人的年龄" << endl;
cin >> a[n].age;
cout << "请输入联系人的电话" << endl;
cin >> a[n].tel;
cout << "请输入联系人的家庭住址" << endl;
cin >> a[n].add;
n++;
cout << "联系人添加完毕!" << endl;
}
void show_person(person a[])
{
if (n != 0)
{
int i, j = 1;
i = n;
while (i != 0)
{
cout << j << " " << a[j - 1].name << " " << a[j - 1].gender << " " << a[j - 1].age << " " << a[j - 1].tel << " " << a[j - 1].add << endl;
j++;
i--;
}
cout << "联系人显示完毕!" << endl;
}
else
cout << "通讯录为空!" << endl;
}
void del_person(person a[])
{
bool flag=0;
int i;
string del_name;
cout << "请输入要删除的联系人" << endl;
cin >> del_name;
for (i = 0; i < n; i++)
{
if (del_name == a[i].name)
{
flag = 1;
cout << "查到联系人信息如下" << endl;
cout << a[i].name << " " << a[i].gender << " " << a[i].age << " " << a[i].tel << " " << a[i].add << endl;
cout << "是否确认删除?" << endl;
char ch1 = 0;
while (ch1 == 0)
{
cout << "Y——是 N——否" << endl;
cin >> ch1;
if (ch1 == 'Y' || ch1 == 'y')
{
for (int j = i; j < n; j++)
a[j] = a[j + 1];
n--;
cout << "删除成功,是否继续查找?" << endl;
char ch2 = 0;
while (ch2 == 0)
{
cout << "Y——是 N——否" << endl;
cin >> ch2;
if (ch2 == 'Y' || ch2 == 'y')
i--;
else if (ch2 == 'N' || ch2 == 'n')
i = n-1;
else
{
cout << "输入非法,请重新输入" << endl;
ch2 = 0;
}
}
}
else if (ch1 == 'N' || ch1 == 'n')
{
cout << "删除取消,是否继续查找?" << endl;
char ch2 = 0;
while (ch2 == 0)
{
cout << "Y——是 N——否" << endl;
cin >> ch2;
if (ch2 == 'Y' || ch2 == 'y')
;
else if (ch2 == 'N' || ch2 == 'n')
i = n - 1;
else
{
cout << "输入非法,请重新输入" << endl;
ch2 = 0;
}
}
}
else
{
cout << "输入非法,请重新输入" << endl;
ch1 = 0;
}
}
}
}
if (flag == 0)
cout << "查无此人!" << endl;
else
cout << "操作结束!" << endl;
}
void find_person(person a[])
{
int i;
string find_name;
person b[1000];
int j = 0;
cout << "请输入要查找的联系人" << endl;
cin >> find_name;
for (i = 0; i < n; i++)
{
if (find_name == a[i].name)
{
b[j] = a[i];
j++;
}
}
if (j != 0)
{
cout << "查找到的联系人信息如下" << endl;
for (j; j > 0; j--)
cout << b[j - 1].name << " " << b[j - 1].gender << " " << b[j - 1].age << " " << b[j - 1].tel << " " << b[j - 1].add << endl;
}
else
cout << "查无此人!" << endl;
}
void chag_person(person a[])
{
bool flag = 0;
int i;
string chag_name;
cout << "请输入要更改的联系人" << endl;
cin >> chag_name;
for (i = 0; i < n; i++)
{
if (chag_name == a[i].name)
{
flag = 1;
cout << "查到联系人信息如下" << endl;
cout << a[i].name << " " << a[i].gender << " " << a[i].age << " " << a[i].tel << " " << a[i].add << endl;
cout << "是否确认更改?" << endl;
char ch1 = 0;
while (ch1 == 0)
{
cout << "Y——是 N——否" << endl;
cin >> ch1;
if (ch1 == 'Y' || ch1 == 'y')
{
int j;
do {
cout << "请输入想要更改的内容" << endl;
cout << " 1——姓名 " << endl;
cout << " 2——性别 " << endl;
cout << " 3——年龄 " << endl;
cout << " 4——号码 " << endl;
cout << " 5——地址 " << endl;
cout << " 0——放弃更改 " << endl;
cin >> j;
switch (j)
{
case 1:
{
string new_name;
cout << "请输入新的姓名" << endl;
cin >> new_name;
a[i].name = new_name;
cout << "更改成功!" << endl;
}break;
case 2:
{
char ng=0;
while (ng==0)
{
cout << "请输入新的性别" << endl << "M——男 F——女" << endl;
cin >> ng;
if (ng == 'M' || ng == 'm')
a[i].gender = "男";
else if (ng == 'F' || ng == 'f')
a[i].gender = "女";
else
{
cout << "输入非法,请重新输入" << endl;
ng = 0;
}
cout << a[i].gender << endl;
}
cout << "更改成功!" << endl;
}break;
case 3:
{
int new_age;
cout << "请输入新的年龄" << endl;
cin >> new_age;
a[i].age = new_age;
cout << "更改成功!" << endl;
}break;
case 4:
{
string new_tel;
cout << "请输入新的号码" << endl;
cin >> new_tel;
a[i].tel = new_tel;
cout << "更改成功!" << endl;
}break;
case 5:
{
string new_add;
cout << "请输入新的地址" << endl;
cin >> new_add;
a[i].add = new_add;
cout << "更改成功!" << endl;
}break;
case 0:
{
cout << "取消更改" << endl;
}break;
default:
cout << "输入非法,请重新输入!" << endl;
}
} while (j != 0);
}
else if (ch1 == 'N' || ch1 == 'n')
{
cout << "更改取消,是否继续查找?" << endl;
char ch2 = 0;
while (ch2 == 0)
{
cout << "Y——是 N——否" << endl;
cin >> ch2;
if (ch2 == 'Y' || ch2 == 'y')
;
else if (ch2 == 'N' || ch2 == 'n')
i = n - 1;
else
{
cout << "输入非法,请重新输入" << endl;
ch2 = 0;
}
}
}
else
{
cout << "输入非法,请重新输入" << endl;
ch1 = 0;
}
}
}
}
if (flag == 0)
cout << "查无此人!" << endl;
else
cout << "操作结束!" << endl;
}
void clr_person(person a[])
{
char s1,s2;
cout << "您正在进行清空通讯录操作,此举有可能造成重要信息丢失!是否继续?" << endl;
cout << "Y——是 按其他任意键退出"<<endl;
cin >> s1;
if (s1 == 'Y' || s1 == 'y')
{
cout << "是否确定清空通讯录?" << endl<< "C——清空 按其他任意键退出" << endl;
cin >> s2;
if (s2 == 'C' || s2 == 'c')
{
for (int i = 0; i < n; i++)
{
a[i].name = "";
a[i].gender = "";
a[i].age = 0;
a[i].tel = "";
a[i].add = "";
n = 0;
}
cout << "通讯录已清空!" << endl;
}
}
}
void main()
{
person my[1000];
int choose;
do{
int i;
main_init();
cin >> i;
choose = i;
switch (choose)
{
case 1:
{
cout << "1——添加联系人" << endl;
add_person(my);
}break;
case 2:
{
cout << "2——显示联系人" << endl;
show_person(my);
}break;
case 3:
{
cout << "3——删除联系人" << endl;
del_person(my);
}break;
case 4:
{
cout << "4——查找联系人" << endl;
find_person(my);
}break;
case 5:
{
cout << "5——修改联系人" << endl;
chag_person(my);
}break;
case 6:
{
cout << "6——清空联系人" << endl;
clr_person(my);
}break;
case 0:
cout << "0——退出通讯录" << endl;
break;
default:
cout << "输入非法,请重新输入!" << endl;
}
} while (choose != 0);
}