C++学习笔记-day05
通讯录管理系统
功能简介:能够通过菜单界面添加联系人、显示联系人、删除联系人、查找联系人、修改联系人、清空联系人。
#include<iostream> using namespace std; #define MAX 1000 //联系人结构体 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; //联系人个数 }; //1、添加联系人 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; while (true) { //如果输入的是1或者2,可以退出循环,如果是别的,重新输入 cin >> sex; if (sex == 1 || sex == 2) { abs->personArray[abs->m_size].m_Sex = sex; break; } cout << "输入有误,请重新输入" <<endl; } //年龄 cout << "请输入年龄:" << endl; int age = 0; while (true) { //如果输入的是1或者2,可以退出循环,如果是别的,重新输入 cin >> age; if (age >0 && age <150 ) { abs->personArray[abs->m_size].m_Age = age; break; } cout << "输入有误,请重新输入" << endl; } //电话 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");//清屏的操作 } } //2、显示联系人 void showPerson(Addressbooks* abs) { //判断通讯录中人数是否为零,如果为零,提示记录为空 //如果不为0,显示通讯录的联系人信息 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 (name == abs->personArray[i].m_Name) { return i;//返回这个人在数组中的下标 } } return -1;//没找到,则返回-1 } //3、删除联系人 void deletePerson(Addressbooks* abs) { cout << "请输入你要删除的联系人" << endl; string name; cin >> name; //ret==-1 没查到 ret!=-1 查到了 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"); } //4、查找联系人 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"); //清屏 } //5、修改指定的联系人 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; int sex; cout << "请输入性别:" << endl; cout << "1--男" << endl; cout << "2--女" << endl; while (true) { cin >> sex; if (sex == 1 || sex == 2) { //输入正确,退出循环输入 abs->personArray[ret].m_Sex = sex; break; } cout << "输入有误,请重新输入" << 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_Addr = address; cout << "修改成功!" << endl; } else { //未找到联系人 cout << "查无此人!" << endl; } system("pause"); system("cls"); } //6、清空联系人 void cleanPerson(Addressbooks* abs) { abs->m_size = 0; //将当前记录的联系人数量置为0,做逻辑清空操作 cout << "通讯录已清空" << endl; system("pause"); system("cls"); } //菜单界面 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 main() { //创建通讯录结构体变量 Addressbooks abs; //通讯录初始联系人数量为9 abs.m_size = 0; int select = 0; while (true) { //菜单的调用 showMenu(); cin >> select; switch (select) { case 1: //1、添加联系人 addPerson(&abs); //利用地址传递,可以修饰实参 break; case 2: //2、显示联系人 showPerson(&abs); break; case 3: //3、删除联系人 deletePerson(&abs); break; case 4: //4、查找联系人 findPerson(&abs); break; case 5: //5、修改联系人 modifyPerson(&abs); break; case 6: // 6、清空联系人 int a; cout << "请确认是否真的清空所有联系人" << endl; cout << "1-是"<<endl; cout << "2-否"<<endl; cin >> a; if (a == 1) { cleanPerson(&abs); } else { system("pause"); system("cls"); } break; case 0: //0、退出通讯录 cout << "欢迎下次使用" << endl; system("pause"); return 0; break; default: break; } } system("pause"); return 0; }
作者:lq0710
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!