C++通讯录管理系统

目录

1.创建项目

 创建项目

添加文件 

 2.菜单功能

 3.添加联系人

设计联系人结构体和设计通讯录结构体

 main函数中创建一个通讯录

 封装添加联系人函数

测试添加联系人功能

 4.显示联系人

封装显示联系人函数

 测试显示联系人功能

 5.删除联系人

 封装检测联系人是否存在

6.查找联系人 

 封装查找联系人函数

 测试查找指定联系人

7.修改联系人

 封装修改联系人函数

测试修改联系人功能

 8.清空联系人

 封装清空联系人函数

测试清空联系人

 9.退出功能


1.创建项目

创建项目步骤如下:

  • 创建新项目
  • 添加文件

 创建项目

添加文件 

填写项目名称,选择项目路径

 2.菜单功能

功能描述: 用户选择功能的界面

菜单界面如下:

 3.添加联系人

功能描述:

实现添加联系人功能,联系人上限为1000人,联系人信息包括(姓名,性别,年龄,联系电话,家庭住址)

添加联系人实现步骤:

  • 设计联系人结构体
  • 设计通讯录结构体
  • main函数中创建通讯录
  • 封装添加联系人函数
  • 测试添加联系人功能
设计联系人结构体和设计通讯录结构体

联系人信息包括: 姓名,性别,年龄,联系电话,家庭住址

设计如下:

 main函数中创建一个通讯录

添加联系人函数封装号后,在main函数中创建一个通讯录变量,这个就是我们需要一直维护的通讯录

 封装添加联系人函数

添加联系人代码:

//1.添加联系人
void addPerson(Addressbooks*abs)
{
	if (abs->size==MAX)
	{
		cout << "通讯录已满,无法添加!" << endl;
		return;
	}else
	{
		string names;
		cout <<"请输入姓名:" <<endl;
		cin>>names;
		abs->personArray[abs->size].name=names;


		cout << "请输入性别:"<<endl;
		cout << "1--男  2--女"<< endl;
		int sex=0;
		while (true)
		{
			cin>>sex;
			if (sex==1||sex==2)
			{
				abs->personArray[abs->size].age=sex;
				break;
			}
			cout<<"输入有误,请重新输入"<<endl;
		}
		cout << "请输入年龄:"<< endl;
		int ages=0;
		cin >> ages;
		abs->personArray[abs->size].age=ages;

		cout <<"请输入联系电话"<< endl;
		string phones;
		cin>>phones;
		abs->personArray[abs->size].phone=phones;

		cout<< "请输入家庭住址"<< endl;
		string addresso;
		cin>>addresso;
		abs->personArray[abs->size].addr=addresso;


		abs->size++;
		cout<<"添加成功!"<<endl;


		system("pause");//按任意键继续
		system("cls");//清屏

		
	}
}
测试添加联系人功能

选择界面中,如果选择了1,则代表添加联系人

在switch case语句中,case1里添加:

switch (select)
		{
		case 1://添加联系人
			addPerson(&abs);//利用地址传递,可以修饰实参
			break;
		}

测试效果图:

 4.显示联系人

功能描述:显示通讯录中已有的联系人信息

显示联系人步骤:

  • 封装显示联系人函数
  • 测试显示联系人功能
封装显示联系人函数

显示联系人代码:

//显示联系人
void showPerson(Addressbooks * abs)
{
	if (abs->size==0)
	{
		cout<<"当前的记录为空"<<endl;
	}else
	{
		for (int i = 0; i < abs->size; i++)
		{
			cout<<"姓名:"<< abs->personArray[i].name<<"\t";
			cout<<"性别:"<< (abs->personArray[i].sex==1?"女":"男")<<"\t";
			cout<<"年龄:"<< abs->personArray[i].age<<"\t";
			cout<<"电话:"<< abs->personArray[i].phone<<"\t";
			cout<<"住址:"<< abs->personArray[i].addr<<endl;

		}
	}
	system("pause");
	system("cls");
}
 测试显示联系人功能

在switch case2中显示:

switch (select)
		{
		case 1://添加联系人
			addPerson(&abs);//利用地址传递,可以修饰实参
			break;
		case 2://显示联系人
			showPerson(&abs);
			break;
		}

测试效果图: 

 5.删除联系人

功能描述:  按照姓名进行删除指定的联系人

删除联系人实现步骤:

  • 封装检测联系人是否存在
  • 封装删除联系人函数
  • 测试删除联系人功能
 封装检测联系人是否存在

设计思路: 


        删除联系人前,我们需要先判断用户输入的联系人是否存在,如果在删除,不存在显示没有要删除的联系人,因此我们可以把检测联系人是否存在封装成一个函数中,如果存在,返回联系人在通讯录中的位置,不存在返回-1.

