📄 infsearch.cpp
字号:
#include "include.h"
extern Inflinklist *head;
//------------------------------------------------
//--信息查询
//------------------------------------------------
extern Inflinklist *head;
char Infsearch(Inflinklist * ps, char *name)
{
int cnt=0; //输入姓名查询标记,为0则没有
int cnt2=0; //配偶信息查询标记,为0则没有
char cc;
Inflinklist * q0, *q1;
q1=head->next;
while(q1!=NULL) //名字有重名,必须遍历整个链表
{
if(!( q1->name[0]==name[0])) //比较名字的第一个字符是否相同,不同则继续
q1=q1->next;
else
{
if(!(strcmp(q1->name, name))) //比较是否全部相同,相同则输出
{
printf(" personnal information is below:\n");
printf(" name:%s\t sex:%c\t age:%d\t spousename:%s\n",q1->name,q1->sex,q1->age,q1->spousename);
printf(" spouse information is below:\n");
cnt=cnt+1;
if(q1->spousename[0]==NULL) printf(" spousename is null!\n"); //没有配偶的名字,这里理解为没有配偶
else //有则查询
{
cnt2=0;
q0=head->next;
while(q0!=NULL) //再一次遍历整个链表
{
if(!( q0->name[0]==q1->spousename[0])) //比较名字的第一个字符是否与q1配偶的名字相同,不同则继续
q0=q0->next;
else //相同
{
if((q0->sex!=q1->sex) && (!strcmp(q0->name, q1->spousename))) //性别不同,并且q0的名字与q1的配偶的名字相同,
{
if(!(strcmp(q0->spousename, q1->name))) //q0的配偶的名字与q1相同 ;则认为q0与q1是夫妻,如果没有重名的话.
{
printf(" name:%s\t sex:%c\t age:%d\t spousename:%s",q0->name,q0->sex,q0->age,q0->spousename);
printf("\n-----------------------------------------------------------\n");
cnt2=cnt2+1;
}
}
q0=q0->next; //继续往后,名字可能重名
}
}
if(cnt2==0) printf(" No spouse imformation relative!\n");
}
}
q1=q1->next;
}
}
if (cnt==0) printf(" ERROR!!No such name exist! No information found!\n");
printf("\nSearch continue? press Y/y continue;to end,press N/n:\t");
fflush(stdin);
cc= GetContinueNote();
return cc;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -