C++ 个人通讯录管理系统(四)

现在开始第四、五、六个功能:查找、修改和删除联系人。

1、查找联系人

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

查找联系人实现步骤

  • 封装查找联系人函数

  • 测试查找指定联系人

1.1 封装查找联系人函数

实现思路:判断用户指定的联系人是否存在,如果存在显示信息,不存在则提示查无此人。

查找联系人代码:

//4、查找指定联系人信息
void findPerson(Addressbooks * abs)
{
	cout << "请输入您要查找的联系人" << endl;
	string name;
	cin >> name;

	int ret = isExist(abs, name);
	if (ret != -1)
	{
		cout << "姓名:" << abs->personArray[ret].m_Name << "\t";
		cout << "性别:" << abs->personArray[ret].m_Sex << "\t";
		cout << "年龄:" << abs->personArray[ret].m_Age << "\t";
		cout << "电话:" << abs->personArray[ret].m_Phone << "\t";
		cout << "住址:" << abs->personArray[ret].m_Addr << endl;
	}
	else
	{
		cout << "查无此人" << endl;
	}

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

}

1.2 测试查找指定联系人

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

#include <iostream>
#include <string>
 
using namespace std;
 
#define MAX 1000 //最大人数
 
int main() {
​
    int select = 0;
​
    while (true)
    {
        showMenu();
​
        cin >> select;
        
        switch (select)
        {
        case 1:  //添加联系人
            addPerson(&abs);
            break;
        case 2:  //显示联系人
            showPerson(&abs);
            break;
        case 3:  //删除联系人
            deletePerson(&abs);	
            break;
        case 4:  //查找联系人
            findPerson(&abs);
            break;
        case 5:  //修改联系人
            break;
        case 6:  //清空联系人
            break;
        case 0:  //退出通讯录
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:
            break;
        }
    }
​
    system("pause");
​
    return 0;
}
 

2、修改联系人

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

修改联系人实现步骤

  • 封装修改联系人函数

  • 测试修改联系人功能

2.1 封装修改联系人函数

实现思路:查找用户输入的联系人,如果查找成功进行修改操作,查找失败提示查无此人。

//5、修改联系人
void modifyPerson(Addressbooks * abs)
{
	cout << "请输入您要修改的联系人: ";
	string name;
	cin >> name;

	int ret = isExist(abs, name);
	if (ret != -1)
	{
		//修改对应的联系人
		//姓名
		string nameModify;
		cout << "请输入修改后的姓名:";
		cin >> nameModify;
		abs->personArray[ret].m_Name = nameModify;

		//性别
		int sex = 0;
		while (true)
		{
			cout << "请输入修改后的性别(1: 男, 2: 女):";
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->personArray[ret].m_Sex = sex;
				break;
			}
			else
			{
				cout << "性别输入错误, 请重新输入!" << endl;
			}
		}

		//年龄
		cout << "请输入修改后的年龄:";
		int age = 0;
		while (true)
		{
			cin >> age;
			if (age > 0 && age <= 130)
			{
				abs->personArray[ret].m_Age = age;
				break;
			}
			else
			{
				cout << "年龄输入错误, 请重新输入!" << endl;
			}
		}

		//电话
		cout << "请输入修改后的电话:";
		string phone = "";
		cin >> phone;
		abs->personArray[ret].m_Phone = phone;

		//住址
		cout << "请输入修改后的住址:";
		string address = "";
		cin >> address;
		abs->personArray[ret].m_Addr = address;
	}
	else
	{
		cout << "查无此人!" << endl;
	}

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

2.2 测试修改联系人功能

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

#include <iostream>
#include <string>
 
using namespace std;
 
#define MAX 1000 //最大人数
 
int main() {
​
    int select = 0;
​
    while (true)
    {
        showMenu();
​
        cin >> select;
        
        switch (select)
        {
        case 1:  //添加联系人
            addPerson(&abs);
            break;
        case 2:  //显示联系人
            showPerson(&abs);
            break;
        case 3:  //删除联系人
            deletePerson(&abs);	
            break;
        case 4:  //查找联系人
            findPerson(&abs);
            break;
        case 5:  //修改联系人
            modifyPerson(&abs);
            break;
        case 6:  //清空联系人
            break;
        case 0:  //退出通讯录
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:
            break;
        }
    }
​
    system("pause");
​
    return 0;
}
 

实际测试效果:

3、清空联系人

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

清空联系人实现步骤:

  • 封装清空联系人函数

  • 测试清空联系人

3.1 封装清空联系人函数

实现思路: 将通讯录所有联系人信息清除掉,只要将通讯录记录的联系人数量置为0,做逻辑清空即可。

清空联系人代码:

//6、清空所有联系人
void cleanPerson(Addressbooks * abs)
{
	cout << "请确认是否要清空所有联系人 ? (0: 否, 1: 是)" << endl;
	int cleanPerson = 0;
	cin >> cleanPerson;

	if (cleanPerson)
	{
		abs->m_Size = 0;   //将维护的联系人数量置为0,做逻辑清空操作
		cout << "通讯录已清空!" << endl;
	}
    else
	{
		cout << "暂不清空, 退出!" << endl;
	}

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

	return;
}

实际测试效果:

3.2 测试清空联系人

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

#include <iostream>
#include <string>
 
using namespace std;
 
#define MAX 1000 //最大人数
 
int main() {
​
    int select = 0;
​
    while (true)
    {
        showMenu();
​
        cin >> select;
        
        switch (select)
        {
        case 1:  //添加联系人
            addPerson(&abs);
            break;
        case 2:  //显示联系人
            showPerson(&abs);
            break;
        case 3:  //删除联系人
            deletePerson(&abs);	
            break;
        case 4:  //查找联系人
            findPerson(&abs);
            break;
        case 5:  //修改联系人
            modifyPerson(&abs);
            break;
        case 6:  //清空联系人
            cleanPerson(&abs);
            break;
        case 0:  //退出通讯录
            cout << "欢迎下次使用" << endl;
            system("pause");
            return 0;
            break;
        default:
            break;
        }
    }
​
    system("pause");
​
    return 0;
}
 

至此,通讯录管理系统完成!

转载:【C++零基础入门到实战就业教程|传智教育-哔哩哔哩】 https://b23.tv/joc5Gdb

猜你喜欢

转载自blog.csdn.net/duan19920101/article/details/126073911