您的位置:首页 > 编程语言 > C语言/C++

C++ 利用STL中vector实现通讯录功能Console

2014-02-08 00:13 417 查看
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
struct TXL
{
char NAME[8];
char GENDER;
char TEL[7];
char CITY[30];
char EIP[7];
};
vector<TXL>ss;
inline void pause()
{
char ch;
cout<<"输入任意键返回 :";
cin>>ch;
return ;
}
void mainframe()
{
system("cls");
printf("                           欢迎使用本通讯录 \n");
printf("                  1.浏览全部联系人                2.创建新通讯录\n");
printf("                  3.添加新联系人                  4.查找联系人\n");
printf("                  5.修改联系人信息                6.删除联系人\n");
printf(" 7. 菜 单 0.退出\n");
printf("                  请选择:");
}
void addition()
{
TXL temp;
addloop:
cout<<"姓名:";
cin>>temp.NAME;
cout<<"性别:";
cin>>temp.GENDER;
cout<<"电话:";
cin>>temp.TEL;
cout<<"地址:";
cin>>temp.CITY;
cout<<"邮编:";
cin>>temp.EIP;
ss.push_back(temp);
cout<<"是否要继续添加联系人? Y|N  :";
char ch;
cin>>ch;
if(toupper(ch)=='Y')goto addloop;
else return ;
}
void print(TXL *temp);
void dele()
{
if(!ss.size()){cout<<"通讯录中没有联系人! 请进行其他操作 ……"<<endl;pause();return ;}
cout<<"请输入你要删除联系人的  1.姓名       2.删除全部联系人 :";
char ch;
int i=0;
cin>>ch;
switch(ch)
{
case '1':
{
cout<<"请输入姓名:";
char name[8];
cin>>name;
for(;i<ss.size();i++)
{
if(strcmp(ss[i].NAME,name));ss.erase(ss.begin()+i);return;
}
cout<<"查无此人!"<<endl;
pause();
return;
}break;
case '2':{ss.erase(ss.begin(),ss.end());break;}
}
}
void fount()
{
char name_temp[8];
cout<<"输入要查找的联系人的姓名:";
cin>>name_temp;
for(int i=0;i<ss.size();i++)
{
if(strcmp(name_temp,ss[i].NAME)==0)
{
print(&ss[i]);pause();return ;
}
}
cout<<"查无此人!"<<endl;
pause();
return ;
}
void modify()
{
if(!ss.size()){cout<<"通讯录中没有联系人! 请进行其他操作 ……"<<endl;pause();return ;}
cout<<"  1.姓名             2.电话"<<endl;
cout<<"  请输入你要查找的方式:";
char ch;
cin>>ch;
switch(ch)
{
case '1':
{
cout<<"请输入你要编辑人的姓名:";
char name_temp[8];
cin>>name_temp;
for(int i=0;i<ss.size();i++)
{
if(!strcmp(name_temp,ss[i].NAME))
{
cout<<"你要修改的是:1.性别   2.电话   3.地址    4.邮编  :";
   char choice_num;
   cin>>choice_num;
   switch(choice_num)
   {
case '1':{cout<<"请输入新的性别:";char sex; cin>>sex;ss[i].GENDER=sex;}break;
case '2':{cout<<"请输入新的电话:";char tel[7]; cin>>tel;strcpy(ss[i].TEL,tel);}break;
case '3':{cout<<"请输入新的地址:";char city[30]; cin>>city;strcpy(ss[i].CITY,city);}break;
    case '4':{cout<<"请输入新的邮编:";char sex; cin>>sex;ss[i].GENDER=sex;}break;
    default:{cout<<"输入错误!";pause();continue;}
}
}
}
break;
case '2':
{
cout<<"请输入你要编辑人的电话:";
char TEL_temp[7];
cin>>TEL_temp;
for(int i=0;i<ss.size();i++)
{
if(!strcmp(TEL_temp,ss[i].TEL))
{
cout<<"你要修改的是:1.姓名   2.性别   3.地址    4.邮编  :";
   char choice_num;
   cin>>choice_num;
   switch(choice_num)
   {
case '1':{cout<<"请输入新的姓名:";char name[8]; cin>>name;strcpy(ss[i].NAME,name);}break;
case '2':{cout<<"请输入新的性别:";char sex; cin>>sex;ss[i].GENDER;}break;
case '3':{cout<<"请输入新的地址:";char city[30]; cin>>city;strcpy(ss[i].CITY,city);}break;
    case '4':{cout<<"请输入新的邮编:";char sex; cin>>sex;ss[i].GENDER=sex;}break;
    default:{cout<<"输入错误!";pause();continue;}
}
}
}
}
break;
}
}
return ;
}
void print(TXL *temp)
{
cout<<"姓名:"<<(*temp).NAME<<endl;
if((*temp).GENDER=='B'||(*temp).GENDER=='b')
cout<<"性别:"<<"男"<<endl;
else
cout<<"性别:"<<"女"<<endl;
cout<<"电话:"<<(*temp).TEL<<endl;
cout<<"城市:"<<(*temp).CITY<<endl;
cout<<"邮编:"<<(*temp).EIP<<endl;
return ;
}
void listall()
{
if(ss.empty())
{
cout<<"没有联系人!"<<endl;
pause();
return ;
}
int num=1;
for(int i=0;i<ss.size();i++)
{
cout<<"第"<<num<<"个联系人:"<<endl;
print(&ss[i]);
num++;
}
num=ss.size();
cout<<"总共有"<<num<<"个联系人。"<<endl;
pause();
}
void NewTXL()
{
int num=ss.size();
if(num!=0)
{
cout<<"通讯录不为空! 不可以再创建新通讯录";
pause();
return;
}
TXL temp;
loop:
cout<<"姓名:";
cin>>temp.NAME;
cout<<"性别:";
cin>>temp.GENDER;
cout<<"电话:";
cin>>temp.TEL;
cout<<"地址:";
cin>>temp.CITY;
cout<<"邮编:";
cin>>temp.EIP;
ss.push_back(temp);
cout<<"是否要继续添加联系人? Y|N  :";
char ch;
cin>>ch;
if(toupper(ch)=='Y')goto loop;
else return ;
}
int main()
{
char choice;
while(1)
{
mainframe();
cin>>choice;
switch(choice)
{
case '1':listall();break;
case '2':NewTXL();break;
case '3':addition();break;
case '4':fount();break;
case '5':modify();break;
case '6':dele();break;
case '7':mainframe();break;
case '0':{exit(0);};
default:{cout<<"输入错误!\n";pause();break;}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++