#include <stdio.h> #include <stdlib.h> #include <string.h>

#define OK 1

typedef char Status;

typedef struct SqNode { Status num[4], flight[7], name[5], ID[19], state[5]; struct SqNode *next; } LNode, *LinkList;

int initList(LinkList &L) { L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; return OK; }

int createList(LinkList &Q) { Q->next = (LinkList)malloc(sizeof(LNode)); strcpy(Q->next->num, "001"); strcpy(Q->next->flight, "UC8866"); strcpy(Q->next->name, "张里"); strcpy(Q->next->ID, "510199909090002"); strcpy(Q->next->state, "到达"); Q = Q->next;

Q->next = (LinkList)malloc(sizeof(LNode));
strcpy(Q->next->num, "002");
strcpy(Q->next->flight, "NI7755");
strcpy(Q->next->name, "李丽");
strcpy(Q->next->ID, "510200012290001");
strcpy(Q->next->state, "已取");
Q = Q->next;

Q->next = (LinkList)malloc(sizeof(LNode));
strcpy(Q->next->num, "003");
strcpy(Q->next->flight, "MQ9090");
strcpy(Q->next->name, "王一");
strcpy(Q->next->ID, "510198810090003");
strcpy(Q->next->state, "未取");
Q = Q->next;

Q->next = (LinkList)malloc(sizeof(LNode));
strcpy(Q->next->num, "004");
strcpy(Q->next->flight, "BU8080");
strcpy(Q->next->name, "赵山");
strcpy(Q->next->ID, "610197708080022");
strcpy(Q->next->state, "未到达");
Q->next->next = NULL;
return OK;

}

int seekList(LinkList L, char a[]) { while (L) { if (strcmp(L->ID, a) == 0) { printf("%s\n", L->state); return OK; } L = L->next; } printf("查无此人\n"); return 0; }

int main() { char c[19]; LinkList L; initList(L); createList(L); printf("欢迎光临\n请输入身份证查找行李信息\n"); scanf("%s", c); seekList(L->next, c); return 0; }

修改说明:

  1. 函数名应该按照驼峰命名法,如InitList改为initList。

  2. 函数返回值应该有明确的含义,如InitList应该返回初始化是否成功的状态信息。

  3. 在定义结构体时,应该使用typedef,并且遵循命名规范,如SqNode改为LNode。

  4. 在定义结构体时,应该将指针放在结构体的后面,方便理解。

  5. 在函数中传递链表时,应该传递链表的头结点,而不是头指针。

  6. 在函数中使用字符串时,应该使用%s来读取和输出字符串,而不是%d。

  7. 在字符串比较时,应该使用strcmp函数,而不是==运算符。

  8. 在函数中,应该使用大括号将语句块括起来,增加代码的可读性。

  9. 在读取字符串时,应该避免使用空格,否则会读入空格。

C语言单链表实现行李信息查询系统 - 代码优化

原文地址: https://www.cveoy.top/t/topic/oeQH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录