#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100//定义最大值
typedef struct ENode
{ int num;
char Add[MAX];//地址
char Name[MAX];//名字
char telephone[MAX];//电话号码
struct ENode *next;
}ENode,*ENoteBook;
ENoteBook CreatList(int n)
{
ENoteBook P,Q,H;
int i,x;
for(i=1;i<=n;i++)
{
P=(ENoteBook)malloc(sizeof(ENode));
printf("请输入地址/n");
gets(P->Add);
gets(P->Add);
printf("请输入名字/n");
gets(P->Name);
printf("请输入电话/n");
gets(P->telephone);
if(i==1) H=P;
else Q->next=P;
Q=P;
}
P->next=NULL;
return H;
}
void InsertNoteBook(ENoteBook &L)
{
ENoteBook Q;
Q=(ENoteBook)malloc(sizeof(ENode));
printf("现在输入插入元素信息/n");
printf("/n");
printf("请输入地址/n");
gets(Q->Add);//gets(Q->Add);
// puts(Q->Add);
printf("请输入名字/n");
gets(Q->Name);
printf("请输入电话/n");
gets(Q->telephone);
Q->next=L->next;
//L->next=NULL;
L->next=Q;
printf("个人信息添加完成/n");
}
PrintNoteBook(ENoteBook &L)//打印函数
{
ENoteBook P;
P=L;
if(L!=NULL)
printf("/t/t电子通讯录/n");
printf("名字 地址 电话/n");
do
{
printf("%s %s %s",P->Name,P->Add,P->telephone);
printf("/n");
P=P->next;
}while(P!=NULL);
}
Deletemember(ENoteBook L)
{
char str[MAX];ENoteBook P,Q;
printf("请输入你要删除的名字/n");
gets(str);P=L;
while(P->next!=NULL)
{
if (strcmp(str,P->next->Name)==0)
{
P->next=P->next->next;
goto end;
}
else
P->next=P->next->next;
}
printf("出错了!");
end: printf("删除完成!/n");
}
void Checkmember(ENoteBook &L)//按名字
{
char str[MAX];ENoteBook Q;
printf("请输入你要查找的名字/n");
gets(str); gets(str);
Q=L;
while(Q->next!=NULL)
{ if (strcmp(str,Q->Name)==0)
{puts(Q->Name);puts(Q->Add);puts(Q->telephone);}
else Q=Q->next;
}
printf("你出错了/n");
}
main()
{
ENoteBook q;int n;int i;
eww: printf("欢迎使用电子通讯本管理软件/n");
printf("----1. 创建信息----/n");
printf("----2. 插入信息----/n");
printf("----3. 打印信息----/n");
printf("----4. 查找信息----/n");
printf("----5 .删除信息----/n");
printf("请选择您要执行的操作/n");
scanf("%d",&i);
switch(i)
{case 1: printf("请输入元素的个数/n");
scanf("%d",&n);
q=CreatList(n); goto eww; break;
case 2: InsertNoteBook(q);goto eww; break;
case 3: PrintNoteBook(q); goto eww; break;
case 4: Checkmember(q);goto eww; break;
case 5: Deletemember(q);goto eww;break;
default:printf("操作出错/n");goto eww;
}
//Deletemember(q);
}