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

c++通讯录管理系统

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

c++通讯录管理系统

根据所学的,用类写的通讯录系统 (包括联系人姓名,电话,QQ,电子邮箱,家庭住址)

可进行的操作有增加,删除,修改,查询联系人

在此系统中,已存联系人10人,故可存储的联系人数量必大于10

#include
#include
#include
using namespace std;
//头
void test01()
{
	cout << "您可进行以下操作:" << endl;
	cout << "1.增加联系人" << endl;
	cout << "2.删除联系人" << endl;
	cout << "3.修改联系人" << endl;
	cout << "4.查询联系人" << endl;
	cout << "********************" << endl;
	cout << endl;

}
//person类
class person
{
	friend istream& operator>>(istream& cin, person& p);
	friend ostream& operator<<(ostream& cout, person& p);
	friend class person_list;
private:
	string name;
	string phone;
	string QQ;
	string email;
	string home;
public:
	person();
	person(string m_name, string m_phone, string m_QQ, string m_email, string m_home)
	{
		name = m_name;
		phone = m_phone;
		QQ = m_QQ;
		email = m_email;
		home = m_home;
	}

};
//person构造函数
person::person()
{
	name = "0";
	phone = "0";
	QQ = "0";
	email = "0";
	home = "0";
}
//对象数组

//重载运算符
istream& operator>>(istream& cin, person& p)
{
	cout << "姓名:";
	cin >> p.name;
	cout << "电话号码:";
	cin >> p.phone;
	cout << "QQ号:";
	cin >> p.QQ;
	cout << "邮箱:";
	cin >> p.email;
	cout << "籍贯:";
	cin >> p.home;
	return cin;
}
ostream& operator<<(ostream& cout, person& p)
{
	cout << setw(10) << left << p.name << setw(10) << left << p.phone << setw(10) << left << p.QQ << setw(12) << left << p.email << p.home;
	return cout;
}
//person_list 类
class person_list
{
public:
	int n;
	person* list;
	person_list();
	~person_list();
	person add(person& p);
	int del(int& a);
	void gai(person& p);
	void find(person& p);
};
person_list::person_list()
{
	cout << "请输入通讯录可存储总人数:" << endl;
	cin >> n;
	cout << endl;
	cout << "通讯录已有人员如下:" << endl;
	cout << endl;
	list = new person[n]
	{
	person("熊二","11111111","12345678","123@qq.com","狗熊岭"),
	person("喜羊羊","22222222","23456789","234@qq.com","青青草原"),
	person("米奇","33333333","34567891","345@qq.com","妙妙屋"),
	person("光头强","44444444","45678901","456@qq.com","狗熊岭"),
	person("村长","55555555","56789012","567@qq.com","羊村"),
	person("灰太狼","66666666","67890123","678@qq.com","狼堡"),
	person("黑猫警长","77777777","78901234","789@qq.com","办公室"),
	person("花园宝宝","88888888","89012345","890@qq.com","地下室"),
	person("海绵宝宝","99999999","99012345","908@qq.com","菠萝堡"),
	person("福尔摩斯","00000000","08987443","098@qq.com","贝克街"),
	};
}
person_list::~person_list()
{
	delete[]list;
}
//增加联系人
person person_list::add(person& p)//增加联系人
{
	cin >> p;
	return p;
}
//删除联系人
int person_list::del(int& aa)//删除联系人
{
	int y;
	string c_xinxi;
	cout << "请输入你要删除联系人的信息(姓名,电话,QQ):" << endl;
	cout << "1.姓名             2.电话               3.QQ:" << endl;
	cin >> y;
	switch (y)
	{
	case 1:cout << "你选择姓名,请输入姓名:";
		cin >> c_xinxi;
		for (int i = 0; i < n; i++)
		{
			if (list[i].name == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;
			}
		}break;
	case 2:cout << "你选择电话,请输入电话:";
		cin >> c_xinxi;
		for (int i = 0; i < n; i++)
		{
			if (list[i].phone == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;
			}
		}break;
	case 3:cout << "你选择QQ,请输入QQ:";
		cin >> c_xinxi;
		for (int i = 0; i < n; i++)
		{
			if (list[i].QQ == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;

			}
		}break;
	}
	return aa;
}
//修改联系人
void person_list::gai(person& p1)//修改联系人
{
	int y;
	int aa;
	aa = 0;
	string c_xinxi;
	cout << "请输入你要修改联系人的信息(姓名,电话,QQ):" << endl;
	cout << "1.姓名             2.电话               3.QQ:" << endl;
	cin >> y;
	switch (y)
	{
	case 1:cout << "你选择姓名,请输入姓名:";
		cin >> c_xinxi;
		for (int i = 0; i <= n; i++)
		{
			if (list[i].name == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;
			}
		}break;
	case 2:cout << "你选择电话,请输入电话:";
		cin >> c_xinxi;
		for (int i = 0; i <= n; i++)
		{
			if (list[i].phone == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;
			}
		}break;
	case 3:cout << "你选择QQ,请输入QQ:";
		cin >> c_xinxi;
		for (int i = 0; i <= n; i++)
		{
			if (list[i].QQ == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;

			}
		}break;
	}
	cout << "请输入修改后的联系人信息:" << endl;
	cin >> p1;
	list[aa] = p1;
}
//查询联系人
void person_list::find(person& p2)//查询联系人
{
	int y;
	int aa;
	string c_xinxi;
	cout << "请输入你要查询联系人的信息(姓名,电话,QQ):" << endl;
	cout << "1.姓名             2.电话               3.QQ:" << endl;
	cin >> y;
	switch (y)
	{
	case 1:cout << "你选择姓名,请输入姓名:";
		cin >> c_xinxi;
		for (int i = 0; i <= n; i++)
		{
			if (list[i].name == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;
			}
		}break;
	case 2:cout << "你选择电话,请输入电话:";
		cin >> c_xinxi;
		for (int i = 0; i <= n; i++)
		{
			if (list[i].phone == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;
			}
		}break;
	case 3:cout << "你选择QQ,请输入QQ:";
		cin >> c_xinxi;
		for (int i = 0; i <= n; i++)
		{
			if (list[i].QQ == c_xinxi)
			{
				aa = i;
				cout << "此联系人所有信息如下:" << endl;
				cout << list[i] << endl;

			}
		}break;
	}
}

void test03()
{
	int x;
	int num = 0;
	int total = 10;
	person_list l;
	person p1;
	cout << setw(10) << left << "姓名" << setw(10) << left << "电话";
	cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl;
	for (int i = 0; i <= 9; i++)
	{
		cout << l.list[i] << endl;
	}
	cout << endl;
	cout << "请输入你要进行的操作的序号:";
	while (cin >> x)
	{
		switch (x)
		{
		case 1:num++;
			total += 1;
			if (total > l.n)
				cout << "通讯录已满" << endl;
			else
			{
				cout << "请输入增加联系人的信息:" << endl;
				l.add(p1);

				cout << "增加后的联系人列表为:" << endl;
				cout << setw(10) << left << "姓名" << setw(10) << left << "电话";
				cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl;
				for (int i = 0; i < total; i++)
				{
					l.list[total - 1] = p1;//增加联系人
					cout << l.list[i] << endl;//输出增加后的联系人列表
				}
			}
			break;

		case 2:cout << "请输入你要删除人的信息:" << endl;
			int aa;
			aa = 0;
			l.del(aa);
			cout << "确定删除该联系人么?(确定请输入Y,取消请输入N)" << endl;
			char x;
			cin >> x;
			if (x == 'Y')
			{
				num = num - 1;
				total -= 1;
				for (int i = aa; i < l.n; i++)
				{
					if (i < total)
						l.list[i] = l.list[i + 1];

				}
				cout << "删除后的联系人列表为:" << endl;
				cout << setw(10) << left << "姓名" << setw(10) << left << "电话";
				cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl;
				for (int i = 0; i < 10 + num; i++)
				{
					cout << l.list[i] << endl;
				}

			}
			else if (x == 'N')cout << "请重新输入你要进行的操作:" << endl;
			break;

		case 3:cout << "请输入你要修改人的信息:" << endl;
			l.gai(p1);
			cout << "修改后的联系人列表为:" << endl;
			cout << setw(10) << left << "姓名" << setw(10) << left << "电话";
			cout << setw(10) << left << "QQ" << setw(12) << left << "邮件" << "籍贯" << endl;
			for (int i = 0; i < 10 + num; i++)
			{
				cout << l.list[i] << endl;
			}
			break;

		case 4:cout << "请输入你要查询人的信息:" << endl;
			l.find(p1);
			break;
		default:cout << "输入错误,请重新输入:" << endl; break;
		}
	}
}
int main()
{
	cout << endl;
	cout << "欢迎使用通讯录管理系统" << endl;
	cout << "**********************" << endl;
	test01();
	test03();
	return 0;
}

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

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

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