#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
//定义联系人结构体
struct Contacter
{
string name;//姓名
string sex;//性别
int age;//年龄
string phoneNumber;//联系电话
string address;//家庭地址
};
//定义通讯录数组
struct Addressbooks
{
struct Contacter person[MAX];//通讯录中保存的联系人数组
int quantity;//通讯录中人员个数
};
int main()
{
void addContacter(struct Addressbooks* p);//声明添加联系人函数
void showContacter(struct Addressbooks* p);//声明显示联系人函数
void deleteContacter(struct Addressbooks* p);//声明删除联系人函数
void findContacter(struct Addressbooks* p);//声明查找联系人函数
void modifyContacter(struct Addressbooks* p);//声明修改联系人函数
void cleanContacter(struct Addressbooks* p);//声明清空联系人函数
struct Addressbooks addressBook;
addressBook.quantity = 0;
int choice = 0;//用于读取用户的操作选择
while (true)
{
void showMenu();
showMenu();
cin >> choice;//从键盘获取用户的操作选择
switch (choice)
{
case 1:addContacter(&addressBook);//添加联系人
break;
case 2:showContacter(&addressBook);//显示联系人
break;
case 3:deleteContacter(&addressBook);//删除联系人
break;
case 4:findContacter(&addressBook);//查找联系人
break;
case 5:modifyContacter(&addressBook);//修改联系人
break;
case 6:cleanContacter(&addressBook);//清空联系人
break;
case 0:;//退出通讯录
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:cout << "输入有误,请重新输入!" << endl;
break;
}
}
system("pause");
return 0;
}
//菜单功能
void showMenu()
{
cout << "*****************************" << endl;
cout << "*****\t1.添加联系人\t*****" << endl;
cout << "*****\t2.显示联系人\t*****" << endl;
cout << "*****\t3.删除联系人\t*****" << endl;
cout << "*****\t4.查找联系人\t*****" << endl;
cout << "*****\t5.修改联系人\t*****" << endl;
cout << "*****\t6.清空联系人\t*****" << endl;
cout << "*****\t0.退出通讯录\t*****" << endl;
cout << "*****************************" << endl;
}
//添加联系人功能
void addContacter(struct Addressbooks* p)
{
//判断通讯录是否已满,如果满了就不可再添加联系人
if (p->quantity == MAX)
{
cout << "通讯录已满,无法添加!" << endl;
return;
}
else
{
string name1;
cout << "请输入姓名:" << endl;
cin >> name1;
p->person[p->quantity].name = name1;
string sex1;
string str1 = "男";
string str2 = "女";
cout << "请输入性别(男/女):" << endl;
while (true)
{
cin >> sex1;
if (sex1.compare(str1) == 0 || sex1.compare(str2) == 0)
{
p->person[p->quantity].sex = sex1;
break;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
int age1;
cout << "请输入年龄:" << endl;
cin >> age1;
p->person[p->quantity].age = age1;
string phoneNumber1;
cout << "请输入联系电话:" << endl;
cin >> phoneNumber1;
p->person[p->quantity].phoneNumber = phoneNumber1;
string address1;
cout << "请输入家庭地址:" << endl;
cin >> address1;
p->person[p->quantity].address = address1;
//更新通讯录人数
p->quantity++;
cout << "添加成功!" << endl;
system("pause");//请按任意键继续
system("cls");//清屏操作
}
}
//显示联系人功能
void showContacter(struct Addressbooks* p)
{
if (p->quantity == 0)
{
cout << "联系人为空,请添加联系人!" << endl;
}
else
{
for (int i = 0; i < p->quantity; i++)
{
cout << "姓名:" << p->person[i].name << "\t"
<< "性别:" << p->person[i].sex << "\t"
<< "年龄:" << p->person[i].age << "\t"
<< "联系电话:" << p->person[i].phoneNumber << "\t"
<< "家庭住址:" << p->person[i].address << "\t"
<< endl;
}
}
system("pause");//请按任意键继续
system("cls");//清屏操作
}
//删除联系人功能
void deleteContacter(struct Addressbooks* p)
{
if (p->quantity == 0)
{
cout << "联系人为空,请添加联系人!" << endl;
}
else
{
string name2;
cout << "请输入您要删除的联系人姓名:" << endl;
cin >> name2;
for (int i = 0; i < p->quantity; i++)
{
if (name2.compare(p->person[i].name) == 0)
{
for (int j = i; j < p->quantity; j++)
{
p->person[j] = p->person[j + 1];
}
cout << "删除成功!" << endl;
p->quantity--;
}
else
{
cout << "查无此人!" << endl;
}
}
}
system("pause");//请按任意键继续
system("cls");//清屏操作
}
//查找联系人功能
void findContacter(struct Addressbooks* p)
{
if (p->quantity == 0)
{
cout << "联系人为空,请添加联系人!" << endl;
}
else
{
string name3;
cout << "请输入您要查找的联系人姓名:" << endl;
cin >> name3;
for (int i = 0; i < p->quantity; i++)
{
if (name3.compare(p->person[i].name) == 0)
{
cout << "姓名:" << p->person[i].name << "\t"
<< "性别:" << p->person[i].sex << "\t"
<< "年龄:" << p->person[i].age << "\t"
<< "联系电话:" << p->person[i].phoneNumber << "\t"
<< "家庭住址:" << p->person[i].address
<< endl;
}
else
{
cout << "查无此人!" << endl;
}
}
}
system("pause");
system("cls");
}
//修改联系人功能
void modifyContacter(struct Addressbooks* p)
{
if (p->quantity == 0)
{
cout << "联系人为空,请添加联系人!" << endl;
}
else
{
string name4;
cout << "请输入您要修改的联系人姓名:" << endl;
cin >> name4;
for (int i = 0; i < p->quantity; i++)
{
if (name4.compare(p->person[i].name) == 0)
{
cout << "查找成功!" << endl;
cout << "姓名:" << p->person[i].name << "\t"
<< "性别:" << p->person[i].sex << "\t"
<< "年龄:" << p->person[i].age << "\t"
<< "联系电话:" << p->person[i].phoneNumber << "\t"
<< "家庭住址:" << p->person[i].address << "\t"
<< endl;
cout << "请输入您要修改的相关信息:" << endl;
string name5;
cout << "请输入姓名:" << endl;
cin >> name5;
p->person[i].name = name5;
string sex5;
string str1 = "男";
string str2 = "女";
cout << "请输入性别(男/女):" << endl;
while (true)
{
cin >> sex5;
if (sex5.compare(str1) == 0 || sex5.compare(str2) == 0)
{
p->person[i].sex = sex5;
break;
}
else
{
cout << "输入有误,请重新输入!" << endl;
}
}
int age5;
cout << "请输入年龄:" << endl;
cin >> age5;
p->person[i].age = age5;
string phoneNumber5;
cout << "请输入联系电话:" << endl;
cin >> phoneNumber5;
p->person[i].phoneNumber = phoneNumber5;
string address5;
cout << "请输入家庭地址:" << endl;
cin >> address5;
p->person[i].address = address5;
cout << "修改成功!" << endl;
}
else
{
cout << "查无此人!" << endl;
}
}
}
system("pause");//请按任意键继续
system("cls");//清屏
}
//清空联系人
void cleanContacter(struct Addressbooks* p)
{
string str;
string str1 = "是的";
cout << "您确定要清空联系人吗?请再次确认(输入“是的”就执行清空,否则返回菜单):" << endl;
cin >> str;
if (str.compare(str1) == 0)
{
p->quantity = 0;
cout << "通讯录已清空!" << endl;
}
else
{
return;
}
system("pause");
system("cls");
}