📄 通讯录.cpp
字号:
#include<iostream.h>
#include<string.h>
typedef struct telephonbook{
char Nodenum[5];
char Name[8];
char Sex;
char Telnum[10];
char Address[20];
struct telephonbook* next;
}nodetel,*Linktel;//通讯录类型
Linktel Creat_telbook()//建立通讯录
{Linktel G=NULL;
cout<<"现在开始建立通讯录:"<<endl;
char n='y';
while(n=='y')
{Linktel T;
T=new nodetel;
cout<<"请输入编号,姓名,性别,电话和地址(用空格隔开):"<<endl;
cin>>T->Nodenum>>T->Name>>T->Sex>>T->Telnum>>T->Address;
T->next=G;
G=T;
cout<<"继续建立请按y,如果要结束建立通讯录按其他键 :";
cin>>n;
}
return G;
}
nodetel* Insert_telbook(nodetel *G){//插入
nodetel* T;
cout<<"请输入您要插入人的编号,姓名,性别,电话和地址(用空格隔开):"<<endl;
T=new nodetel;
cin>>T->Nodenum;
cin>>T->Name;
cin>>T->Sex;
cin>>T->Telnum;
cin>>T->Address;
T->next=G;G=T;
return G;}
nodetel* Search_telbook(nodetel* G){
Linktel T;char m;
T=G;
cout<<"请选择查询的类型(按编号查询请输入0,按姓名查询请按其他键):";
cin>>m;
if(m=='0')
{
char numtemp[8];
cout<<"请输入要查询的编号:";
cin>>numtemp;
while(strcmp(T->Nodenum,numtemp)&&T)
T=T->next;
if(T){cout<<"查询结果是:"<<endl;
cout<<T->Nodenum<<'\t'<<T->Name<<'\t'<<T->Sex<<'\t'<<T->Telnum<<'\t'<<T->Address<<endl;}
else cout<<"没有查询到结果!"<<endl;
}
else
{
char nametemp[8];cout<<"请输入要查询的姓名:";cin>>nametemp;
while(strcmp(T->Name,nametemp)&&T)
T=T->next;
if(T){cout<<"查询结果是:"<<endl;
cout<<T->Nodenum<<'\t'<<T->Name<<'\t'<<T->Sex<<'\t'<<T->Telnum<<'\t'<<T->Address<<endl;
T=T->next;}
else cout<<"没有查询到结果!"<<endl;
}
return G;
}//查询
nodetel* Del_telbook(nodetel* G){
Linktel T,P=NULL,k;
char m;
T=G;
cout<<"请选择要删除的类型(按编号删除请输入0,按姓名删除请按其他键):";
cin>>m;
if(m=='0'){
char numtemp[8];
cout<<"请输入要删除的编号:";
cin>>numtemp;
while(strcmp(T->Nodenum,numtemp))
{P=T;T=T->next;}
if(T){if(P)P->next=T->next;
else{ P=T->next;G=P;}
cout<<T->Nodenum<<'\t'<<T->Name<<'\t'<<T->Sex<<'\t'<<T->Telnum<<'\t'<<T->Address<<endl;
char key;
cout<<"是否确定要删除此通讯录(y或者n)?";
cin>>key;if(key=='y'||key=='Y')
delete T;}
else cout<<"没有输入的编号的记录!"<<endl;}
else{char nametemp[8];
cout<<"请输入要删除的姓名:";
cin>>nametemp;
while(T) {
while(strcmp(T->Name,nametemp))
{P=T;T=T->next;}
if(T)
{if(P)P->next=T->next;
else {P=T->next;G=P; }
cout<<T->Nodenum<<'\t'<<T->Name<<'\t'<<T->Sex<<'\t'<<T->Telnum<<'\t'<<T->Address<<endl;
char key;
cout<<"是否确定要删除此通讯录(y或者n)?";
cin>>key;
if(key=='y'||key=='Y')
{
k=T;
T=T->next;
delete k;
}
}
else cout<<"没有输入的姓名的记录!"<<endl;
}
}
return G;
}//删除
void Print_telbook(nodetel* G){
Linktel P;
P=G;
if(!P){cout<<"通讯录中没有记录!"<<endl;
return;}
cout<<"编号\t"<<"姓名\t"<<"性别\t"<<"电话\t"<<"地址:"<<endl;
while(P)
{cout<<P->Nodenum<<'\t'<<P->Name<<'\t'<<P->Sex<<'\t'<<P->Telnum<<'\t'<<P->Address<<endl;
P=P->next;}
return;}//输出
void main()
{
nodetel *G;
G=Creat_telbook();
char m;
A: cout<<"请输入您的操作(1.插入通讯录 2.通讯录查询 3.通讯录删除 4.输出通讯录 其他:退出):";cin>>m;
switch(m)
{
case '1':{G=Insert_telbook(G);goto A;}
case '2':{G=Search_telbook(G);goto A;}
case '3':{G=Del_telbook(G);goto A;}
case '4':{Print_telbook(G);goto A;}
default:cout<<"退出通讯录管理系统!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -