//通讯录管理系统C++
#include <iostream>
#include <string>
using namespace std;
#define MAX 100
void Menu(void)
{
cout<<"********通讯录管理系统************"<<endl;
cout<<"********1、添加通讯录信息*********"<<endl;
cout<<"********2、显示成员信息***********"<<endl;
cout<<"********3、删除成员信息***********"<<endl;
cout<<"********4、查找成员信息***********"<<endl;
cout<<"********5、修改成员信息***********"<<endl;
cout<<"********6、清空通讯录*************"<<endl;
cout<<"********0、退出通讯录系统*********"<<endl;
}
//通讯录成员信息结构
struct people
{
string name;
int sex;
string phone;
};
//通讯录结构体
struct addressbook
{
struct people Book[MAX];
int n_size;//当前通讯录的成员数量
};
typedef struct addressbook* AddressBook;
//1、添加通讯录成员信息
void AddressAdd(AddressBook S)
{
//首先判断是否满
if(S->n_size==MAX)
{
cout<<"通讯录已满,添加失败"<<endl;
return;
}
else//添加,并将n_size+1
{
//姓名
cout<<"请输入姓名:"<<endl;
string name;
cin>>name;
S->Book[S->n_size].name=name;
//性别
cout<<"请输入性别---1:男---0:女"<<endl;
int sex;
cin>>sex;
S->Book[S->n_size].sex=sex;
//电话号码
cout<<"请输入号码:"<<endl;
string phone;
cin>>phone;
S->Book[S->n_size].phone=phone;
}
cout<<"添加成功"<<endl;
S->n_size++;
return;
}
//2、显示通讯录
void addressshow(AddressBook S,int i)
{
cout<<"姓名:"<<S->Book[i].name<<"\t";
cout<<"性别:"<<(S->Book[i].sex==1?"男":"女")<<"\t"<<"\t";
cout<<"号码:"<<S->Book[i].phone<<endl;
}
void AddressShow(AddressBook S)
{
int i=0;
//判断通讯录是否为空
if(S->n_size==0)
{
cout<<"通讯录空"<<endl;
return;
}
else
{
for(i=0;i<S->n_size;i++)
{
addressshow(S,i);
}
return;
}
}
//查找通讯录成员是否存在
int IsExit(AddressBook S,string name)
{
int i=0;
//判断通讯录是否为空
if(S->n_size==0)return -1;
else
{
for(i=0;i<S->n_size;i++)
{
if(S->Book[i].name==name)
return i;
}
}
return -1;
}
//3、删除成员信息
void Delete(AddressBook S,string name)
{
int ret=0;
int i=0;
//查找是否存在
ret=IsExit(S,name);
if(ret==-1)
cout<<"查无此人"<<endl;
else
{
//i以后依次前移,n_size减一
for(i=ret;i<S->n_size;i++)
{
S->Book[i]=S->Book[i+1];
}
S->n_size--;
}
return;
}
//4、查找成员信息
void AddressFind(AddressBook S,string name)
{
int ret=0;
int i=0;
//查找是否存在
ret=IsExit(S,name);
if(ret==-1)
cout<<"查无此人"<<endl;
else
addressshow(S,ret);
return;
}
//5、修改成员信息
void AddressModify(AddressBook S,string name)
{
int ret=0;
int i=0;
//查找是否存在
ret=IsExit(S,name);
if(ret==-1)
cout<<"查无此人"<<endl;
else
{
//姓名
cout<<"请输入姓名:"<<endl;
string name;
cin>>name;
S->Book[ret].name=name;
//性别
cout<<"请输入性别---1:男---0:女"<<endl;
int sex;
cin>>sex;
S->Book[ret].sex=sex;
//电话号码
cout<<"请输入号码:"<<endl;
string phone;
cin>>phone;
S->Book[ret].phone=phone;
}
return;
}
//6、清空通讯录
void AddressEmpty(AddressBook S)
{
S->n_size=0;
cout<<"通讯录已清空"<<endl;
return;
}
int main()
{
//创建变量
addressbook abs;//通讯录结构体
AddressBook ABS;//通讯录指针
ABS=&abs;
//初始化通讯录中人数
ABS->n_size=0;
while(true)
{
//显示页面
Menu();
int select=0;
cin>>select;
switch(select)
{
case 1://添加通讯录信息
AddressAdd(ABS);
测试,此处n_size已经+1,故要减1实现测试
//cout<<ABS->Book[ABS->n_size-1].name<<endl;
//system("pause");
break;
case 2://显示通讯录信息
AddressShow(ABS);
break;
case 3://删除通讯录信息
{
cout<<"输入删除信息:"<<endl;
string name;
cin>>name;
Delete(ABS,name);
}
break;
case 4://查找信息
{
cout<<"输入查找信息:"<<endl;
string name;
cin>>name;
AddressFind(ABS,name);
}
break;
case 5://修改成员信息
{
cout<<"输入查找信息:"<<endl;
string name;
cin>>name;
AddressModify(ABS,name);
}
break;
case 6://清空通讯录
AddressEmpty(ABS);
break;
case 0:
{
cout<<"退出通讯录系统"<<endl;
return 0;
break;
}
default:
{
cout<<"错误,请重新输入"<<endl;
break;
}
}
system("pause");
system("cls");
}
return 0;
}
|