该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
break;
case '4':
Find();/*查找条目并显示条目*/
break;
case '5':
Display();/*显示所有条目*/
break;
default:
break;
}
}
return 0;
}
/*菜单显示*/
void ShowMenu()
{printf("\n*****************************\n ");
printf("1.添加条目\n ");
printf("2.修改条目\n ");
printf("3.删除条目\n ");
printf("4.查找条目\n ");
printf("5.全部条目\n ");
printf("0.退出\n");
printf("*****************************\n ");
printf("请选择 ");
}
/*增加用户*/
void AddItem()
{tel *p1=NULL,*p2=NULL;
p1=(tel *)malloc(sizeof(tel));/*预先开辟一块内存空间*/
printf("输入姓名:\n"); /*输入数据*/
scanf("%s",p1->name);
printf("输入住宅电话:\n");
scanf("%s",p1->phone);
printf("输入移动电话:\n");
scanf("%s",p1->mobile);
p1->next=NULL;
if(NULL==head) /*表明是个新表,给表头分配空间,增加节点。注:表头没有存放数据*/
{head=(tel *)malloc(sizeof(tel));
head->next=p1;
}else /*往表后增加节点*/
{
for(p2=head;p2->next!=NULL;p2=p2->next); /*找到最后的节点,然后往它上面挂*/
p2->next=p1;
}
}
/*查找用户*/
void Find()
{
tel *p=FindItem();
if(NULL==p)
printf("对不起,没有找到该用户!\n");
else
printf("找到该用户:\n姓名: %s 住宅电话: %s 移动电话: %s\n", p->next->name, p->next->phone, p->next->mobile);
}
/*查找条目*/
tel *FindItem()
{
char name[20];/*临时姓名字符串*/
tel *p = NULL;/*临时电话条目*/
printf("请输入姓名!\n");
scanf("%s",name);
if(head==NULL) /*判断电话本中是否有数据*/
{
printf("电话本中没有记录,请输入记录后,在使用本功能!\n");
return NULL;
}
for ( p = head; p->next != NULL; p = p->next )
if ( !strcmp ( p->next->name, name ) )/*判断其他的节点*/
return p;
return NULL; /*没有找到用户,返回NULL指针*/
}
/*显示所有用户*/
void Display()
{
tel *p=NULL;
if(head==NULL) /*判断电话本中是否有数据*/
{
printf("电话本中没有记录,请输入记录后,在使用本功能!\n");
return ;
}
for ( p= head->next; p !=NULL; p = p->next )
printf("姓名: %s 住宅电话: %s 移动电话: %s\n",p->name,p->phone,p->mobile);