我建立了链表。需要查询其中某项数据,但运行有问题,代码如下,请各位大虾指教下
#include "testengineer head.h"
#include "testengineer var.h"
struct EngineerStruct *SearchEngineerInformation(struct EngineerStruct *Head)
{
unsigned int choose;
unsigned int no;
struct EngineerStruct *cur=NULL;
struct EngineerStruct *p=NULL;
enum BOOL{False,True};
enum BOOL find=False;
printf("\t 请选择查询的方式:1.编号 2.姓名\n");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("\t 请输入要查询的编号:\n");
scanf("%d",&no);
if(Head=NULL)
{
printf("数据库为空!");
return NULL;
}
cur=Head;
if(no==cur->EngineerNo)
{
printf("┌──┬──┬──┬──┬──┬──┬──┬──┐\n");
printf("│编号│%04d│性别│ %c │学历│ %d │工龄│ %d │\n", p->EngineerNo,p->sex,p->educa,p->EngineerWorkYears);
printf("├──┼──┴──┴──┴──┴──┴──┴──┤\n");
printf("│姓名│%-s │\n",p->EngineerName);
printf("├──┼────────┬──┬────────┤\n");
printf("│生日│ %d-%d-%d │电话│%-s │\n",p->EngineerBirth.year ,p->EngineerBirth.month,p->EngineerBirth.day,p->EngineerPhone);
printf("├──┼────────┴──┴────────┤\n");
printf("│籍贯│%-s │\n",p->EngineerHometown);
printf("├──┼────────────────────┤\n");
printf("│地址│ %-s │\n",p->EngineerAddress);
printf("└──┴────────────────────┘\n");
system("pause");
}
else
{
while(no!=cur->EngineerNo && cur->Next!=NULL)
{
p=cur;
cur=cur->Next;
if(no==cur->EngineerNo)
{
printf("┌──┬──┬──┬──┬──┬──┬──┬──┐\n");
printf("│编号│%04d│性别│ %c │学历│ %d │工龄│ %d │\n", p->EngineerNo,p->sex,p->educa,p->EngineerWorkYears);
printf("├──┼──┴──┴──┴──┴──┴──┴──┤\n");
printf("│姓名│%-s │\n",p->EngineerName);
printf("├──┼────────┬──┬────────┤\n");
printf("│生日│ %d-%d-%d │电话│%-s │\n",p->EngineerBirth.year ,p->EngineerBirth.month,p->EngineerBirth.day,p->EngineerPhone);
printf("├──┼────────┴──┴────────┤\n");
printf("│籍贯│%-s │\n",p->EngineerHometown);
printf("├──┼────────────────────┤\n");
printf("│地址│ %-s │\n",p->EngineerAddress);
printf("└──┴────────────────────┘\n");
find=True;
break;
}
}
}
if(!find)
printf("数据不存在!");
break;
case 2:
printf("请输入要搜索的姓名:");
break;
}
return Head;
}