栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++通讯录管理系统class

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++通讯录管理系统class

#include
#include
#include
#define MAX 1000
using namespace std;

class Addressbooks;
class Person
{
	friend class Addressbooks;
	friend ostream& operator<<(ostream& out, Person&p);//重载<<
	string m_name, m_phone, m_qq, m_Email, m_addr;
};

class Addressbooks
{
	friend ostream& operator<<(ostream& out, Addressbooks&a);
public:
	int isExistQQ(string qq);//通过qq号查找联系人
	int isExistName(string name);//通过姓名查找联系人
	int isExistPhone(string phone);//通过电话号码查找联系人
	void addPerson();//1、添加联系人 按照姓名、电话号码、qq进行操作
	void deletePerson();//2、删除联系人
	void modifyPerson();//3、修改联系人
	void FindPerson();//4、查找联系人
	int findWay();//查找方式
private:
	Person* personArray = new  Person[MAX];
	int m_size = 0;//通讯录中联系人个数
};
//重载Addressbooks<<
ostream& operator<<(ostream& out, Addressbooks& a)
{
	for (int i = 0; i < a.m_size; i++)
	{
		out << a.personArray[i] << endl;
	}
	return out;
}
//重载Person<<
ostream& operator<<(ostream& out, Person&p)
{
	out << "姓名:" << setw(15) << left << p.m_name
		<< "电话号码:" << setw(15) << left << p.m_phone
		<< "QQ:" << setw(15) << left << p.m_qq
		<< "Email:" << setw(15) << left << p.m_Email
		<< "籍贯:" << setw(15) << left << p.m_addr << endl;
	return out;
}
void showMenx()
{
	cout << "**************************************" << endl;
	cout << "***********0、退出通讯录**************" << endl;
	cout << "***********1、添加联系人**************" << endl;
	cout << "***********2、删除联系人**************" << endl;
	cout << "***********3、修改联系人**************" << endl;
	cout << "***********4、查找联系人**************" << endl;
	cout << "**************************************" << endl;
}
//通过qq号查找联系人
int Addressbooks::isExistQQ(string qq)
{
	for (int i = 0; i < m_size; i++)
	{
		if (personArray[i].m_qq == qq)
		{
			return i;
		}
	}
	return -1;
}
//通过姓名查找联系人
int Addressbooks::isExistName(string name)
{
	for (int i = 0; i < m_size; i++)
	{
		if (personArray[i].m_name == name)
		{
			return i;
		}
	}
	return -1;
}
//通过电话号码查找联系人
int Addressbooks::isExistPhone(string phone)
{
	for (int i = 0; i < m_size; i++)
	{
		if (personArray[i].m_phone == phone)
		{
			return i;
		}
	}
	return -1;
}
//查找方式
int Addressbooks::findWay()
{
	int select = 0;
	cout << "1----通过qq号" << endl;
	cout << "2----通过姓名" << endl;
	cout << "3----通过电话号码" << endl;
	cin >> select;
	if (select == 1)
	{
		string qq;
		cout << "请输入QQ号" << endl;
		cin >> qq;
		return isExistQQ(qq);
	}
	else if (select == 2)
	{
		string name;
		cout << "请输入姓名" << endl;
		cin >> name;
		return isExistName(name);
	}
	else if (select == 3)
	{
		string phone;
		cout << "请输入电话号码" << endl;
		cin >> phone;
		return isExistPhone(phone);
	}
	return -1;
}
//1、添加联系人
void Addressbooks::addPerson()
{
	if (m_size != MAX)
	{
		string name;
		cout << "请输入姓名:" << endl;
		cin >> name;
		personArray[m_size].m_name = name;
		string phone;
		cout << "请输入电话号码:" << endl;
		cin >> phone;
		personArray[m_size].m_phone = phone;
		string qq;
		cout << "请输入qq号:" << endl;
		while (true)
		{
			int ret = 0;
			cin >> qq;
			ret = isExistQQ(qq);
			if (ret == -1)
			{
				personArray[m_size].m_qq = qq;
				break;
			}
			cout << "qq号与他人重复,请检查是否有误后重新输入" << endl;
		}
		string Email;
		cout << "请输入Email:" << endl;
		cin >> Email;
		personArray[m_size].m_Email = Email;
		string addr;
		cout << "请输入籍贯:" << endl;
		cin >> addr;
		personArray[m_size].m_addr = addr;
		m_size++;
		cout << "该联系人添加完成!" << endl;
	}
	else
	{
		cout << "通讯录已满,不能再添加了" << endl;
	}
}

//2、删除联系人
void Addressbooks::deletePerson()
{
	int Ret;
	Ret = findWay();
	if (Ret != -1)
	{
		for (int i = Ret + 1; i < m_size; i++)
		{
			personArray[i - 1] = personArray[i];
		}
		m_size--;
		cout << "删除已完成" << endl;
	}
	else
	{
		cout << "此人本来就不存在" << endl;
	}
}
//3、修改联系人
void Addressbooks::modifyPerson()
{
	int Ret;
	Ret = findWay();
	if (Ret != -1)
	{
		string name;
		cout << "请输入姓名:" << endl;
		cin >> name;
		personArray[Ret].m_name = name;
		string phone;
		cout << "请输入电话号码:" << endl;
		cin >> phone;
		personArray[Ret].m_phone = phone;
		string qq;
		cout << "请输入qq号:" << endl;
		while (true)
		{
			int ret = 0;
			cin >> qq;
			ret = isExistQQ(qq);
			if (ret == -1)
			{
				personArray[Ret].m_qq = qq;
				break;
			}
			cout << "qq号与他人重复,请检查是否有误后重新输入" << endl;
		}
		string Email;
		cout << "请输入Email:" << endl;
		cin >> Email;
		personArray[Ret].m_Email = Email;
		string addr;
		cout << "请输入籍贯:" << endl;
		cin >> addr;
		personArray[Ret].m_addr = addr;
		cout << "修改完成" << endl;
	}
	else
	{
		cout << "此人不存在" << endl;
	}
}
//4、查找联系人
void Addressbooks::FindPerson()
{
	int Ret;
	Ret = findWay();
	if (Ret != -1)
	{
		cout << personArray[Ret] << endl;
		cout << "查找完成" << endl;
	}
	else
	{
		cout << "此人不存在" << endl;
	}
}
int main()
{
	Addressbooks a1;
	while (true)
	{
		int select = 0;
		showMenx();
		cin >> select;
		switch (select)
		{
		case 0:
			return 0;
		case 1:
			a1.addPerson();
			break;
		case 2:
			a1.deletePerson();
			break;
		case 3:
			a1.modifyPerson();
			break;
		case 4:
			a1.FindPerson();
			break;
		}
		system("pause");
		system("cls");
	}

	system("pause");
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号