通讯录管理系统
#include<iostream>
#include<string>
using namespace std;
#define MAX 1000
struct person
{
string Name;
int sex;
int age;
string number;
string addr;
};
struct addressbooks
{
struct person personarray[MAX];
int size;
};
void addperson(addressbooks* abs)
{
if (abs -> size == MAX)
{
cout << "通讯录已满,无法添加" << endl;
return;
}
else
{
string name;
cout << "请输入姓名:" << endl;
cin >> name;
abs->personarray[abs->size].Name = name;
cout << "请输入性别:" << endl;
cout << "1-----男:" << endl;
cout << "2-----女:" << endl;
int sex = 0;
while (true)
{
cin >> sex;
if (sex == 1||sex==2)
{
abs->personarray[abs->size].sex = sex;
break;
}
cout << "输入错误,请重新输入" << endl;
}
cout << "请输入年龄:" << endl;
int age;
cin >> age;
abs->personarray[abs->size].age = age;
cout<< "请输入联系电话:" << endl;
string number;
cin >> number;
abs->personarray[abs->size].number = number;
cout << "请输入家庭住址:" << endl;
string addr;
cin >> addr;
abs->personarray[abs->size].addr = addr;
abs->size++;
cout << "添加成功" << endl;
system("pause");
system("cls");
}
}
void showperson(addressbooks* abs)
{
if (abs->size == 0)
{
cout << "当前记录为空" << endl;
}
else
{
for (int i = 0; i < abs->size; i++)
{
cout << "姓名:" << abs->personarray[i].Name << "\t";
cout << "性别:" << (abs->personarray[i].sex == 1 ? "男" : "女") << "\t";
cout << "年龄:" << abs->personarray[i].age << "\t";
cout << "电话:" << abs->personarray[i].number << "\t";
cout << "住址:" << abs->personarray[i].addr << endl;
}
}
system("pause");
system("cls");
}
int isexist(addressbooks * abs, string name)
{
for (int i = 0; i < abs->size; i++)
{
if (abs->personarray[i].Name == name)
{
return i;
}
}
return -1;
}
void deleteperson(addressbooks * abs)
{
cout << "请输入您要删除的联系人" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
for (int i = ret; i < abs->size; i++)
{
abs->personarray[i] = abs->personarray[i + 1];
abs->size--;
}
cout << "删除成功" << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void findperson(addressbooks * abs)
{
cout << "请输入您要查找的联系人" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
cout << "姓名:" << abs->personarray[ret].Name << "\t";
cout << "性别:" << abs->personarray[ret].sex << "\t";
cout << "年龄:" << abs->personarray[ret].age << "\t";
cout << "电话:" << abs->personarray[ret].number << "\t";
cout << "住址:" << abs->personarray[ret].addr << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void modifyperson(addressbooks* abs)
{
cout << "请输入要修改的联系人" << endl;
string name;
cin >> name;
int ret = isexist(abs, name);
if (ret != -1)
{
string name;
cout << "请输入姓名" << endl;
cin >> name;
abs->personarray[ret].Name = name;
cout << "请输入性别" << endl;
cout << "1------男" << endl;
cout << "2------女" << endl;
while (true)
{
int sex;
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personarray[ret].sex = sex;
break;
}
else
{
cout << "输入错误请重新输入" << endl;
}
}
cout << "请输入年龄" << endl;
int age;
cin >> age;
abs->personarray[ret].age = age;
cout << "请输入联系电话" << endl;
string number;
cin >> number;
abs->personarray[ret].number = number;
cout << "请输入家庭住址" << endl;
string addr;
cin >> addr;
abs->personarray[ret].addr = addr;
cout << "修改成功" << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void clearperson(addressbooks* abs)
{
abs->size = 0;
cout << "通讯录已清空" << endl;
system("pause");
system("cls");
}
void showMenu()
{
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;
}
int main()
{
addressbooks abs;
abs.size = 0;
int select;
while ( true )
{
showMenu();
cin >> select;
if (select == 1)
{
addperson(&abs);
}
else if (select == 2)
{
showperson(&abs);
}
else if (select == 3)
{
deleteperson(&abs);
}
else if (select == 4)
{
findperson(&abs);
}
else if (select == 5)
{
modifyperson(&abs);
}
else if (select == 6)
{
clearperson(&abs);
}
else if (select == 0)
{
cout << "欢迎下次使用" << endl;
break;
}
}
system("pause");
return 0;
}