#include<iostream>
#include<cstring>
#define SIZE 1005//可以改成自己喜欢的大小
using namespace std;
struct person
{
string name;
int age;
string sex;
string number;
string address;
};
struct addressbook
{
struct person contacts[SIZE];//contacts为联系人
int size=0;
};
//清屏操作
void cls()
{
system("pause");//按任意键继续
system("cls");//清屏操作
}
//菜单
void showmenu()
{
cout<<"******************"<<"\n";
cout<<"***1.添加联系人***"<<"\n";
cout<<"***2.显示联系人***"<<"\n";
cout<<"***3.删除联系人***"<<"\n";
cout<<"***4.查找联系人***"<<"\n";
cout<<"***5.修改联系人***"<<"\n";
cout<<"***6.清空联系人***"<<"\n";
cout<<"***0.退出通讯录***"<<"\n";
cout<<"******************"<<"\n";
}
//添加联系人
void addperson(struct addressbook * personarry)
{
if(personarry->size==SIZE)
{
cout<<"通讯录已满,无法添加!"<<"\n";
return ;
}
cout<<"请输入姓名:";
cin>>personarry->contacts[personarry->size].name;
cout<<"\n";
cout<<"请输入年龄:";
cin>>personarry->contacts[personarry->size].age;
cout<<"\n";
cout<<"请输入性别:";
cin>>personarry->contacts[personarry->size].sex;
cout<<"\n";
cout<<"请输入电话号:";
cin>>personarry->contacts[personarry->size].number;
cout<<"\n";
cout<<"请输入地址:";
cin>>personarry->contacts[personarry->size].address;
cout<<"\n";
personarry->size++;
cout<<"添加成功"<<"\n";
cls();
}
//显示所有联系人
void showperson(struct addressbook *personarry)
{
if(personarry->size==0)
{
cout<<"当前通讯录为空"<<"\n";
return;
}
int len=personarry->size;
for(int i=0;i<len;i++)
{
cout<<personarry->contacts[i].name<<"\t";
cout<<personarry->contacts[i].age<<"\t";
cout<<personarry->contacts[i].sex<<"\t";
cout<<personarry->contacts[i].number<<"\t";
cout<<personarry->contacts[i].address<<"\n";
}
cls();
}
//判断用户是否存在
int checkperson(addressbook *personarry,string name)
{
for(int i=0;i<personarry->size;i++)
{
if(personarry->contacts[i].name==name)
{
return i;
}
}
return -1;
}
//删除用户
void deleteperson(addressbook *personarry,int m)
{
for(int i=m;i<personarry->size-1;i++)
{
personarry->contacts[i]=personarry->contacts[i+1];
}
personarry->size--;
cout<<"删除成功!"<<"\n";
cls();
}
//修改联系人
void modifyperson(addressbook *personarry)
{
cout<<"请输入要修改人姓名:";
string name;
cin>>name;
int m=checkperson(personarry,name);
if(m==-1)cout<<"查无此人";
else
{
cout<<"请输入姓名:";
cin>>personarry->contacts[m].name;
cout<<"\n";
cout<<"请输入年龄:";
cin>>personarry->contacts[m].age;
cout<<"\n";
cout<<"请输入性别:";
cin>>personarry->contacts[m].sex;
cout<<"\n";
cout<<"请输入电话号:";
cin>>personarry->contacts[m].number;
cout<<"\n";
cout<<"请输入地址:";
cin>>personarry->contacts[m].address;
cout<<"\n";
}
cls();
}
//清空联系人
void cleanperson(addressbook * personarry)
{
personarry->size=0;
}
int main()
{
struct addressbook personarry;
while(1)
{
//菜单调用
showmenu();
int select;
cin>>select;
switch(select)
{
case 1:
addperson(&personarry);//添加联系人
break;
case 2:
showperson(&personarry);//显示联系人
break;
case 3:
{
cout<<"输入删除人姓名:";
string name;
cin>>name;
int m=checkperson(&personarry,name);//判断用户是否存在
if(m==-1)
{
cout<<"该用户不存在"<<"\n";
}
else
{
deleteperson(&personarry,m);//删除用户
}
}//当为一大段代码时,封装起来,否则容易产生错误
break;
case 4://查找联系人
{
cout<<"请输入要查找人的姓名:";
string name;
cin>>name;
int m=checkperson(&personarry,name);
if(m==-1)cout<<"查无此人"<<"\n";
else
{
cout<<personarry.contacts[m].name<<"\t";
cout<<personarry.contacts[m].age<<"\t";
cout<<personarry.contacts[m].sex<<"\t";
cout<<personarry.contacts[m].number<<"\t";
cout<<personarry.contacts[m].address<<"\n";
}
cls();
}
break;
case 5://修改联系人
modifyperson(&personarry);
break;
case 6://清空联系人
cleanperson(&personarry);
break;
case 0:
printf("欢迎下次使用\n");
return 0;
default:
break;
}
}
}