0
点赞
收藏
分享

微信扫一扫

通讯录管理系统

時小白 2022-01-28 阅读 43
#include <iostream>
#include <string>
using namespace std;

struct Person {
	string name;
	int gender;
	int age;
	string phone;
	string addr;
};

#define MAX 1000
struct Addressbooks {
	struct Person personArray[MAX];
	int 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(struct Addressbooks *abs) {
	//1.姓名
	cout << "请输入姓名:";
	string name;
	cin >> name;
	abs->personArray[abs->size].name = name;
	//2.性别
	cout << "请输入性别(1-男 2-女):";
	int gender;
	cin >> gender;
	while (true) {
		if (gender == 1 || gender == 2) {
			abs->personArray[abs->size].gender = gender;
			break;
		}
		else {
			cout << "输入有误" << endl;
		}
	}
	//3.年龄
	cout << "请输入年龄:";
	int age;
	cin >> age;
	abs->personArray[abs->size].age = age;
	//4.联系电话
	cout << "请输入电话:";
	string phone;
	cin >> phone;
	abs->personArray[abs->size].phone = phone;
	//5.地址
	cout << "请输入住址:";
	string addr;
	cin >> addr;
	abs->personArray[abs->size].addr = addr;

	cout << "添加成功" << endl;
	abs->size++;
	system("pause");
	system("cls");
}

//展示通讯录
void showPerson(struct Addressbooks *abs) {
	if (abs->size == 0) {
		cout << "通讯录为空" << endl;
	}
	else {
		for (int i = 0; i < abs->size; i++) {
			cout << "姓名:" << abs->personArray[i].name << "    ";
			cout << "性别:" << (abs->personArray[i].gender == 1 ? "男" : "女") << "    ";
			cout << "年龄:" << abs->personArray[i].age << "    ";
			cout << "联系电话:" << abs->personArray[i].phone << "    ";
			cout << "住址:" << abs->personArray[i].addr << endl;
		}
	}
	system("pause");
	system("cls");
}

//判断联系人是否存在
int isExist(struct Addressbooks *abs,string name) {
	for (int i = 0; i < abs->size; i++) {
		if (abs->personArray[i].name == name) {
			return i;
		}
	}
	return -1;
}

//删除联系人
void deletePerson(struct Addressbooks *abs){
	cout << "请输入要删除的联系人:";
	string name;
	cin >> name;
	int result = isExist(abs, name);
	if (result == -1) {
		cout << "此人不存在" << endl;
	}
	else {
		for (int i = result; i < abs->size; i++) {
			abs->personArray[i] = abs->personArray[i + 1];
		}
		abs->size--;
		cout << "删除成功!" << endl;
	}
	system("pause");
	system("cls");
}

//查找联系人
void findPerson(struct Addressbooks* abs) {
	cout << "请输入联系人姓名:";
	string name;
	cin >> name;
	int result = isExist(abs, name);
	if (result == -1) {
		cout << "查无此人" << endl;
	}
	else {
		cout << "姓名:" << abs->personArray[result].name << "    ";
		cout << "性别:" << (abs->personArray[result].gender == 1 ? "男" : "女") << "    ";
		cout << "年龄:" << abs->personArray[result].age << "    ";
		cout << "联系电话:" << abs->personArray[result].phone << "    ";
		cout << "住址:" << abs->personArray[result].addr << endl;
	}
	system("pause");
	system("cls");
}

//修改联系人
void modifyPerson(struct Addressbooks* abs) {
	cout << "请输入联系人姓名:";
	string name;
	cin >> name;
	int result = isExist(abs, name);
	if (result == -1) {
		cout << "查无此人" << endl;
	}
	else {
		cout << "请输入姓名:";
		string name;
		cin >> name;
		abs->personArray[result].name = name;
		//2.性别
		cout << "请输入性别(1-男 2-女):";
		int gender;
		cin >> gender;
		while (true) {
			if (gender == 1 || gender == 2) {
				abs->personArray[result].gender = gender;
				break;
			}
			else {
				cout << "输入有误" << endl;
			}
		}
		//3.年龄
		cout << "请输入年龄:";
		int age;
		cin >> age;
		abs->personArray[result].age = age;
		//4.联系电话
		cout << "请输入电话:";
		string phone;
		cin >> phone;
		abs->personArray[result].phone = phone;
		//5.地址
		cout << "请输入住址:";
		string addr;
		cin >> addr;
		abs->personArray[result].addr = addr;

		cout << "修改成功" << endl;
	}
	system("pause");
	system("cls");
}

//清空通讯录
void clearPerson(struct Addressbooks* abs) {
	abs->size = 0;
	cout << "通讯录已被清空" << endl;
	system("pause");
	system("cls");
}

int main() {
	struct Addressbooks abs;
	abs.size = 0;

	while (true) {
		showMenu();
		int select = 0;
		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:
			clearPerson(&abs);
			break;
		case 0:
			cout << "欢迎下次使用" << endl;
			system("pause");
			return 0;
		default:
			break;
		}
	}


	system("pause");
	return 0;
}
举报

相关推荐

0 条评论