⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 -

📁 我的数据结构课程设计源码
💻
字号:
#include<iostream.h>
#include<string.h>
typedef struct addr{
	char Nodenum[5];
	char Name[8];
	char Sex;
	char Telnum[10];	
	char* Address;
	struct addr* next;
}Addrb,*LinkAddrb;//通讯录类型
LinkAddrb Creat_Addrb()//建立通讯录
{LinkAddrb G=NULL;
	cout<<"现在开始建立通讯录:"<<endl;
	char n='1';
	while(n!='0')
	{LinkAddrb T;T=new Addrb;T->Address=new char;
loop:cout<<"请输入编号,姓名,性别[用m表示'男',f表示'女'],电话和地址(用空格隔开):"<<endl;
	 cin>>T->Nodenum>>T->Name>>T->Sex>>T->Telnum>>T->Address;
	 if(T->Sex!='m'&&T->Sex!='f'&&T->Sex!='M'&&T->Sex!='F'){cout<<"性别的输入有误,请重新输入:"<<endl;goto loop;}
	 T->next=G;G=T;
	 cout<<"如果要结束建立通讯录,请按0。继续建立请按其他键:";cin>>n;
	}
 return G;
}
Addrb* Insert_Addrb(Addrb *G){//插入
	Addrb* T;
	cout<<"请输入您要插入人的编号,姓名,性别,电话和地址(用空格隔开):"<<endl;
	T=new Addrb;
	cin>>T->Nodenum;
	cin>>T->Name;
	cin>>T->Sex;
	cin>>T->Telnum;
	T->Address=new char;cin>>T->Address;
	T->next=G;G=T;
	return G;}
Addrb* Search_Addrb(Addrb* G){
	LinkAddrb 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<<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<<T->Nodenum<<'\t'<<T->Name<<'\t'<<T->Sex<<'\t'<<T->Telnum<<'\t'<<T->Address<<endl;
		T=T->next;while(strcmp(T->Name,nametemp)&&T)T=T->next;if(T){cout<<T->Nodenum<<'\t'<<T->Name<<'\t'<<T->Sex<<'\t'<<T->Telnum<<'\t'<<T->Address<<endl;}
	}
		else cout<<"没有查询到结果!"<<endl;}
	return G;
}//查询
Addrb* Del_Addrb(Addrb* G){
	LinkAddrb 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;}delete T;}else cout<<"没有输入的编号的记录!"<<endl;}
	else{char nametemp[8];cout<<"请输入要删除的姓名:";cin>>nametemp;
		while(strcmp(T->Name,nametemp)&&T){P=T;T=T->next;}
		if(T){if(P)P->next=T->next;else {P=T->next;G=P;	}
		K=T->next;
		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;
		
while(strcmp(K->Name,nametemp)&&K){P=K;K=K->next;}
	if(K){if(P)P->next=K->next;else{P=K->next;G=P;}
		cout<<K->Nodenum<<'\t'<<K->Name<<'\t'<<K->Sex<<'\t'<<K->Telnum<<'\t'<<K->Address<<endl;
		cout<<"是否确定要删除此通讯录(y或者n)?";cin>>key;if(key=='y'||key=='Y')delete K;
		}
	
		}
		else cout<<"没有输入的姓名的记录!"<<endl;}
	return G;
}//删除
void Print_Addrb(Addrb* G){
	LinkAddrb 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()
{
	Addrb *G;//,*T
	G=Creat_Addrb();
	char m;
	//cls();
H:	cout<<"请输入您的操作(1.插入通讯录 2.通讯录查询 3.通讯录删除 4.输出通讯录 其他:退出):";cin>>m;
	switch(m)
	{
	case '1':{G=Insert_Addrb(G);goto H;}
	case '2':{G=Search_Addrb(G);goto H;}
	case '3':{G=Del_Addrb(G);goto H;}
	case '4':{Print_Addrb(G);goto H;}
	default:cout<<"退出通讯录管理系统!"<<endl;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -