queryByName.c
Upload User: bafish
Upload Date: 2021-11-22
Package Size: 158k
Code Size: 1k
Development Platform:

Visual C++

  1. #include "com.h"
  2. /*********************************************************
  3. *函数名:queryByName
  4. *形参:要处理的链表头指针head
  5. *返回值:无
  6. *函数功能:遍历链表查找给定的记录
  7. *作者:qjh
  8. *编写日期:2008-9-18
  9. **********************************************************/
  10. void queryByName(MEMBER *head)
  11. {
  12. MEMBER*p;
  13. char name[20];
  14. int count=0;
  15. int flag=0;//标志是否找到
  16. p=head->next;
  17. printf("请输入要查找的姓名:n");
  18. gets(name);
  19. printf("%6s", "编号");
  20. printf("%10s", "姓名");
  21. printf("%8s" , "角色");
  22. printf("%5s", "年龄");
  23. printf("%10s", "身高");
  24. printf("%10s", "体重");
  25. printf("%12s", "薪水");
  26. printf("%12sn", "加入日期");
  27. while(p!=NULL ){//遍历链表,输出符合查询条件的记录
  28. if( !strcmp(p->name,name)){
  29. flag=1;
  30. printf("%6s", p->number);//输出编号
  31. //输出姓名
  32. printf("%10s", p->name);
  33. //。。。
  34. printf("%8s" , roleSet[p->role]);
  35. printf("%5d", p->age);
  36. printf("%10.1f", p->high);
  37. printf("%10.1f", p->weight);
  38. printf("%12.2f", p->salary);
  39. printf("%6d-%2d-%2dn", p->joinDate.year,
  40.  p->joinDate.month,
  41.  p->joinDate.day);
  42. count++;
  43. if(count%20==0)//分屏显示,每输出20条记录暂停
  44. getch();
  45. }
  46. p=p->next;
  47. }
  48. if(!flag)
  49. printf("n对不起,没有符合条件的记录!nn");
  50. }