通讯录管理系统
学习目标:
对C++的基础进行复习,为后续深入学习打好基础
案例描述:
通讯录是一个可以记录亲人、好友信息的工具。
本教程主要利用C++来实现一个通讯录管理系统
系统中需要实现的功能如下:
添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
显示联系人:显示通讯录中所有联系人信息
删除联系人:按照姓名进行删除指定联系人
查找联系人:按照姓名查看指定联系人信息
修改联系人:按照姓名重新修改指定联系人
清空联系人:清空通讯录中所有信息
退出通讯录:退出当前使用的通讯录
#include<iostream>
#include<fstream>
#include<iomanip>
#include<string>
using namespace std;
#define MAXPEOPLE 100
static int scount=0;
class telephone
{
public:
char xuhao[20];char name[20];char xingb[20];char nianl[20];char dianhua[20];char zhuzhi[20];
telephone()
{};
void instial(char xh[20],char nm[20],char xb[2],char nl[20],char dh[20],char zz[20])
{
strcpy_s(xuhao,xh);strcpy_s(name,nm);
strcpy_s(xingb,xb);strcpy_s(nianl,nl);
strcpy_s(dianhua,dh);strcpy_s(zhuzhi,zz);
};
void setxuhao(char xh[20])
{strcpy_s(xuhao,xh);
}
void setname(char nm[20])
{
strcpy_s(name,nm);
}
void setxingb(char xb[20])
{
strcpy_s(xingb,xb);
}
void setnianl(char nl[20])
{
strcpy_s(nianl,nl);
}
void setdianhua(char dh[20])
{
strcpy_s(dianhua,dh);
}
void setzhuzhi(char zz[20])
{
strcpy_s(zhuzhi,zz);
}
char * getxuhao()
{return xuhao;};
char * getname()
{return name;};
char * getxingb()
{return xingb;};
char * getnianl()
{return nianl;};
char * getdianhua()
{return dianhua;};
char * getzhuzhi()
{return zhuzhi;};
};
class manage{
telephone tel[MAXPEOPLE];
public:
void luru();
void shanchu();
void xiugai();
void chaxun();
void liulan();
};
void manage::luru()//录入联系人
{
char xuhao[20],name[20],xingb[20],nianl[20],dianhua[20],zhuzhi[20];int a;
cout<<"请输入要添加的联系人的数量:";
cin>>a;
for(int i=0;i<a;i++)
{cout<<"请输入序号:"<<endl;
cin>>xuhao;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入性别:"<<endl;
cin>>xingb;
cout<<"请输入年龄:"<<endl;
cin>>nianl;
cout<<"请输入电话:"<<endl;
cin>>dianhua;
cout<<"请输入住址:"<<endl;
cin>>zhuzhi;
tel[scount].instial(xuhao,name,xingb,nianl,dianhua,zhuzhi);
scount++;}
cout<<"添加成功"<<endl;
system("pause");
system("cls");//清屏
}
void manage::shanchu()//删除联系人
{
int index=0;
cout<<"请输入要删除的序号"<<endl;
cin>>index;
for(int i=index-1;i<index;i++)
{tel[i]=tel[i+1];}
scount=scount-1;
cout<<"删除成功"<<endl;
system("pause");
//system("cls");//清屏
}
void manage::xiugai()//修改联系人
{
char name[20];
int index=0;
char xuhao[20],xingb[20],nianl[20],dianhua[20],zhuzhi[20];
int q=-1;
cout<<"请输入要修改的联系人姓名:"<<endl;
cin>>name;
for(int i=0;i<scount;i++)
{
if(strcmp(name,tel[i].getname())==0)
{
cout<<"将序号修改为:"<<endl;
cin>>xuhao;
tel[index].setxuhao(xuhao);
cout<<"将姓名修改为:"<<endl;
cin>>name;
tel[index].setname(name);
cout<<"将性别修改为:"<<endl;
cin>>xingb;
tel[index].setxingb(xingb);
cout<<"将年龄修改为:"<<endl;
cin>>nianl;
tel[index].setnianl(nianl);
cout<<"将电话修改为:"<<endl;
cin>>dianhua;
tel[index].setdianhua(dianhua);
cout<<"将住址修改为:"<<endl;
cin>>zhuzhi;
tel[index].setzhuzhi(zhuzhi);
cout<<"修改成功"<<endl;
break;
}
else
{cout<<"联系人不存在"<<endl;}
}
system("pause");
//system("cls");//清屏
}
int xz()
{
int a=0;
cout<<"1、按姓名查询"<<endl;
cout<<"2、按序号查询"<<endl;
cout<<"3、模糊查找"<<endl;
cout<<"请选择一种查询方式"<<endl;
cin>>a;
return a;
}
void manage::chaxun()//查询联系人
{
int a=xz();
if(a==1)
{
char name1[20];
char name2[20];
cout<<"请输入要查询的人的姓名"<<endl;
cin>>name1;int i,j,k=0;
for(int i=0;i<scount;i++)
{
strcpy_s(name2,tel[i].getname());
if(strcmp(name1,name2)==0)
{
j=i;k++;
}
if(k==1)
{
cout<<"序号"<<tel[i].getxuhao()<<"\t";
cout<<"姓名"<<tel[i].getname()<<"\t";
cout<<"性别"<<tel[i].getxingb()<<"\t";
cout<<"年龄"<<tel[i].getnianl()<<"\t";
cout<<"电话"<<tel[i].getdianhua()<<"\t";
cout<<"住址"<<tel[i].getzhuzhi()<<endl;
break;
}
}
if(k==0)
cout<<"查无此人"<<endl;
}
if(a==2)
{
char xuhao1[20];
char xuhao2[20];
cout<<"请输入要查询的序号:"<<endl;
cin>>xuhao1;
int i,j,k=0;
for(int i=0;i<scount;i++)
{
strcpy_s(xuhao2,tel[i].getxuhao());
if(strcmp(xuhao1,xuhao2)==0)
{
j=i;k++;
}
if(k==1)
{ cout<<"序号"<<tel[i].getxuhao()<<"\t";
cout<<"姓名"<<tel[i].getname()<<"\t";
cout<<"性别"<<tel[i].getxingb()<<"\t";
cout<<"年龄"<<tel[i].getnianl()<<"\t";
cout<<"电话"<<tel[i].getdianhua()<<"\t";
cout<<"住址"<<tel[i].getzhuzhi()<<endl;
break;
}
}
if(k==0)
cout<<"查无此人"<<endl;
}
//模糊查找
if(a==3)
{char a[20];
cout<<"请输入要查找的关键字:"<<endl;
cin>>a;cout<<endl;
int i,j,k=0;
for(i=0;i<scount;i++)
{//strcpy_s(a,tel[i].getname());
// if(strstr(a,tel[i].getname)!=NULL)
{
j=i;k++;
}
}
if(k==1)
{
cout<<"序号"<<tel[i].getxuhao()<<"\t";
cout<<"姓名"<<tel[i].getname()<<"\t";
cout<<"性别"<<tel[i].getxingb()<<"\t";
cout<<"年龄"<<tel[i].getnianl()<<"\t";
cout<<"电话"<<tel[i].getdianhua()<<"\t";
cout<<"住址"<<tel[i].getzhuzhi()<<endl;
}
else{
cout<<"模糊字查找失败!请输入其他关键字!"<<endl;
}
}
system("pause");
//system("cls");//清屏
}
void manage::liulan()
{
for(int i=0;i<scount;i++)
{ cout<<"序号:"<<tel[i].getxuhao()<<"\t";
cout<<"姓名:"<<tel[i].getname()<<"\t";
cout<<"性别:"<<tel[i].getxingb()<<"\t";
cout<<"年龄:"<<tel[i].getnianl()<<"\t";
cout<<"电话:"<<tel[i].getdianhua()<<"\t";
cout<<"住址:"<<tel[i].getzhuzhi()<<endl;
}
system("pause");
//system("cls");//清屏
}
void memu()//菜单
{
cout<<"-----------------------------------"<<endl;
cout<<"|*****欢迎使用电话号码管理软件****|"<<endl;
cout<<"|******* 1.添加联系人 **********|"<<endl;
cout<<"|******* 2.删除联系人 **********|"<<endl;
cout<<"|******* 3.修改联系人 **********|"<<endl;
cout<<"|******* 4.查询联系人 **********|"<<endl;
cout<<"|******* 5.浏览通讯录 **********|"<<endl;
cout<<"|******* 6.退出通讯录 **********|"<<endl;
cout<<"-----------------------------------"<<endl;
}
int main()
{
manage manager;
while(1)
{
int choice;
memu();
cout<<"请输入您的选择:"<<endl;
cin>>choice;
switch(choice)
{
case 1:
manager.luru();
break;
case 2:
manager.shanchu();
break;
case 3:
manager.xiugai();
break;
case 4:
manager.chaxun();
break;
case 5:
manager.liulan();
break;
case 6:
cout<<"欢迎下次使用"<<endl;
system("pause");
return 0;
break;
} }
return 0;
}