c++实现通讯录功能

#include<iostream>
using namespace std;
#include<string>
#include<stdlib.h>
#define MAX 1000
void printmenu()
{
	cout << "*****——请选择服务项——**" << endl;
	cout << "******1、添加联系人*****" << endl;
	cout << "******2、查看联系人*****" << endl;
	cout << "******3、删除联系人*****" << endl;
	cout << "******4、查找联系人*****" << endl;
	cout << "******5、修改联系人*****" << endl;
	cout << "******6、清空通讯录*****" << endl;
	cout << "******0、退出通讯录*****" << endl;
}
struct person //设置联系人结构体
{
	string m_name;
	int m_age;
	int m_sex;
	string m_phone;
	string m_adress;
};
struct adressbook //设置通讯录结构体
{
	person perarry[MAX];
	int m_size;
};
void addperson(adressbook* abs)
{
	if (abs->m_size == MAX)
	{
		cout << "通讯录已满,无法添加!" << endl;
		return;
	}
	else
	{
		//添加联系人
		string name;
		cout << "请输入姓名:";
		cin >> name;
		abs->perarry[abs->m_size].m_name = name;
		int age;
		cout << "请输入年龄:";
		cin >> age;
		abs->perarry[abs->m_size].m_age = age;
		int sex;
		cout << "请输入性别(1.男 2.女):";
		while (1)
		{
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->perarry[abs->m_size].m_sex = sex;
				break;
			}
			cout << "输入有误,请重新输入:" << endl;
		}
		string phone;
		cout << "请输入电话号码:";
		cin >> phone;
		abs->perarry[abs->m_size].m_phone = phone;
		string adress;
		cout << "请输入家庭地址:";
		cin >> adress;
		abs->perarry[abs->m_size].m_adress = adress;
		abs->m_size++;
		cout << "添加成功!" << endl;
	}
}
void showperson(adressbook* abs)
{
	if (abs->m_size == 0)
		cout << "当前记录为空!" << endl;
	else
	{
		for (int i = 0; i < abs->m_size; i++)
		{
			cout << "姓名:" << abs->perarry[i].m_name << "\t年龄:"
				<< abs->perarry[i].m_age
				<< "\t性别:" << (abs->perarry[i].m_sex == 1 ? "男" : "女")
				<< "\t电话号码:" << abs->perarry[i].m_phone
				<< "\t地址:" << abs->perarry[i].m_adress << endl;
		}
	}
}
void delectperson(adressbook* abs)
{
	if (abs->m_size == 0)
	{
		cout << "当前记录为空!" << endl;
		return;
	}
	else
	{
		string dname;
		cout << "请输入要删除联系人的姓名:";
		cin >> dname;
		int i = 0, j = 0;
		for (i = 0; i < abs->m_size; i++)
		{
			if (abs->perarry[i].m_name == dname)
			{
				for (j = i; j < abs->m_size - 1; j++)
				{
					abs->perarry[j] = abs->perarry[j + 1];
				}
				break;
			}
		}
		if (i == abs->m_size)
		{
			cout << "该联系人不存在!" << endl;
			return;
		}
		if (j == abs->m_size - 1)
		{
			cout << "删除成功" << endl;
			abs->m_size--;
		}
	}
}
void searchperson(adressbook* abs)
{
	string dname;
	cout << "请输入要查找联系人的姓名:";
	cin >> dname;
	int i;
	for (i = 0; i < abs->m_size; i++)
	{
		if (abs->perarry[i].m_name == dname)
		{
			cout << "该联系人信息如下:" << endl;
			cout << "姓名:" << abs->perarry[i].m_name
				<< "\t年龄:" << abs->perarry[i].m_age
				<< "\t性别:" << (abs->perarry[i].m_sex == 1 ? "男" : "女")
				<< "\t电话号码:" << abs->perarry[i].m_phone
				<< "\t地址:" << abs->perarry[i].m_adress << endl;
			return;
		}
	}
	if (i == abs->m_size)
		cout << "该联系人不存在!" << endl;
}
void reviseperson(adressbook* abs)
{
	if (0 == abs->m_size)
	{
		cout << "当前通讯录为空!" << endl;
		return;
	}
	string rname;
	int i;
	cout << "请输入需要修改的联系人姓名:";
	cin >> rname;
	for (i = 0; i < abs->m_size; i++)
	{
		if (abs->perarry[i].m_name == rname)
		{
			string name;
			cout << "请输入姓名:";
			cin >> name;
			abs->perarry[i].m_name = name;
			int age;
			cout << "请输入年龄:";
			cin >> age;
			abs->perarry[i].m_age = age;
			int sex;
			cout << "请输入性别(1.男 2.女):";
			while (1)
			{
				cin >> sex;
				if (sex == 1 || sex == 2)
				{
					abs->perarry[i].m_sex = sex;
					break;
				}
				cout << "输入有误,请重新输入" << endl;
			}
			string phone;
			cout << "请输入电话号码:";
			cin >> phone;
			abs->perarry[i].m_phone = phone;
			string adress;
			cout << "请输入家庭地址:";
			cin >> adress;
			abs->perarry[i].m_adress = adress;
			cout << "修改成功!" << endl;
			return;
		}
	}
	if (i == abs->m_size)
		cout << "该联系人不存在!" << endl;
}
void cleanUpperson(adressbook* abs)
{
	abs->m_size = 0;
	cout << "清空成功,一切重新开始" << endl;
}
int main()
{
	adressbook abs;
	abs.m_size = 0;
	while (1)
	{
		printmenu();
		int select;
		cout << "请选择:";
		cin >> select;
		switch (select)
		{
		case 1://1、添加联系人
			addperson(&abs);
			break;
		case 2://2、查看联系人
			showperson(&abs);
			break;
		case 3://3、删除联系人
			delectperson(&abs);
			break;
		case 4://4、查找联系人
			searchperson(&abs);
			break;
		case 5://5、修改联系人
			reviseperson(&abs);
			break;
		case 6://6、清空通讯录
			cleanUpperson(&abs);
			break;
		case 0://0、退出通讯录
			cout << "欢迎下次使用" << endl;
			system("pause");
			return 0;
		default:
			cout << "输入错误,请重新输入" << endl;
			break;
		}
		system("pause");
		system("cls");
	}
	return 0;
}