c++实现通讯录

部分地方未做限制

#include <iostream>
using namespace std;
#include <string>
#define MAX 1000;
void ShowMenu() {
	cout << "************************" << endl;
	cout << "******1,添加联系人******" << endl;
	cout << "******2,显示联系人******" << endl;
	cout << "******3,删除联系人******" << endl;
	cout << "******4,查找联系人******" << endl;
	cout << "******5,修改联系人******" << endl;
	cout << "******6,清空联系人******" << endl;
	cout << "******7,退出************" << endl;
	cout << "************************" << endl;
}
struct Person {
	string m_Name;
	int m_Sex;
	int m_age;
	string m_Phone;
	string m_Addre;
};
struct AddressBooks {
	struct Person PersonArray[1000];
	int m_Size;
};
void addPerson(AddressBooks* abs) {
	if (abs->m_Size == 1000) {
		cout << "通讯录已经满了" << endl;
	}
	else {
		string name;
		cout << "请输入姓名:" << endl;
		while (true) {
			cin >> name;
			if (name.length() <= 8){
				abs->PersonArray[abs->m_Size].m_Name = name;
			break;
			}
			else {
				cout << "名字太长了只可以是四个字符" << endl;

			}
		}
		int sex;
		cout << "请输入性别1男2女:" << endl;
		
		while (true) {
			cin >> sex;
			if (sex == 1 || sex == 2) {
				abs->PersonArray[abs->m_Size].m_Sex = sex;
				break;
			}
			else {
				cout << "输入错误只能是1或者2" << endl;
			}
		}
		
		int age;
		cout << "请输入年龄:" << endl;
		cin >> age;
		abs->PersonArray[abs->m_Size].m_age = age;
		string phone;
		cout << "请输入电话:" << endl;
		cin >> phone;
		abs->PersonArray[abs->m_Size].m_Phone = phone;
		string address;
		cout << "请输入地址:" << endl;
		cin >> address;
		abs->PersonArray[abs->m_Size].m_Addre = address;
		abs->m_Size++;
		cout << "添加完成";
		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_age  << "\t";
			cout << "性别:" << (abs->PersonArray[i].m_Sex == 1?"男":"女") << "\t";
			cout << "联系方式:" << abs->PersonArray[i].m_Phone << "\t";
			cout << "地址:" << abs->PersonArray[i].m_Addre << endl;
		}
	}
	system("pause");
	system("cls");

}
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 == 0) {
		for (int i = 0; i < abs->m_Size; i++) {
			if (name == abs->PersonArray[i].m_Name) {
				for (int j = i; j < abs->m_Size; j++) {
					abs->PersonArray[j] = abs->PersonArray[j + 1];
				}
				
			}
		}
		abs->m_Size--;
		system("pause");
		system("cls");
	}
	else {
		cout << "没有这个人";
	}

}
void FindPerson(AddressBooks* abs) {
	cout << "输入查找的名字" << endl;
	string name;
	cin >> name;
	int ret = isExist(abs, name);
	if (ret == 0) {
		for (int i = 0; i < abs->m_Size; i++) {
			if (abs->PersonArray[i].m_Name == name) {
				cout << "名字:"<< abs->PersonArray[i].m_Name<< "年龄:" << abs->PersonArray[i].m_age<< "电话:" << abs->PersonArray[i].m_Phone << "性别:"<< abs->PersonArray[i].m_Sex << "地址:" << abs->PersonArray[i].m_Addre<< 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 name2;
				cout << "请输入新姓名:" << endl;
				while (true) {
					cin >> name2;
					if (name2.length() <= 8) {
						abs->PersonArray[ret].m_Name = name2;
						break;
					}
					else {
						cout << "名字太长了只可以是四个字符" << endl;

					}
				}
				int sex;
				cout << "请输入新性别1男2女:" << endl;

				while (true) {
					cin >> sex;
					if (sex == 1 || sex == 2) {
						abs->PersonArray[ret].m_Sex = sex;
						break;
					}
					else {
						cout << "输入错误只能是1或者2" << endl;
					}
				}

				int age;
				cout << "请输入新年龄:" << endl;
				cin >> age;
				abs->PersonArray[ret].m_age = age;
				string phone;
				cout << "请输入新电话:" << endl;
				cin >> phone;
				abs->PersonArray[ret].m_Phone = phone;
				string address;
				cout << "请输入新地址:" << endl;
				cin >> address;
				abs->PersonArray[ret].m_Addre = address;
				cout << "修改完成";
				system("pause");
				system("cls");
			
				
			
		
	}
	else {
		cout << "没有这个名字" << endl;
		system("pause");
		system("cls");
	}
}
	
void ClearPerson(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();
		cout << "你的选择:";
		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 7://退出联系人
			cout << "欢迎下次使用" << endl;
			system("pause");
			return 0;
			break;




		default:
			break;
		}

	}
	system("pause");
	return 0;
}
posted @ 2022-06-02 16:39  recvfrom  阅读(72)  评论(0)    收藏  举报