使用c++写一个简单的联系人系统

作为一个c++的入门者,多实践,多动手。

分析:

1、打开vs,建一个工程文件(我使用的是vs2019)

2、选择空项目

 

3、命名文件

 

 添加c++源文件

现在我们就可以是开始我们的界面设计了,按照我们的需求分析,我们需要用代码设计出用户选择的界面,因为对于c++来说,封装是其特点之一,那我们就将各个功能封装,然后在进行调用。

对于用户,我们需要呈现一个供选择的界面:

void showMenu()
{
	cout << "----欢迎进入-----" << endl;
	cout << "|1、 添加联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|2、 显示联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|3、 删除联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|4、 查询联系人 |" << endl;
	cout << "|               | " << endl;
	cout << "|5、 修改联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|0、  退出系统  |" << endl;
	cout << "----*********-----" << endl;
}

我们使用一个Menu函数,将其功能呈现出来,然后在main()函数里调用;

这是运行结果:

 完成了界面的设计,现在就可以接着完成选择的一个功能,那么,对于选择,自然是使用swith

int select;
	while (true)
	{
		showMenu();
        cout << "请输入您的选择:" << endl;
	    cin >> select;//定义select 方便输入选择
	       switch (select)
	       {
		   case 1:
		   AddPerson(&abs);
		       break;
		   case 2:
			   ShowPerson(&abs);
		      break;
		   case 3:
			   DeletPerson(&abs);
		      break;
		   case 4:
			   FindPerson(&abs);
		      break;
		   case 5:
			   ModifyPerson(&abs);
			   break;
		   case 0:
		     cout << "欢迎下次使用!" << endl;
		     system("pause");
		     system("cls");
		     break;
	      default:
		    break;
	       }
	}

定义联系人结构体,方便后续调用

struct Person
{
	string Name;
	int  Sex;
	int Age;
	string Phone;
	string Address;
};

接着也要定义一个通讯录的结构体

struct TongxunBook
{
	struct Person PersonArry[MAX];//通信录的大小
	int size;//记录人数,因为使用的使用的是数组,所以利用数组的大小来判断人数
	
};

添加联系人的需求:

void AddPerson(TongxunBook *abs)
{
	if (abs->size > 1000)
	{
		cout << "通讯录已满!不可以添加新的联系人!" << endl;
	}
	else
	{
		string name;
		cout << "请输入添加的联系人姓名:" << endl;
		cin >> name;
		abs->PersonArry[abs->size].Name = name;
		//string sex;
		int sex = 0;
		while (true)
		{
			cout << "选择联系人的性别:" << endl;
			cout << "1、男" << endl;
			cout << "2、女" << endl;
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->PersonArry[abs->size].Sex = sex;
				break;
			}
			else
			{
				cout << "输入错误!" << endl;
				break;

			}
		}

		
			int age=0;
			cout << "请输入联系人的年龄:" << endl;
			cin >> age;
			if (age < 0 || age>100)
			{
				cout << "输入有问题!" << endl;
			}
			else
			{
                abs->PersonArry[abs->size].Age =age;
			}
			

		string phone;
		cout << "请输入联系人的电话:" << endl;
		cin >> phone;
		abs->PersonArry[abs->size].Phone = phone;
		
		string address;
		cout << "请输入联系人的地址:" << endl;
		cin >> address;
        abs->PersonArry[abs->size].Address = address;
	}
	abs->size++;
	cout << "联系人添加成功!" << endl;
	system("pause");
	system("cls");
}

显示联系人的需求:

void ShowPerson(TongxunBook *abs)
{
	if (abs->size == 0)
	{
		cout << "通信录为空!" << endl;
	}
	else
	{
		int i;
		
		for (i = 0; i < abs->size; i++)
		{
			cout << "姓名:" << abs->PersonArry[i].Name << endl;
			cout << "性别:" << (abs->PersonArry[i].Sex==1? "男":"女") << endl;
			cout << "年龄:" << abs->PersonArry[i].Age << endl;
			cout << "电话:" << abs->PersonArry[i].Phone << endl;
			cout << "地址:" << abs->PersonArry[i].Address << endl;
		}
	}
}

删除联系人的需求:

void DeletPerson(TongxunBook* abs)
{
	if (abs->size == 0)
	{
		cout << "通讯录为空!" << endl;
	}
	else
	{
		cout << "输入删除联系人的姓名:" << endl;
		string name;
		cin >> name;
		int res = isExistPerson(abs, name);
		if (res != -1)
		{
			for (int i = res; i < abs->size; i++)
			{
				abs->PersonArry[i].Name == abs->PersonArry[i + 1].Name;
			}
			abs->size--;
			cout << "删除成功!" << endl;
		}
		else
		{
			cout << "查无此人!" << endl;
		}
	}
}

