界面展示:

1,菜单界面

2,添加联系人

选择按钮1。

 3,显示联系人

选择按钮2,会显示当前通讯录里面的所有联系人信息 

#include<iostream>
using namespace std;
#include<string>

//设置最大容量
#define MAXSIZE 300


//联系人结构体
struct person {
	string name;
	string gender;
	int age;
	string tlenumber;
	string address;

};
通讯录结构体
struct comsys {
	struct person p_arry[MAXSIZE];
	int length;

};



//主函数
int main(void) {
	//初始化结构体数组
	comsys com;
	com.length = 0;


	//函数声明
	void showMenu();
	void  addPerson(comsys * p);
	void showPerson(comsys * p);
	void printInfoN(comsys * p, int n);
	void printInfoI(comsys * p, int i);
	int locatePerson(comsys * p, string name, string number);
	void serchPerson(comsys * p);
	void deletePerson(comsys * p);
	void modifyPerson(comsys * p);
	void clearPerson(comsys * p);



	//函数调用
	while (true) {
		showMenu();
		int select = 0;
		cin >> select;
		switch (select)
		{
		case 1://添加
			addPerson(&com);
			system("pause");
			system("cls");
			break;
		case 2://显示
			showPerson(&com);
			system("pause");
			system("cls");
			break;
		case 3://删除
			deletePerson(&com);


			system("pause");
			system("cls");
			break;
		case 4://查找
			serchPerson(&com);
				


			system("pause");
			system("cls");
			break;
		case 5://修改
			modifyPerson(&com);



			system("pause");
			system("cls");
			break;
		case 6://清空
			clearPerson(&com);



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

		case 0://退出
			cout << "欢迎使用,再见!" << endl;
			return 0;
			break;
		default:
			break;
		}
	}

	system("pause");
	return 0;
}

