C++通讯录管理系统

该代码示例展示了如何使用C++编程实现一个简单的通讯录管理系统,包括添加、删除、查询、修改和显示联系人信息的功能。通过结构体定义联系人属性,以及一系列函数来执行不同操作。
摘要由CSDN通过智能技术生成
  • #include<iostream>
    using namespace std;
    
    
    struct people
    {
    	string sex;
    	string name;
    	int number;
    }peo[1000];
    void mein()
    {
    	cout << " \t\t---------------------------------------------------------------------"<< endl;
    	cout << " \t\t|\t************************通讯录*************************\t|"<< endl;
    	cout << " \t\t|\t*******************************************************\t|"<< endl;
    	cout << " \t\t|\t********************1.增加联系人***********************\t|" << endl;
    	cout << " \t\t|\t********************2.删除联系人***********************\t|" << endl;
    	cout << " \t\t|\t********************3.查找联系人***********************\t|" << endl;
    	cout << " \t\t|\t********************4.修改联系人***********************\t|" << endl;
    	cout << " \t\t|\t********************5.清空联系人***********************\t|" << endl;
    	cout << " \t\t|\t********************6.查看联系人***********************\t|" << endl;
    	cout << " \t\t|\t********************7.退      出***********************\t|"<< endl;
    	cout << " \t\t|\t*******************************************************\t|"<< endl;
    	cout << " \t\t---------------------------------------------------------------------"<< endl;
    
    }
    void add(people* peo)
    {
    	int flag = 1;
    	int i = 0;
    	if (i == 1000)
    	{
    		cout << "通讯录已满" << endl;
    	}
    	else 
    	{
    		while (flag)
    		{
    
    			while (peo[i].number == 0)
    			{
    				cout << "请输入要添加的性别:" << endl;
    				cin >> peo[i].sex;
    				cout << "请输入要添加的姓名:" << endl;
    				cin >> peo[i].name;
    				cout << "请输入要添加的号码:" << endl;
    				cin >> peo[i].number;
    				if (peo[i].number != NULL)
    				{
    					cout << "添加成功" << endl;
    				}
    				else
    				{
    					cout << "添加失败" << endl;
    				}
    				flag = 0;
    				break;
    			}
    			i++;
    		}
    	}
    }
    void deleted(people* peo)
    {
    	int flag=0;
    	int i = 0;
    	string DeleteName;
    	cout << "请输入你要删除的人的姓名" << endl;
    	cin >> DeleteName;
    	while (peo[i].number != 0)
    	{
    		if (DeleteName == peo[i].name)
    		{
    			if (peo[i].number != 0)
    			{
    				while (peo[i].number!=0)
    				{
    					peo[i].name = peo[i+1].name;
    					peo[i ].sex = peo[i+1].sex;
    					peo[i ].number = peo[i+1].number;
    					i++;
    				}
    				cout << "删除成功" << endl;
    			}
    			else
    			{
    				peo[i].name = peo[i + 1].name;
    				peo[i].sex = peo[i + 1].sex;
    				peo[i].number = peo[i + 1].number;
    				cout << "删除成功" << endl;
    			}
    			flag = 1;
    		}
    		else
    		{
    			i++;
    		}
    
    		
    	}
    		if (flag == 0)
    		{
    			cout << "查无此人" << endl;
    		}
    
    }
    void search(people* peo)
    {
    	int flag = 0;
    	int i = 0;
    	string SearchName;
    	cout << "请输入要查询的人的姓名" << endl;
    	cin >> SearchName;
    	while (peo[i].number != 0)
    	{
    		if (SearchName == peo[i].name)
    		{
    			cout << "姓名:  " << peo[i].name << "    \t性别:\t" << peo[i].sex << "  \t号码:\t  " << peo[i].number << endl;
    			flag = 1;
    			break;
    		}
    		i++;
    		
    		
    	}
    	if (flag == 0)
    	{
    		cout << "查无此人" << endl;
    	}
    }
    void update(people* peo)
    {
    	int i = 0;
    	int flag = 0;
    	string SearchName;
    	cout << "请输入更新的人的姓名" << endl;
    	cin >> SearchName;
    
    	while (peo[i].number != 0)
    	{
    		if (SearchName == peo[i].name)
    		{
    			cout << "姓名:  " << peo[i].name << "    \t性别:\t" << peo[i].sex << "  \t号码:\t  " << peo[i].number << endl;
    			flag = 1;
    			break;
    		}
    		i++;
    	}
    		if (flag == 0)
    		{
    			cout << "查无此人" << endl;
    		}
    	cout << "请输入更新的内容 1,性别 2,姓名 3,电话" << endl;
    	int change;
    	cin >> change;
    	switch (change)
    	{
    	case 1:
    		cout << "请输入性别" << endl;
    		cin >> peo[i].sex;
    		cout << "修改成功" << endl;
    		break;
    	case 2:
    		cout << "请输入姓名" << endl;
    		cin >> peo[i].name;
    		cout << "修改成功" << endl;
    		break;
    	case 3:
    		cout << "请输入电话" << endl;
    		cin >> peo[i].number;
    		cout << "修改成功" << endl;
    		break;
    	default:
    		break;
    	}
    	
    }
    void empty(people* peo)
    {
    	while (peo[0].name!="")
    	{
    	int i = 0;
    		while (peo[i].number != 0)
    		{
    			peo[i].name = peo[i + 1].name;
    			peo[i].sex = peo[i + 1].sex;
    			peo[i].number = peo[i + 1].number;
    			i++;
    		}
    
    	}
    	cout << "清空完成" << endl;
    }
    void show(people* peo)
    {
    	int i = 0;
    	while (peo[i].number != 0)
    	{
    		cout << "姓名:  " << peo[i].name << "    \t性别:\t" << peo[i].sex << "  \t号码:\t  " << peo[i].number << endl;
    		i++;
    	}
    }
    void select()
    {
    	int flag;
    	int F = 1;
    	while (F)
    	{
    		mein();
    		cout << "请输入" << endl;
    		cin.clear();
    		cin >> flag;
    		switch (flag)
    		{
    		case 1:
    			add(peo);
    			break;
    		case 2:
    			deleted(peo);
    			break;
    		case 3:
    			search(peo);
    			break;
    		case 4:
    			update(peo);
    			break;
    		case 5:
    			empty(peo);
    			break;
    		case 6:
    			show(peo);
    			break;
    		case 7:
    			F = 0;
    			break;
    		default:
    			break;
    		}
    	}
    }
    
    
    int main()
    {
    	select();
    }

 接下来对各个模块解析:

1.结构体:创建属性每个通讯人的属性的结构体(包括性别、姓名、电话号码)

struct people
{
	string sex;
	string name;
	int number;
}peo[1000];

2.菜单栏:主要是对进入通讯录所进行的界面展示

void mein()
{
	cout << " \t\t---------------------------------------------------------------------"<< endl;
	cout << " \t\t|\t************************通讯录*************************\t|"<< endl;
	cout << " \t\t|\t*******************************************************\t|"<< endl;
	cout << " \t\t|\t********************1.增加联系人***********************\t|" << endl;
	cout << " \t\t|\t********************2.删除联系人***********************\t|" << endl;
	cout << " \t\t|\t********************3.查找联系人***********************\t|" << endl;
	cout << " \t\t|\t********************4.修改联系人***********************\t|" << endl;
	cout << " \t\t|\t********************5.清空联系人***********************\t|" << endl;
	cout << " \t\t|\t********************6.查看联系人***********************\t|" << endl;
	cout << " \t\t|\t********************7.退      出***********************\t|"<< endl;
	cout << " \t\t|\t*******************************************************\t|"<< endl;
	cout << " \t\t---------------------------------------------------------------------"<< endl;

}

3.添加函数:添加联系人的方法

void add(people* peo)
{
	int flag = 1;
	int i = 0;
	if (i == 1000)
	{
		cout << "通讯录已满" << endl;
	}
	else 
	{
		while (flag)
		{

			while (peo[i].number == 0)
			{
				cout << "请输入要添加的性别:" << endl;
				cin >> peo[i].sex;
				cout << "请输入要添加的姓名:" << endl;
				cin >> peo[i].name;
				cout << "请输入要添加的号码:" << endl;
				cin >> peo[i].number;
				if (peo[i].number != NULL)
				{
					cout << "添加成功" << endl;
				}
				else
				{
					cout << "添加失败" << endl;
				}
				flag = 0;
				break;
			}
			i++;
		}
	}
}

4.删除函数:对某一联系人进行删除操作

void deleted(people* peo)
{
	int flag=0;
	int i = 0;
	string DeleteName;
	cout << "请输入你要删除的人的姓名" << endl;
	cin >> DeleteName;
	while (peo[i].number != 0)
	{
		if (DeleteName == peo[i].name)
		{
			if (peo[i].number != 0)
			{
				while (peo[i].number!=0)
				{
					peo[i].name = peo[i+1].name;
					peo[i ].sex = peo[i+1].sex;
					peo[i ].number = peo[i+1].number;
					i++;
				}
				cout << "删除成功" << endl;
			}
			else
			{
				peo[i].name = peo[i + 1].name;
				peo[i].sex = peo[i + 1].sex;
				peo[i].number = peo[i + 1].number;
				cout << "删除成功" << endl;
			}
			flag = 1;
		}
		else
		{
			i++;
		}

		
	}
		if (flag == 0)
		{
			cout << "查无此人" << endl;
		}

}

5.查询函数:对单一联系人进行查询

void search(people* peo)
{
	int flag = 0;
	int i = 0;
	string SearchName;
	cout << "请输入要查询的人的姓名" << endl;
	cin >> SearchName;
	while (peo[i].number != 0)
	{
		if (SearchName == peo[i].name)
		{
			cout << "姓名:  " << peo[i].name << "    \t性别:\t" << peo[i].sex << "  \t号码:\t  " << peo[i].number << endl;
			flag = 1;
			break;
		}
		i++;
		
		
	}
	if (flag == 0)
	{
		cout << "查无此人" << endl;
	}
}

6.修改函数:对某一联系人进行信息修改

void update(people* peo)
{
	int i = 0;
	int flag = 0;
	string SearchName;
	cout << "请输入更新的人的姓名" << endl;
	cin >> SearchName;

	while (peo[i].number != 0)
	{
		if (SearchName == peo[i].name)
		{
			cout << "姓名:  " << peo[i].name << "    \t性别:\t" << peo[i].sex << "  \t号码:\t  " << peo[i].number << endl;
			flag = 1;
			break;
		}
		i++;
	}
		if (flag == 0)
		{
			cout << "查无此人" << endl;
		}
	cout << "请输入更新的内容 1,性别 2,姓名 3,电话" << endl;
	int change;
	cin >> change;
	switch (change)
	{
	case 1:
		cout << "请输入性别" << endl;
		cin >> peo[i].sex;
		cout << "修改成功" << endl;
		break;
	case 2:
		cout << "请输入姓名" << endl;
		cin >> peo[i].name;
		cout << "修改成功" << endl;
		break;
	case 3:
		cout << "请输入电话" << endl;
		cin >> peo[i].number;
		cout << "修改成功" << endl;
		break;
	default:
		break;
	}
	
}

7.清空函数:对所有联系人清空

void empty(people* peo)
{
	while (peo[0].name!="")
	{
	int i = 0;
		while (peo[i].number != 0)
		{
			peo[i].name = peo[i + 1].name;
			peo[i].sex = peo[i + 1].sex;
			peo[i].number = peo[i + 1].number;
			i++;
		}

	}
	cout << "清空完成" << endl;
}

8.展示函数:将所有联系人全部展示出来

void show(people* peo)
{
	int i = 0;
	while (peo[i].number != 0)
	{
		cout << "姓名:  " << peo[i].name << "    \t性别:\t" << peo[i].sex << "  \t号码:\t  " << peo[i].number << endl;
		i++;
	}
}

9.选择函数:选择对通讯录进行的操作

void select()
{
	int flag;
	int F = 1;
	while (F)
	{
		mein();
		cout << "请输入" << endl;
		cin.clear();
		cin >> flag;
		switch (flag)
		{
		case 1:
			add(peo);
			break;
		case 2:
			deleted(peo);
			break;
		case 3:
			search(peo);
			break;
		case 4:
			update(peo);
			break;
		case 5:
			empty(peo);
			break;
		case 6:
			show(peo);
			break;
		case 7:
			F = 0;
			break;
		default:
			break;
		}
	}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值