判断联系人存不存在:

int  isExistPerson(TongxunBook *abs,string name)
{
	for (int i = 0; i < abs->size; i++)
	{
		if (abs->PersonArry[i].Name == name)
		{
			return i;
		}
		else
		{
			cout << "查无此人!" << endl;
		}
	}
	return -1;
}

查找联系人,和删除联系人的类似

void  FindPerson(TongxunBook *abs)
{
	cout << "请输入你要查找的联系人:" << endl;
		string name;
		cin >> name;
		int res=isExistPerson(abs, name);
		if (res != -1)
		{
			cout << "姓名:" << abs->PersonArry[res].Name << endl;
			cout << "性别 "<< abs->PersonArry[res].Sex<< endl;
			cout << "年龄" << abs->PersonArry[res].Age << endl;
			cout << "电话" << abs->PersonArry[res].Phone << endl;
			cout << "地址" << abs->PersonArry[res].Address << endl;
		}
		else
		{
			cout << "查无此人!" << endl;
			system("pause");
			system("cls");
		}
}

修改联系人:

void ModifyPerson(TongxunBook* abs)
{
	cout << "请输入你要修改的联系人:" << endl;
	string name;
	cin >> name;
	int res = isExistPerson(abs, name);
	if (res != -1)
	{
		cout << "输入修改后的姓名:" << endl;
		string name;
		cin >> name;
		abs->PersonArry[res].Name = name;
		cout << "输入修改后的性别:" << endl;
		cout << "1、男" << endl;
		cout << "2、女" << endl;
		int  sex=0;
		while (true)
		{
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->PersonArry[res].Sex = sex;
				break;
			}
			else
			{
				cout << "输入错误" << endl;
			}
		}

		cout << "输入修改后的年龄:" << endl;
		int age;
		cin >> age;
		abs->PersonArry[res].Age = age;

		cout << "输入修改后的电话:" << endl;
		string phone;
		cin >> phone;
		abs->PersonArry[res].Phone = phone;

		cout << "输入修改后的地址:" << endl;
		string address;
		cin >> address;
		abs->PersonArry[res].Address = address;

	}
	else
	{
		cout << "查无此人!无法修改" << endl;
		system("pause");
		system("cls");
	}
}

到这,简单的管理系统各个功能就完成了。大家也可以发现,这个管理系统是通过数组的方式来完成的,并不具备保存的功能,所以,想要保存呢,就需要使用到文件操作,有兴趣的,可以自己尝试一下。

总的完全代码:

#include<iostream>
#include<string>
#define MAX 1000
using namespace std;

struct Person
{
	string Name;
	int  Sex;
	int Age;
	string Phone;
	string Address;
};

struct TongxunBook
{
	struct Person PersonArry[MAX];//通信录的大小
	int size;//记录人数,因为使用的使用的是数组,所以利用数组的大小来判断人数
	
};


void AddPerson(TongxunBook *abs)
{
	if (abs->size > 1000)
	{
		cout << "通讯录已满!不可以添加新的联系人!" << endl;
	}
	else
	{
		string name;
		cout << "请输入添加的联系人姓名:" << endl;
		cin >> name;
		abs->PersonArry[abs->size].Name = name;
		//string sex;
		int sex = 0;
		while (true)
		{
			cout << "选择联系人的性别:" << endl;
			cout << "1、男" << endl;
			cout << "2、女" << endl;
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->PersonArry[abs->size].Sex = sex;
				break;
			}
			else
			{
				cout << "输入错误!" << endl;
				break;

			}
		}

		
			int age=0;
			cout << "请输入联系人的年龄:" << endl;
			cin >> age;
			if (age < 0 || age>100)
			{
				cout << "输入有问题!" << endl;
			}
			else
			{
                abs->PersonArry[abs->size].Age =age;
			}
			

		string phone;
		cout << "请输入联系人的电话:" << endl;
		cin >> phone;
		abs->PersonArry[abs->size].Phone = phone;
		
		string address;
		cout << "请输入联系人的地址:" << endl;
		cin >> address;
	}
	abs->size++;
	cout << "联系人添加成功!" << endl;
	system("pause");
	system("cls");
}