//菜单显示函数
void showMenu() {
	cout << "***********************" << endl;
	cout << "*        通讯录       *    " << endl;
	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(comsys *p) {
	string name;
	string gender;
	int age;
	string telnumber;
	string address;
	cout << "添加姓名:" << endl;
	cin >> name;
	p->p_arry[p->length].name = name;
	cout << "添加性别:" << endl;
	cin >> gender;
	p->p_arry[p->length].gender = gender;
	cout << "添加年龄:" << endl;
	cin >> age;
	p->p_arry[p->length].age = age;
	cout << "添加号码:" << endl;
	cin >> telnumber;
	p->p_arry[p->length].tlenumber = telnumber;
		cout << "添加地址:" << endl;
		cin >> address;
		p->p_arry[p->length].address = address;
		p->length++;
		cout << "添加成功!" << endl;


}

//显示联系人
void showPerson(comsys* p) {
	void printInfoN(comsys * p, int n);
	if (p->length == 0)
		cout << "当前没有联系人,请添加(选择1):" << endl;
	else
	{
		printInfoN(p, p->length);
	}
}

//打印连续n个联系人
void printInfoN(comsys* p, int n) {
	for (int i = 0; i < n; i++) {
		cout << "*****************************************************" << endl;
		cout << "\t\tname:" << p->p_arry[i].name << endl;
		cout << "\t\tgender:" << p->p_arry[i].gender << endl;
		cout << "\t\tage:" << p->p_arry[i].age << endl;
		cout << "\t\ttelnumber:" << p->p_arry[i].tlenumber<< endl;
		cout << "\t\taddress:" << p->p_arry[i].address << endl;
		cout << "*****************************************************" << endl;
	}
	cout << "共计:" << p->length << endl;
}
//打印某个人的信息
void printInfoI(comsys* p, int i) {
	
		cout << "*****************************************************" << endl;
		cout << "\t\tname:" << p->p_arry[i].name << endl;
		cout << "\t\tgender:" << p->p_arry[i].gender << endl;
		cout << "\t\tage:" << p->p_arry[i].age << endl;
		cout << "\t\ttelnumber:" << p->p_arry[i].tlenumber << endl;
		cout << "\t\taddress:" << p->p_arry[i].address << endl;
		cout << "*****************************************************" << endl;
	
}
//查找某个联系人返回通讯录中的位置
int locatePerson(comsys* p,string name,string number) {
	if(p->length==0)
	return -1;
	else {
	
		for (int i = 0; i < p->length; i++)
		
			if ((name == p->p_arry[i].name) && (number == p->p_arry[i].tlenumber))
				return i; 
		return -1;
		
	}
}
//查找联系人
void serchPerson(comsys* p) {
	string name, number;
	int locatePerson(comsys * p, string name, string number);
	void printInfoI(comsys * p, int i);
	if (p->length == 0)
		cout << "当前联系人为空,请添加(选择1)" << endl;
	else
	{
		cout << "请输入要查找的名字:" << endl;
		cin >> name;
		cout << "请输入要查找的号码:" << endl;
		cin >> number;
		int count = locatePerson(p, name, number);
		if (count == -1)
			cout << "无对应联系人,请确认后再输入!" << endl;
		else
			printInfoI(p, count);
	}


}
//删除联系人
void deletePerson(comsys*p) {
	int locatePerson(comsys * p, string name, string number);
	void printInfoI(comsys * p, int i);
	string deletename;
	string deletenumber;
	if (p->length == 0)
		cout << "当前联系人为空,请添加(选择1)" << endl;
	cout << "请输入要删除的名字:" << endl;
	cin >> deletename;
	cout << "请输入要删除的号码:" << endl;
	cin >> deletenumber;
	int count= locatePerson(p, deletename, deletenumber);
	if(count!=-1)
	{
		printInfoI(p, count);
		cout << "确认删除请按1,取消请按2:" << endl;
		int select1 = 0;
		cin >> select1;
		switch (select1)
		{
		case 1:
			for (int i = count; i < p->length; i++) 
				p->p_arry[i]= p->p_arry[i + 1];
				
			p->length--;
			cout << "删除成功!" << endl;
			break;
		case 2:
			system("pause");
			system("cls");
		default:
			break;
		}
	}
	
}

//修改联系人
void modifyPerson(comsys* p) {
	if (p->length == 0)
		cout << "当前联系人为空,请添加(选择1)" << endl;
	else {
		cout << "输入您要修改的联系人姓名:" << endl;
		string name;
		cin >> name;
		cout << "输入您要修改的联系人电话:" << endl;
		string number;
		cin >> number;
		int count = locatePerson(p, name, number);
		if (count == -1)
			cout << "无对应联系人,请确认后再输入!" << endl;
		else
		{
			printInfoI(p, count);
			cout << "---------------------------"<< endl;
			cout << "---修改选项---" << endl;
			cout << "---(1):姓名---" << endl;
			cout << "---(2):性别---" << endl;
			cout << "---(3):年龄---" << endl;
			cout << "---(4):电话---" << endl;
			cout << "---(5):地址---" << endl;
			cout << "---(0):取消---" << endl;
			cout << "---------------------------";
			int select2;
			string name;
			string gender;
			int age;
			string telnumber;
			string address;
			cin >> select2;
			while (select2) {
				
				switch (select2)
				{
				case 1:
					cout << "您正在修改姓名,请输入:" << endl;
					cin >> name;

					p->p_arry[count].name = name;
					cout << "修改成功!" << endl;
					cout << "请输入对应选项进行操作!" << endl;
					cin >> select2;
					break;
				case 2:
					cout << "您正在修改性别,请输入:" << endl;
					cin >> gender;

					p->p_arry[count].gender = gender;
					cout << "修改成功!" << endl;
					cout << "请输入对应选项进行操作!" << endl;
					cin >> select2;
					break;

				case 3:
					cout << "您正在修改年龄,请输入:" << endl;
					cin >> age;

					p->p_arry[count].age = age;
					cout << "修改成功!" << endl;
					cout << "请输入对应选项进行操作!" << endl;
					cin >> select2;
					break;

				case 4:
					cout << "您正在修改电话,请输入:" << endl;
					cin >> telnumber;

					p->p_arry[count].tlenumber = telnumber;
					cout << "修改成功!" << endl;
					cout << "请输入对应选项进行操作!" << endl;
					cin >> select2;
					break;



				case 5:
					cout << "您正在修改地址,请输入:" << endl;
					cin >> address;

					p->p_arry[count].address = address;
					cout << "修改成功!" << endl;
					cout << "请输入对应选项进行操作!" << endl;
					cin >> select2;
					break;
				case 0:
					system("pause");
					break;

				default:
					break;
				}
			}
		}
	}
}
//清空通讯录
void clearPerson(comsys* p) {
	cout << "你正在清空联系人,请注意!" << endl;
	cout << "确认删除请按1" << endl;
	int selectClear;
	cin >> selectClear;
	if (selectClear == 1)
	{
		p->length = 0;
		cout << "已清空!" << endl;
	
			 
	}


		

}

版权声明:本文为weixin_55644008原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_55644008/article/details/128566567