封装检测联系人是否存在代码:

//检测联系人是否存在
int isExist(Addressbooks * abs,string dname)
{
	for (int i = 0; i < abs->size; i++)
	{
		//找到用户输入的姓名了
		if (abs->personArray[i].name==dname)
		{
			return i;
		}
	}
	return -1;
}

 封装删除联系人函数代码:

//删除联系人
void deleterPerson(Addressbooks * abs)
{
	cout << "请输入您要删除的联系人" <<endl;
	string name;
	cin >>name;
	int ret=isExist(abs,name);
	if (ret!=-1)
	{
		for (int i = 0; i < abs->size; i++)
		{
			abs->personArray[i]=abs->personArray[i+1];
		}
		abs->size--;
		cout<< "删除成功"<<endl;
	}else
	{
		cout << "查无此人" << endl;
	}

	system("pause");
	system("cls");

}

测试删除联系人功能代码:

在switch语句 case3删除联系人

switch (select)
		{
		case 1://添加联系人
			addPerson(&abs);//利用地址传递,可以修饰实参
			break;
		case 2:
			showPerson(&abs);
			break;
		case 3://删除联系人
			deleterPerson(&abs);
			break;
		}

运行结果:

6.查找联系人 

功能描述: 按照姓名查看指定联系人信息

查找联系人实现步骤

  • 封装查找联系人函数
  • 测试查找指定联系人
 封装查找联系人函数

查找联系人代码:

//查找指定联系人信息
void findPerson(Addressbooks * abs)
{
	cout << "请输入您要查找的联系人" << endl;
	string name1;
	cin>> name1;
	int ret=isExist(abs,name1);
	if (ret!=-1)
	{
		cout<<"姓名:"<< abs->personArray[ret].name<<"\t";
		cout<<"性别:"<< abs->personArray[ret].sex<<"\t";
		cout<<"年龄:"<< abs->personArray[ret].age<<"\t";
		cout<<"电话:"<< abs->personArray[ret].phone<<"\t";
		cout<<"住址:"<< abs->personArray[ret].addr<<endl;
	}else
	{
		cout<<"查无此人"<<endl;
	}
	system("pause");
	system("cls");
}
 测试查找指定联系人

在switch 语句中,case4查找联系人

case 4:
			findPerson(&abs);
			break;

运行代码结果:

7.修改联系人

功能描述: 按照姓名重新修改指定联系人

修改联系人实现步骤:

  • 封装修改联系人函数
  • 测试修改联系人功能
 封装修改联系人函数

修改联系人代码如下:

//修改联系人
void modifyPerson(Addressbooks * abs)
{
	cout<<"请输入您要修改的联系人"<<endl;
	string name;
	cin>>name;
	int ret= isExist(abs,name);
	if (ret!=-1)
	{
		string names;
		cout <<"请输入姓名:" <<endl;
		cin>>names;
		abs->personArray[abs->size].name=names;


		cout << "请输入性别:"<<endl;
		cout << "1--男  2--女"<< endl;
		int sex=0;
		while (true)
		{
			cin>>sex;
			if (sex==1||sex==2)
			{
				abs->personArray[abs->size].age=sex;
				break;
			}
			cout<<"输入有误,请重新输入"<<endl;
		}
		cout << "请输入年龄:"<< endl;
		int ages=0;
		cin >> ages;
		abs->personArray[abs->size].age=ages;

		cout <<"请输入联系电话"<< endl;
		string phones;
		cin>>phones;
		abs->personArray[abs->size].phone=phones;

		cout<< "请输入家庭住址"<< endl;
		string addresso;
		cin>>addresso;
		abs->personArray[abs->size].addr=addresso;

		cout<<"修改成功"<<endl;
		
	}else
	{
		cout<<"查无此人"<<endl;
	}
		system("pause");//按任意键继续
		system("cls");//清屏
}
测试修改联系人功能

在switch语句中的case5:

case 5:
			modifyPerson(&abs);
			break;

 8.清空联系人

功能描述:清空通讯录中所有信息

清空联系人实现步骤

  • 封装清空联系人函数
  • 测试清空联系人
 封装清空联系人函数

清空联系人代码:

//清空联系人
void cleanPerson(Addressbooks * abs)
{
	abs->size=0;
	cout<<"通讯录清空" << endl;
	system("pause");
	system("cls");
}
测试清空联系人

在switch 语句中,case6清空联系人

case 5:
			cleanPerson(&abs);
			break;

运行代码结果:

 9.退出功能

功能描述:退出通讯录系统

代码:

case 0:
			cout<<"欢迎下次使用"<<endl;
			system("pause");
			return 0;
			break;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LS新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值