void ShowPerson(TongxunBook *abs)
{
	if (abs->size == 0)
	{
		cout << "通信录为空!" << endl;
	}
	else
	{
		int i;
		
		for (i = 0; i < abs->size; i++)
		{
			cout << "姓名:" << abs->PersonArry[i].Name << endl;
			cout << "性别:" << (abs->PersonArry[i].Sex==1? "男":"女") << endl;
			cout << "年龄:" << abs->PersonArry[i].Age << endl;
			cout << "电话:" << abs->PersonArry[i].Phone << endl;
			cout << "地址:" << abs->PersonArry[i].Address << endl;
		}
	}
}

int  isExistPerson(TongxunBook *abs,string name)
{
	for (int i = 0; i < abs->size; i++)
	{
		if (abs->PersonArry[i].Name == name)
		{
			return i;
		}
		else
		{
			cout << "查无此人!" << endl;
		}
	}
	return -1;
}

void DeletPerson(TongxunBook* abs)
{
	if (abs->size == 0)
	{
		cout << "通讯录为空!" << endl;
	}
	else
	{
		cout << "输入删除联系人的姓名:" << endl;
		string name;
		cin >> name;
		int res = isExistPerson(abs, name);
		if (res != -1)
		{
			for (int i = res; i < abs->size; i++)
			{
				abs->PersonArry[i].Name == abs->PersonArry[i + 1].Name;
			}
			abs->size--;
			cout << "删除成功!" << endl;
		}
		else
		{
			cout << "查无此人!" << endl;
		}
	}
}

void  FindPerson(TongxunBook *abs)
{
	cout << "请输入你要查找的联系人:" << endl;
		string name;
		cin >> name;
		int res=isExistPerson(abs, name);
		if (res != -1)
		{
			cout << "姓名:" << abs->PersonArry[res].Name << endl;
			cout << "性别 "<< abs->PersonArry[res].Sex<< endl;
			cout << "年龄" << abs->PersonArry[res].Age << endl;
			cout << "电话" << abs->PersonArry[res].Phone << endl;
			cout << "地址" << abs->PersonArry[res].Address << endl;
		}
		else
		{
			cout << "查无此人!" << endl;
			system("pause");
			system("cls");
		}
}

void ModifyPerson(TongxunBook* abs)
{
	cout << "请输入你要修改的联系人:" << endl;
	string name;
	cin >> name;
	int res = isExistPerson(abs, name);
	if (res != -1)
	{
		cout << "输入修改后的姓名:" << endl;
		string name;
		cin >> name;
		abs->PersonArry[res].Name = name;
		cout << "输入修改后的性别:" << endl;
		cout << "1、男" << endl;
		cout << "2、女" << endl;
		int  sex=0;
		while (true)
		{
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->PersonArry[res].Sex = sex;
				break;
			}
			else
			{
				cout << "输入错误" << endl;
			}
		}

		cout << "输入修改后的年龄:" << endl;
		int age;
		cin >> age;
		abs->PersonArry[res].Age = age;

		cout << "输入修改后的电话:" << endl;
		string phone;
		cin >> phone;
		abs->PersonArry[res].Phone = phone;

		cout << "输入修改后的地址:" << endl;
		string address;
		cin >> address;
		abs->PersonArry[res].Address = address;

	}
	else
	{
		cout << "查无此人!无法修改" << endl;
		system("pause");
		system("cls");
	}
}


void showMenu()
{
	cout << "----欢迎进入-----" << endl;
	cout << "|1、 添加联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|2、 显示联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|3、 删除联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|4、 查询联系人 |" << endl;
	cout << "|               | " << endl;
	cout << "|5、 修改联系人 |" << endl;
	cout << "|               |  " << endl;
	cout << "|0、  退出系统  |" << endl;
	cout << "----*********-----" << endl;
}


int main()
{
	TongxunBook abs;
	abs.size = 0;

	int select;
	while (true)
	{
		showMenu();
        cout << "请输入您的选择:" << endl;
	    cin >> select;//定义select 方便输入选择
	       switch (select)
	       {
		   case 1:
		   AddPerson(&abs);
		       break;
		   case 2:
			   ShowPerson(&abs);
		      break;
		   case 3:
			   DeletPerson(&abs);
		      break;
		   case 4:
			   FindPerson(&abs);
		      break;
		   case 5:
			   ModifyPerson(&abs);
			   break;
		   case 0:
		     cout << "欢迎下次使用!" << endl;
		     system("pause");
		     system("cls");
		     break;
	      default:
		    break;
	       }
	}
	

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值