#include<iostream>
using namespace std;
#include<string>
#define max 1000
struct person{ //联系人结构体
string name;
int sex;
int age;
string phone;
string add;
};
struct addressbooks{ //通讯录结构体
person person[max];
int size;
};
void showmenu(){ //菜单
cout<<"1、添加联系人"<<endl<<
"2、显示联系人"<<endl<<
"3、删除联系人"<<endl<<
"4、查找联系人"<<endl<<
"5、修改联系人"<<endl<<
"6、清空联系人"<<endl<<
"0、退出通讯录"<<endl;
}
void addperson(addressbooks *abs){ //添加联系人函数
if(abs->size>max){
cout<<"通讯录已满,无法添加"<<endl;
return ;
}
cout<<"请输入姓名:"<<endl;
string name;
cin>>name;
abs->person[abs->size].name=name;
cout<<"请输入性别:"<<endl
<<"1--女"<<endl<<"2--男"<<endl;
int sex=0;
while(sex!=1&&sex!=2){
cin>>sex;
if(sex!=1&&sex!=2){
cout<<"输入错误,请重新输入:"<<endl;
}else {
abs->person[abs->size].sex=sex;
} }
cout<<"请输入年龄:"<<endl;
int age;
cin>>age;
abs->person[abs->size].age=age;
cout<<"请输入电话:"<<endl;
string phone;
cin>>phone;
abs->person[abs->size].phone=phone;
cout<<"请输入地址:"<< endl;
string add;
cin>>add;
abs->person[abs->size].add=add;
abs->size++;
cout<<"添加成功!"<<endl;
system("pause");
system("cls");
}
int isexist(addressbooks *abs,string name){ //检测联系人是否存在
for(int i=0;i<abs->size;i++)
if(abs->person[i].name==name)return i;
return -1;
}
void showperson(addressbooks *abs){ //显示联系人
if(abs->size==0){
cout<<"当前联系人为空。"<<endl;
}else{
for(int i=0;i<abs->size;i++){
cout<<"姓名:"<<abs->person[i].name<<"\t性别:"<<(abs->person[i].sex==1?"女":"男")<<"\t年龄:"<<abs->person[i].age
<<"\t电话:"<<abs->person[i].phone<<"\t地址:"<<abs->person[i].add<<endl;
}}
system("pause");
system("cls");
}
void deleteperson(addressbooks *abs){ //删除联系人
cout<<"请输入要删除联系人姓名"<<endl;
string name; cin>>name;
int ret; ret=isexist(abs,name);
if(ret==-1) cout<<"查无此人"<<endl;
else {
for(int i=ret;i<abs->size-1;i++){
abs->person[i]=abs->person[i+1];
}cout<<"删除完成!"<<endl;
abs->size--;
}system("pause");
system("cls");
}
void findperson(addressbooks *abs){ //查找联系人
cout<<"请输入要查找联系人姓名"<<endl;
string name; cin>>name;
int i; i=isexist(abs,name);
if(i==-1) cout<<"查无此人"<<endl;
else {
cout<<"姓名:"<<abs->person[i].name<<"\t性别:"<<(abs->person[i].sex==1?"女":"男")<<"\t年龄:"<<abs->person[i].age
<<"\t电话:"<<abs->person[i].phone<<"\t地址:"<<abs->person[i].add<<endl;
}system("pause");
system("cls");
}
void modifyperson(addressbooks *abs){ //修改联系人
cout<<"请输入你要修改的联系人的姓名:"<<endl;
string name;
cin>>name;
int ret;ret=isexist(abs,name);
if(ret==-1)cout<<"啊偶!查无此人"<<endl;
else {
cout<<"请输入姓名:"<<endl;
string name;
cin>>name;
abs->person[ret].name=name;
cout<<"请输入性别:"<<endl
<<"1--女"<<endl<<"2--男"<<endl;
int sex=0;
while(sex!=1&&sex!=2){
cin>>sex;
if(sex!=1&&sex!=2){
cout<<"输入错误,请重新输入:"<<endl;
}else {
abs->person[ret].sex=sex;
} }
cout<<"请输入年龄:"<<endl;
int age;
cin>>age;
abs->person[ret].age=age;
cout<<"请输入电话:"<<endl;
string phone;
cin>>phone;
abs->person[ret].phone=phone;
cout<<"请输入地址:"<< endl;
string add;
cin>>add;
abs->person[ret].add=add;
cout<<"修改成功"<<endl;}
system("pause");
system("cls");
}
void cleanperson(addressbooks *abs){ //清空通讯录
abs->size=0;
cout<<"恭喜!通讯录已清空。"<<endl;
system("pause");
system("cls");
}
int main(){
addressbooks abs;
abs.size=0;
while(1){
int select=0;
showmenu();
cin>>select;
switch(select){
case 1 : //添加联系人
addperson(&abs);
break;
case 2 : //显示联系人
showperson(&abs);
break;
case 3 : //删除联系人
{
deleteperson(&abs);
break;}
case 4 : //查找联系人
findperson(&abs);
break;
case 5 : //修改联系人
modifyperson(&abs);
break;
case 6 : //清空联系人
cleanperson(&abs);
break;
case 0 :
cout<<"欢迎下次使用!";
return 0;
default :
break;
}
}
system("pause");
return 0;
}
C++ 通讯录管理系统
于 2025-02-24 22:46:27 首次发布