数据结构实验--电子通讯录

来源:互联网 发布:商家怎么报名淘宝试用 编辑:程序博客网 时间:2024/04/29 19:30

#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);
}