一.通讯录管理系统
#include<iostream>
#include<string>
#define MAX 1000
using namespace std;
struct Person
{
string m_name;
int m_age;
int m_sex;
string m_phone;
string m_addr;
};
struct Addressbook
{
Person personarray[MAX];
int m_size;
};
void showmenu()
{
cout << "**************************" << endl;
cout << "***** 1.添加联系人 *****" << endl;
cout << "***** 2.显示联系人 *****" << endl;
cout << "***** 3.删除联系人 *****" << endl;
cout << "***** 4.查找联系人 *****" << endl;
cout << "***** 5.修改联系人 *****" << endl;
cout << "***** 6.清空联系人 *****" << endl;
cout << "***** 7.退出通讯录 *****" << endl;
cout << "**************************" << endl;
}
void addPerson(Addressbook* ads)
{
if (ads->m_size == MAX)
{
cout << "通讯录已满,无法再添加" << endl;
return;
}
else
{
string name;
cout << "请输入姓名:" << endl;
cin >> name;
ads->personarray[ads->m_size].m_name = name;
cout << "请输入性别:" << endl;
cout << "1---男" << endl;
cout << "2---女" << endl;
int sex = 0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
ads->personarray[ads->m_size].m_sex = sex;
break;
}
else
{
cout << "输入有误,请重新输入" << endl;
}
}
cout << "请输入年龄:" << endl;
int age = 0;
cin >> age;
ads->personarray[ads->m_size].m_age = age;
cout << "请输入电话号码:" << endl;
string phone = "";
cin >> phone;
ads->personarray[ads->m_size].m_phone = phone;
cout << "请输入家庭住址:" << endl;
string addr;
cin >> addr;
ads->personarray[ads->m_size].m_addr = addr;
ads->m_size++;
cout << "添加成功" << endl;
system("pause");
system("cls");
}
}
void showPerson(Addressbook * ads)
{
if (ads->m_size == 0)
{
cout << "当前联系人为空" << endl;
}
else
{
for (int i = 0; i < ads->m_size; i++)
{
cout << "姓名:" << ads->personarray[i].m_name << "\t";
cout << "性别:" << (ads->personarray[i].m_sex == 1 ? "男": "女" )<< "\t";
cout << "年龄:" << ads->personarray[i].m_age <<"\t";
cout << "电话号码:" << ads->personarray[i].m_phone << "\t";
cout << "家庭住址:" << ads->personarray[i].m_addr << endl;
}
system("pause");
system("cls");
}
}
int isexist(Addressbook* ads, string name)
{
for(int i = 0; i < ads->m_size; i++)
{
if (ads->personarray[i].m_name == name)
{
return i;
}
}
return -1;
}
void delectperson(Addressbook* ads)
{
cout << "请输入待删除的联系人姓名:" << endl;
string name;
cin >> name;
int ret = isexist(ads, name);
if (ret != -1)
{
for (int i = ret; i < ads->m_size;i++)
{
ads->personarray[i] = ads->personarray[i+1];
}
ads->m_size --;
cout << "删除成功" << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void fingperson(Addressbook* ads)
{
cout << "请输入待查找的联系人的姓名:" << endl;
string name;
cin >> name;
int ret = isexist(ads, name);
if (ret != -1)
{
cout << "姓名:" << ads->personarray[ret].m_name << "\t";
cout << "性别:" << (ads->personarray[ret].m_sex == 1 ? "男" : "女") << "\t";
cout << "年龄:" << ads->personarray[ret].m_age << "\t";
cout << "电话号码:" << ads->personarray[ret].m_phone << "\t";
cout << "家庭住址:" << ads->personarray[ret].m_addr << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void modifyperson(Addressbook* ads)
{
cout << "请输入待修改的联系人姓名:" << endl;
string name;
cin >> name;
int ret = isexist(ads, name);
if (ret != -1)
{
string name;
cout << "请输入姓名:" << endl;
cin >> name;
ads->personarray[ret].m_name = name;
cout << "请输入性别:" << endl;
cout << "1---男" << endl;
cout << "2---女" << endl;
int sex = 0;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2)
{
ads->personarray[ret].m_sex = sex;
break;
}
else
{
cout << "输入有误,请重新输入" << endl;
}
}
cout << "请输入年龄:" << endl;
int age = 0;
cin >> age;
ads->personarray[ret].m_age = age;
cout << "请输入电话号码:" << endl;
string phone = "";
cin >> phone;
ads->personarray[ret].m_phone = phone;
cout << "请输入家庭住址:" << endl;
string addr;
cin >> addr;
ads->personarray[ret].m_addr = addr;
cout << "修改成功" << endl;
}
else
{
cout << "查无此人" << endl;
}
system("pause");
system("cls");
}
void cleanperson(Addressbook* ads)
{
cout << "是否真的清空联系人?" << endl;
cout << "1--是 2--否" << endl;
int j=0;
while (true)
{
cin >> j;
if (j == 1)
{
ads->m_size = 0;
cout << "联系人已清空" << endl;
break;
}
if (j == 2)
{
cout << "您的清空操作已停止" << endl;
break;
}
else
{
cout << "输入有误,请重新输入" << endl;
}
}
system("pause");
system("cls");
}
int main()
{
int select = 0;
Addressbook ads;
ads.m_size = 0;
while (true)
{
showmenu();
cin >> select;
switch (select)
{
case 1:addPerson(&ads);
break;
case 2: showPerson(&ads);
break;
case 3:delectperson(&ads);
break;
case 4:fingperson(&ads);
break;
case 5:modifyperson(&ads);
break;
case 6:cleanperson(&ads);
break;
case 7:
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}