#include<stdio.h>
#include<stdlib.h>
struct Linklist
{
int no;
char name[20];
char num[13];
char addr[50];
struct Linklist * next;
};
typedef struct Linklist Linklist;
typedef struct Linklist *LNode;
void output(Linklist *L)
{
Linklist *p;
p = L->next;
puts(“no\tname\tnum\taddress”);
puts("==== \t====\t====\t====");
int count = 1;
while§
{
printf("%d\t%s\t%s\t%s\n",count,p->name,p->num,p->addr);
p = p->next;
count++;
}
}
void add(Linklist *L)
{
Linklist *p,*s;
p = L;
while(p->next)
{
p = p->next;
}
s = (LNode)malloc(sizeof(Linklist));
printf(“name:”);
scanf("%s",s->name);
printf(“num:”);
scanf("%s",s->num);
printf(“addr:”);
scanf("%s",s->addr);
s->next = NULL;
p->next = s;
}
void search(Linklist *L)
{
Linklist *p;
p = L;
int n;
puts(“search which?”);
scanf("%d",&n);
int i;
for(i = 1;i < n + 1;i++)
{
p = p->next;
}
if(p == NULL)
{
puts(“empty!”);
}
else
{
printf("%s\t",p->name);
printf("%s\t",p->num);
printf("%s\t",p->addr);
printf("\n");
}
}
void update(Linklist *L)
{
Linklist *p;
p = L;
int n;
puts(“update which?”);
scanf("%d",&n);
int i;
for(i = 1;i < n + 1;i++)
{
p = p->next;
}
if(p == NULL)
{
puts(“empty!”);
}
else
{
printf(“name:”);
scanf("%s",p->name);
printf(“num:”);
scanf("%s",p->num);
printf(“addr:”);
scanf("%s",p->addr);
}
}
void del(Linklist *L)
{
Linklist *p,*q;
p = L;
int n;
puts(“delete which?”);
scanf("%d",&n);
int i;
for(i = 1;i < n;i++)
{
p = p->next;
}
if(p == NULL)
{
puts(“empty!”);
}
else
{
q = p->next;
p->next = q->next;
free(q);
printf (“该好友已成功删除\n”);
}
}
int menu()
{
printf ("*******************************************************\n");
printf ("* 通讯录 *\n");
printf ("*******************************************************\n");
printf ("* 1)列表信息 *\n");
printf ("* 2)修改信息 *\n");
printf ("* 3)删除好友 *\n");
printf ("* 4)添加好友 *\n");
printf ("* 5)查找好友 *\n");
printf ("* 0)退出 *\n");
printf ("*******************************************************\n");
printf ("*******************************************************\n\n");
}
int main()
{
Linklist *L;
int i;
L = (LNode)malloc(sizeof(Linklist));
L->next = NULL;
while(1)
{
menu();
printf(“请输入:\n”);
scanf("%d",&i);
switch(i)
{
case 1:
output(L);
break;
case 2:
update(L);
break;
case 3:
del(L);
break;
case 4:
add(L);
break;
case 5:
search(L);
break;
case 0:
exit(0);
break;
default:
break;
}
}
return 0;
}