通讯录管理系统---C++-创新互联

通讯录管理系统—C++

用C++的部分基础语法写了一个简单的不完善的通讯录管理系统。
我用的是VS2022。

创新互联建站服务项目包括霍邱网站建设、霍邱网站制作、霍邱网页制作以及霍邱网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,霍邱网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到霍邱省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
#includeusing namespace std;
#define MAX 1000



//联系人
struct Person {string m_Name;
	//1--男 2--女
	int m_Sex;
	int m_Age;
	string m_Phone;
	string m_Address;
};

//通讯录
struct Addressbooks {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;
}


//检测联系人是否存在
int isExist(Addressbooks* abs, string phone) {//如果存在,返回其下标;如果不存在,返回-1
	for (int i = 0; i< abs->m_Size; i++) {//如果存在
		if (abs->personArray[i].m_Phone == phone) {	return i;
		}
		//如果不存在
		else {	;
		}
	}
	cout<< "查无此人!"<< endl;
	return -1;
}


//1、添加联系人
void addPerson(Addressbooks* abs) {//判断通讯录是否已满
	if (abs->m_Size == MAX) {cout<< "通讯录已满,不能添加!"<< endl;
		return;
	}
	//添加联系人信息
	else {//姓名
		cout<< "请输入姓名:";
		cin >>abs->personArray[abs->m_Size].m_Name;
		//性别
		while (1) {	cout<< "1--男 2--女"<< endl;
			cout<< "请输入性别:";
			int sex = 0;
			cin >>sex;
			//判断性别输入是否正确
			if (sex == 1 || sex == 2) {		abs->personArray[abs->m_Size].m_Sex = sex;
				break;
			}
			else {		cout<< "输入错误,请重新输入!";
			}
		}
		//年龄
		while (1) {	cout<< "请输入年龄:";
			int age = 0;
			cin >>age;
			if (age< 0) {		cout<< "输入错误,请重新输入!"<< endl;
			}
			else {		abs->personArray[abs->m_Size].m_Age = age;
				break;
			}
		}
		//号码
		cout<< "请输入号码:";
		cin >>abs->personArray[abs->m_Size].m_Phone;
		//住址
		cout<< "请输入住址:";
		cin >>abs->personArray[abs->m_Size].m_Address;

		cout<< "添加成功!"<< endl;
		//更新通讯录人数
		abs->m_Size++;
	}
}


//2、显示联系人
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";
			//性别
			if (abs->personArray[i].m_Sex == 1) {		cout<< "性别:"<< "男"<< "\t";
			}
			else {		cout<< "性别:"<< "女"<< "\t";
			}
			//年龄
			cout<< "年龄:"<< abs->personArray[i].m_Age<< "\t";
			//号码
			cout<< "号码:"<< abs->personArray[i].m_Phone<< "\t";
			//住址
			cout<< "住址:"<< abs->personArray[i].m_Address<< endl;
		}
	}
}


//3、删除联系人
void deletePerson(Addressbooks* abs, int person) {//逻辑删除
	for (int i = person; i< abs->m_Size - 1; i++) {//注意数组的越界访问
		abs->personArray[i] = abs->personArray[i + 1];
	}
	cout<< "删除成功!"<< endl;
	//更新通讯录人数
	abs->m_Size--;
}


//4、查找联系人
void findPerson(Addressbooks* abs) {//检测联系人是否存在
	cout<< "请输入要查找联系人的手机号码:";
	string phone;
	cin >>phone;
	int person = isExist(abs, phone);
	//所找联系人存在
	if (person != -1) {cout<< "姓名:"<< abs->personArray[person].m_Name<< "\t";
		cout<< "性别:"<< (abs->personArray[person].m_Sex == 1 ? "男" : "女")<< "\t";//三目运算符
		cout<< "年龄:"<< abs->personArray[person].m_Age<< "\t";
		cout<< "号码:"<< abs->personArray[person].m_Phone<< "\t";
		cout<< "住址:"<< abs->personArray[person].m_Address<< endl;
	}
	else {;
	}
}


//5、修改联系人
void modifyPerson(Addressbooks* abs) {cout<< "请输入要修改联系人的手机号码:";
	string phone;
	cin >>phone;
	int person = isExist(abs, phone);
	if (person != -1) {//找到了
		//修改
		//判断通讯录是否已满
		if (abs->m_Size == MAX) {	cout<< "通讯录已满,不能添加!"<< endl;
			return;
		}
		//修改联系人信息
		else {	cout<< "1--修改该联系人的全部信息  2--修改该联系人的局部信息"<< endl;
			cout<< "请输入您的选择:";
			int select;
			cin >>select;
			//1--修改该联系人的全部信息
			if (select == 1) {		cout<< "以下是(1--修改该联系人的全部信息)部分";
				cout<< endl;
				cout<< "输入要修改的信息!"<< endl;
				//姓名
				cout<< "请输入姓名:";
				cin >>abs->personArray[person].m_Name;
				//性别
				while (1) {cout<< "1--男 2--女"<< endl;
					cout<< "请输入性别:";
					int sex;
					cin >>sex;
					//判断性别输入是否正确
					if (sex == 1 || sex == 2) {abs->personArray[person].m_Sex = sex;
						break;
					}
					else {cout<< "输入错误!";
					}
				}
				//年龄
				while (1) {cout<< "请输入年龄:";
					if (abs->personArray[person].m_Age< 0) {cout<< "输入错误,请重新输入!"<< endl;
					}
					else {cin >>abs->personArray[person].m_Age;
						break;
					}
				}
				//号码
				cout<< "请输入号码:";
				cin >>abs->personArray[person].m_Phone;
				//住址
				cout<< "请输入住址:";
				cin >>abs->personArray[person].m_Address;

				cout<< "修改成功!"<< endl;
			}
			//2--修改该联系人的部分信息
			else {		//联系人所拥有的信息的序号
				//1--姓名  2--性别  3--年龄  4--号码  5--住址
				cout<< "以下是(2--修改该联系人的局部信息)部分";
				cout<< endl;
				cout<< "1--姓名  2--性别  3--年龄  4--号码  5--住址"<< endl;
				cout<< "请输入您的选择:";
				int choice;
				cin >>choice;
				while (1) {switch (choice) {case 1: {//姓名
						cout<< "请输入姓名:";
						cin >>abs->personArray[person].m_Name;
						//判断是否继续修改
						cout<< "是否继续修改"<< endl;
						//1--停止修改  2--继续修改
						cout<< "1--停止修改  2--继续修改"<< endl;
						cout<< "请输入您的选择:";
						int option;
						cin >>option;
						if (option ==1) {	//停止修改
							break;
						}
						else {	//继续修改
							;
						}
					}
					case 2: {//性别
						while (1) {	cout<< "1--男 2--女"<< endl;
							cout<< "请输入性别:";
							int sex;
							cin >>sex;
							//判断性别输入是否正确
							if (sex == 1 || sex == 2) {		abs->personArray[person].m_Sex = sex;
								break;
							}
							else {		cout<< "输入错误!";
							}
						}
						//判断是否继续修改
						cout<< "是否继续修改"<< endl;
						//1--停止修改  2--继续修改
						cout<< "1--停止修改  2--继续修改"<< endl;
						cout<< "请输入您的选择:";
						int option;
						cin >>option;
						if (option == 1) {	//停止修改
							break;
						}
						else {	//继续修改
							;
						}
					}
					case 3: {//年龄
						while (1) {	cout<< "请输入年龄:";
							if (abs->personArray[person].m_Age< 0) {		cout<< "输入错误,请重新输入!"<< endl;
							}
							else {		cin >>abs->personArray[person].m_Age;
								break;
							}
						}
						//判断是否继续修改
						cout<< "是否继续修改"<< endl;
						//1--停止修改  2--继续修改
						cout<< "1--停止修改  2--继续修改"<< endl;
						cout<< "请输入您的选择:";
						int option;
						cin >>option;
						if (option == 1) {	//停止修改
							break;
						}
						else {	//继续修改
							;
						}
					}
					case 4: {//号码
						cout<< "请输入号码:";
						cin >>abs->personArray[person].m_Phone;
						//判断是否继续修改
						cout<< "是否继续修改"<< endl;
						//1--停止修改  2--继续修改
						cout<< "1--停止修改  2--继续修改"<< endl;
						cout<< "请输入您的选择:";
						int option;
						cin >>option;
						if (option == 1) {	//停止修改
							break;
						}
						else {	//继续修改
							;
						}
					}
					case 5: {//住址
						cout<< "请输入住址:";
						cin >>abs->personArray[person].m_Address;
						//判断是否继续修改
						cout<< "是否继续修改"<< endl;
						//1--停止修改  2--继续修改
						cout<< "1--停止修改  2--继续修改"<< endl;
						cout<< "请输入您的选择:";
						int option;
						cin >>option;
						if (option == 1) {	//停止修改
							break;
						}
						else {	//继续修改
							;
						}
					}
					default:
						break;
					}
					cout<< "修改成功"<< endl;
					break;
				}
			}
		}
	}
	else {;
	}
}


//6、清空联系人
void clearPerson(Addressbooks* abs) {//逻辑清空
	abs->m_Size = 0;
	cout<< "清理成功!"<< endl;
}

int main() {//创建通讯录变量
	Addressbooks abs;
	abs.m_Size = 0;

	while (1) {//显示菜单
		showMenu();

		int select = 0;
		cin >>select;
		switch (select)
		{case 1://1、添加联系人
			addPerson(&abs);
			break;
		case 2:	//2、显示联系人
			showPerson(&abs);
			break;
		case 3: {//3、删除联系人
			//检测联系人是否存在
			string phone;
			cout<< "请输入要删除联系人的手机号:";
			cin >>phone;
			int person = isExist(&abs, phone);
			//删除联系人
			deletePerson(&abs, person);
			break;
		}
		case 4://4、查找联系人
			findPerson(&abs);
			break;
		case 5://5、修改联系人
			modifyPerson(&abs);
			break;
		case 6://6、清空联系人
			clearPerson(&abs);
			break;
		case 0://0、退出通讯录
			cout<< "退出通讯录,欢迎下次使用!"<< endl;
			return 0;
		default:
			break;
		}
		system("pause");
		system("cls");
	}
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:通讯录管理系统---C++-创新互联
文章分享:http://scyanting.com/article/ceeghe.html