C++ 通讯录管理系统

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值