include<iostream>#include<string>using namespace std;#define max 1000//封装一个void showmenu()//在main函数中调用封装好的函数。//设计联系人结构体struct person{ //姓名 string m_Name; //性别 int m_Sex; //年龄 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) { cin>>sex; if(sex==1||sex==2) { abs->personarray[abs->m_Size].m_Sex=sex; break; } cout<<"输入有误,请重新输入。"<<endl; } //年龄 int age=0; while(true) { cout<<"请输入年龄:"<<endl; cin>>age; if(age>0 && age<150) { abs->personarray[abs->m_Size].m_Age=age; break; } else { 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");//清屏操作 }};//显示所有联系人void showperson(addressbooks * abs){ //判断通讯录中人数是否为0,如果为0,提示记录为空 //如果不为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//参数1 通讯录 参数2 对比姓名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 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; //初始化通讯录中当前人员个数 abs.m_Size=0; int select=0;//创建用户选择的变量 while(true) { //菜单调用 showmenu(); cin>>select; switch(select) { case 1://添加联系人 addperson(&abs);//利用地址传递,可以修改实参。 break; case 2://显示联系人 showperson(&abs); break; case 3://删除联系人 { cout<<"请输入删除联系人的姓名"<<endl; string name; cin>>name; if(isexist(&abs,name)==-1) { cout<<"查无此人"<<endl; } else { cout<<"找到此人"<<endl; } } break;//break上面是一大段代码,要括起来。否则就会报错。 case 4://查找联系人 break; case 5://修改联系人 break; case 6://清空联系人 break; case 0://退出联系人 cout<<"欢迎下次使用"<<endl; system("pause"); return 0; break; default:// break; } }system("pause");return 0;}
网友评论