第一个阶段完成✅
通讯录管理系统代码
#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<<"***** 0、退出通讯录 *****"<<endl; cout<<"**************************"<<endl; } //设计联系人结构体 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; }; //添加联系人功能 void addPerson(Addressbooks * abs) { //判断通讯录是否已满,满了就不再添加人 if(abs->m_Size == MAX) { cout<<"通讯录已满,无法添加!"<<endl; return; } else { //添加具体联系人 //1、添加姓名 string name; cout<<"请输入联系人姓名: "<<endl; cin >>name; abs->personArray[abs->m_Size].m_name = name; //2、添加性别 int sex = 0; cout<<"请输入联系人性别:"<<endl; cout<<"1 --- 男。2 --- 女"<<endl; while(true) { cin >>sex; if(sex == 1 || sex == 2) { abs->personArray[abs->m_Size].m_sex = sex; break; } cout<<"输入有误,请重新从输入"<<endl; } //3、添加年龄 int age; cout<<"请输入联系人年龄;"<<endl; while(true) { cin >> age; if(age > 0 && age < 150) { abs->personArray[abs->m_Size].m_age = age; break; } cout<<"输入有误,请重新输入"<<endl; } //4、添加联系人电话号码 string num; cout<<"请输入联系人电话号码:"<<endl; cin >> num; abs->personArray[abs->m_Size].m_phone = num; //5、添加联系人家庭住址 string Addr; cout<<"请输入联系人家庭住址:"<<endl; cin >> Addr; abs->personArray[abs->m_Size].m_Addr = Addr; //更新通讯录人数 abs->m_Size++; cout<<"添加成功!"<<endl; system("clear all"); } } //创建显示联系人函数 void showperson(Addressbooks *abs) { //判断通讯录目录是否为空,如果是,记录为空,如果不是,显示通讯录 if(abs->m_Size == 0) { cout<<"记录为空!"<<endl; } else { for(int i = 0;i < abs->m_Size;i++) { cout<<"\t姓名: "<<abs->personArray[i].m_name<<"\t"<<"性别: "<<(abs->personArray[i].m_sex == 1 ? "男" : "女") <<"\t"<<"年龄: "<<abs->personArray[i].m_age<<"\t"<<"电话号码: "<<abs->personArray[i].m_phone <<"\t"<<"家庭住址: "<<abs->personArray[i].m_Addr<<endl; } } system("clear all"); } //删除联系人功能函数 //按照姓名查找指定联系人 //创建查找联系人函数,找到返回联系人编号,未找到返回-1 int isExit(Addressbooks * abs,string name) { for(int i = 0;i < abs->m_Size;i++) { //寻找用户输入的姓名是否存在通讯录 if(abs->personArray[i].m_name == name) { return i;//找到制定联系人,返回联系人编号 } } return -1;//未找到联系人,返回-1 } //创建删除联系人函数 void deletePerson(Addressbooks * abs) { string name; cout<<"请输入要删除的联系人姓名: "<<endl; cin >>name; int ret = isExit(abs,name); if(ret != -1)//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; } } //创建查找联系人函数 void findperson(Addressbooks * abs) { cout<<"请输入要查找的联系人"<<endl; string name; cin >>name; int ret = isExit(abs,name); if(ret != -1) { cout<<"姓名: "<<abs->personArray[ret].m_name<<"\t"; cout<<"性别: "<<(abs->personArray[ret].m_sex == 1 ? "男" : "女") <<"\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; } } //创建修改联系人函数 void modifyperson(Addressbooks * abs) { cout<<"请输入要修改的联系人" <<endl; string name; cin>>name; int ret = isExit(abs,name); if(ret != -1) { //修改姓名 string name; cout<<"请输入姓名"<<endl; cin>>name; abs->personArray[ret].m_name = name; //修改性别 cout<<"请输入性别"<<endl; cout<<"1 --- 男 2 --- 女"<<endl; int sex = 0; while(true) { cin>>sex; if(sex == 1 || sex == 2) { abs->personArray[ret].m_sex = sex; break; } cout<<"输入有误,请重新输入"; } //修改年龄 cout<<"请输入年龄"<<endl; int age = 0; cin>>age; abs->personArray[ret].m_age = age; //修改联系电话 cout<<"请输入联系电话"<<endl; string phone = " "; cin >>phone; abs->personArray[ret].m_phone = phone; //修改家庭住址 cout<<"请输入家庭住址"<<endl; string address = " "; cin>>address; abs->personArray[ret].m_Addr = address; cout<<"修改成功"<<endl; } else { cout<<"查无此人"<<endl; } } //创建清空联系人函数 void cleanperson(Addressbooks * abs) { abs->m_Size = 0; cout<<"通讯录已清空"<<endl; } int main() { //创建通讯录结构体变量 Addressbooks abs; //初始化通讯录数据 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、清空联系人 cleanperson(&abs); break; case 0://0、退出通讯录 cout<<"欢迎下次使用!"<<endl; return 0; break; default: break; } } return 0; }