-
添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
-
显示联系人:显示通讯录中所有联系人信息
-
删除联系人:按照姓名进行删除指定联系人
-
查找联系人:按照姓名查看指定联系人信息
-
修改联系人:按照姓名重新修改指定联系人
-
清空联系人:清空通讯录中所有信息
-
退出通讯录:退出当前使用的通讯录
#include <iostream>
using namespace std;
#include <string>
#include <cstdlib>
#define Max 1000
struct Person{
string name;
int sex;
int age;
string phone;
string addr;
};
struct addressbook{
struct Person personarray[Max];
int number;
};
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;
}
void addPerson(addressbook *b){
if(b->number>=Max){
cout<<"通讯录已满,无法添加"<<endl;
return;
}else{
cout<<"请输入姓名:"<<endl;
cin>>b->personarray[b->number].name;
flag:
cout<<"请输入性别:"<<endl;
cout<<"1-----男"<<endl;
cout<<"2-----女"<<endl;
cin>>b->personarray[b->number].sex;
while((b->personarray[b->number].sex!=1)&&(b->personarray[b->number].sex!=2))
{
cout<<"输入错误,请重新输入:"<<endl;
goto flag;
}
cout<<"请输入年龄:"<<endl;
cin>>b->personarray[b->number].age;
cout<<"请输入电话:"<<endl;
cin>>b->personarray[b->number].phone;
cout<<"请输入地址:"<<endl;
cin>>b->personarray[b->number].addr;
cout<<"添加成功"<<endl;
b->number++;
system("pause");//先暂停再清空屏幕
system("cls");//清空屏幕
}
}
void showPerson(addressbook *s){
if(s->number==0){
cout<<"通讯录为空"<<endl;
}else{
for(int i=0;i<s->number;i++){
cout<<i+1<<":\t";
cout<<"姓名:"<<s->personarray[i].name<<"\t";
cout<<"性别:"<<(s->personarray[i].sex==1?"男":"女")<<"\t";
cout<<"年龄:"<<s->personarray[i].age<<"\t";
cout<<"电话:"<<s->personarray[i].phone<<"\t";
cout<<"地址:"<<s->personarray[i].addr<<endl;
}
}
system("pause");
system("cls");
}
void deletePerson(addressbook *s){
string name;
cout<<"请输入想删除的联系人:"<<endl;
cin>>name;
int ret=-1;
for(int i=0;i<s->number;i++){
if(name==s->personarray[i].name){
ret=i;
//break;
}
}
if(ret==-1){
cout<<"查无此人"<<endl;
}else{
for(int i=ret;i<s->number-1;i++){
s->personarray[i]=s->personarray[i+1];
}
s->number--;
cout<<"删除成功"<<endl;
}
system("pause");
system("cls");
}
int isExist(addressbook *b,string name){
int ret=-1;
for(int i=0;i<b->number;i++){
if(name==b->personarray[i].name){
ret=i;
return i;
break;
}
}
if(ret==-1){
return -1;
}
}
void findPerson(addressbook *b){
string name;
cout<<"请输入您想查找的联系人:"<<endl;
cin>>name;
int i=isExist(b,name);
if(i==-1){
cout<<"查无此人"<<endl;
}else{
cout<<"姓名:"<<b->personarray[i].name<<"\t";
cout<<"性别:"<<(b->personarray[i].sex==1?"男":"女")<<"\t";
cout<<"年龄:"<<b->personarray[i].age<<"\t";
cout<<"电话:"<<b->personarray[i].phone<<"\t";
cout<<"住址:"<<b->personarray[i].addr<<endl;
}
system("pause");
system("cls");
}
void modifyPerson(addressbook *b){
string name;
cout<<"请输入你想修改的联系人:"<<endl;
cin>>name;
int ret;
for(int i=0;i<b->number;i++){
ret=isExist(b,name);
if(ret!=-1){
break;
}
}
if(ret==-1){
cout<<"查无此人"<<endl;
}else{
cout<<"请修改姓名:"<<endl;
cin>>b->personarray[ret].name;
flag:
cout<<"请输入性别:"<<endl;
cout<<"1-----男"<<endl;
cout<<"2-----女"<<endl;
cin>>b->personarray[ret].sex;
while((b->personarray[ret].sex!=1)&&(b->personarray[ret].sex!=2))
{
cout<<"输入错误,请重新输入:"<<endl;
goto flag;
}
cout<<"请输入年龄:"<<endl;
cin>>b->personarray[ret].age;
cout<<"请输入电话:"<<endl;
cin>>b->personarray[ret].phone;
cout<<"请输入地址:"<<endl;
cin>>b->personarray[ret].addr;
cout<<"修改成功"<<endl;
}
system("pause");
system("cls");
}
void clearPerson(addressbook *b){
int x;
cout<<"确定是否要清空联系人?1--是,2--否"<<endl;
cin>>x;
if(x==1){
b->number=0;
cout<<"通讯录已清空"<<endl;
}else{
cout<<"通讯录未清空"<<endl;
}
system("pause");
system("cls");
}
int main(){
int select;
addressbook book;
book.number=0;
while(true){
showMenu();
cin>>select;
switch(select){
case 1://添加联系人
addPerson(&book);
break;
case 2://显示联系人
showPerson(&book);
break;
case 3://删除联系人
deletePerson(&book);
break;
case 4://查找联系人
findPerson(&book);
break;
case 5://修改联系人
modifyPerson(&book);
break;
case 6://清空联系人
clearPerson(&book);
break;
case 0://退出通讯录
cout<<"您已退出"<<endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}