Learn C++ from scratch, and write an address book management system, which has the function of adding, deleting, checking and modifying. Course design homework - address book management system

This code is a simple address book management system that can add, display, delete, find, modify and clear contact information. The following is a detailed comment on the code:

#include<iostream>
#include <string>  // 包含string头文件
#define MAX 1000  // 定义通讯录中联系人的最大数量

using namespace std;

// 联系人结构体
struct Person
{
	string m_Name; // 姓名
	int m_Sex; // 性别:1男 2女
	int m_Age; // 年龄
	string m_Phone; // 电话
	string m_Addr; // 住址
};

// 通讯录结构体
struct Addressbooks
{
	struct Person personArray[MAX]; // 通讯录中保存的联系人数组
	int m_Size; // 通讯录中人员个数
};

// 菜单界面
void showMenu()
{
	cout << "***************************" << endl;
	cout << "*****  1、添加联系人  *****" << endl;
	cout << "*****  2、显示联系人  *****" << endl;
	cout << "*****  3、删除联系人  *****" << endl;
	cout << "*****  4、查找联系人  *****" << endl;
	cout << "*****  5、修改联系人  *****" << endl;
	cout << "*****  6、清空联系人  *****" << endl;
	cout << "*****  0、退出通讯录  *****" << endl;
	cout << "***************************" << endl;
}

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

		// 性别
		cout << "请输入性别:" << endl;
		cout << "1 -- 男" << endl;
		cout << "2 -- 女" << endl;

		int sex = 0;
		// 输入性别,要求输入1或2,否则重新输入
		while (true)
		{
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				abs->personArray[abs->m_Size].m_Sex = sex;
				break;
			}
			cout << "输入有误,请重新输入";
		}

		// 年龄
		cout << "请输入年龄:" << endl;
		int age = 0;
		cin >> age;
		abs->personArray[abs->m_Size].m_Age = age;

		// 联系电话
		cout << "请输入联系电话:" << endl;
		string phone = "";
		cin >> phone;
		abs->personArray[abs->m_Size].m_Phone = phone;

		// 家庭住址
		cout << "请输入家庭住址:" << endl;
		string address;
		cin >> address;
		abs->personArray[abs->m_Size].m_Addr = address;

		// 更新通讯录人数
		abs->m_Size++;

		cout << "添加成功" << endl;
		system("pause");
		system("cls");
	}
}

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

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

// 判断联系人是否存在,若存在返回索引,不存在返回-1
int isExist(Addressbooks* abs, string name)
{
	for (int i = 0; i < abs->m_Size; i++)
	{
		if (abs->personArray[i].m_Name == name)
		{
			return i;
		}
	}
	return -1;
}

// 删除联系人
void deletePerson(Addressbooks* abs)
{
	cout << "请输入您要删除的联系人" << endl;
	string name;
	cin >> name;

	int ret = isExist(abs, name);
	if (ret != -1)
	{
		for (int i = ret; i < abs->m_Size; i++)
		{
			abs->personArray[i] = abs->personArray[i + 1];
		}
		abs->m_Size--;
		cout << "删除成功" << endl;
	}
	else
	{
		cout << "查无此人" << endl;
	}

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

// 查找联系人
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");
}

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

	int ret = isExist(abs, name);
	if (ret != -1)
	{
		// 姓名
		string name;
		cout << "请输入姓名:" << endl;
		cin >> name;
		abs->personArray[ret].m_Name = name;

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

		// 年龄
		cout << "请输入年龄:" << endl;
		int age = 0;
		cin >> age;
		abs->personArray[ret].m_Age = age;

		// 联系电话
		cout << "请输入联系电话:" << endl;
		string phone = "";
		cin >> phone;
		abs->personArray[ret].m_Phone = phone;

		// 家庭住址
		cout << "请输入家庭住址:" << endl;
		string address;
		cin >> address;
		abs->personArray[ret].m_Addr = address;

		cout << "修改成功" << endl;
	}
	else
	{
		cout << "查无此人" << endl;
	}

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

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

int main() {
	Addressbooks abs;
	abs.m_Size = 0;
	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;
}

This code is a simple address book management system, which implements functions such as adding contacts, displaying contacts, deleting contacts, finding contacts, modifying contacts, and clearing contacts.

First, two structures are defined at the beginning of the code, namely Personand Addressbooks. PersonThe structure represents the information of a contact, including name, gender, age, phone number and address. AddressbooksThe structure represents the address book, which has an array to save contacts personArrayand the number of contacts in the address book m_Size.

Then, some functions are defined to achieve different functions:

  • showMenuThe function is used to display the menu interface, including options such as adding contacts, displaying contacts, deleting contacts, finding contacts, modifying contacts, clearing contacts, and exiting the address book.

  • addPersonFunction is used to add contacts. First judge whether the address book is full, if it is full, it will prompt that it cannot be added, otherwise input the name, gender, age, phone number and address of the contact in sequence, and update the number of contacts in the address book.

  • showPersonFunction to display contacts. If the address book is empty, it will prompt that the current record is empty; otherwise, traverse the contact array in the address book, and output the name, gender, age, phone number and address of the contact one by one.

  • isExistThe function is used to determine whether the contact with the specified name exists in the address book. Traverse the contact array in the address book, if a contact matching the specified name is found, return the index of the contact in the array; if no matching contact is found after traversing, return -1.

  • deletePersonFunction is used to delete a contact. First enter the name of the contact to be deleted, and then call isExistthe function to determine whether the contact exists. If it exists, the contacts behind the contact will be moved forward one by one, and the number of contacts in the address book will be updated; if it does not exist, it will prompt that there is no such person found.

  • findPersonfunction to look up contacts. First enter the name of the contact you want to find, and then call isExistthe function to determine whether the contact exists. If it exists, output the name, gender, age, phone number and address of the contact; if it does not exist, it will prompt that there is no such person.

  • modifyPersonThe function is used to modify the contact information. First enter the name of the contact to be modified, and then call isExistthe function to determine whether the contact exists. If it exists, input the modified contact information one by one, and update the information of the corresponding contact in the address book; if it does not exist, it will prompt that there is no such person found.

  • cleanPersonThe function is used to clear all contacts in the address book, that is, to set the number of contacts in the address book to 0.

Finally, in the function, an object mainis created and its number of contacts is initialized to 0. Through an infinite loop, display the menu interface and call the corresponding function according to the user's choice until the user chooses to exit the address book.Addressbooksabs

Guess you like

Origin blog.csdn.net/dsafefvf/article/details/131483965