用C语言写一个代码:飞机到达目的地后,游客的行李会进入传送带,由游客自行在取行李处拿取,虽然机场出口处,有工作人员在检查,但也难免会出现拿错行李的事情。请为机场设计一个游客取行李的程序,游客在取行李处,输入自己的身份证号后才能取到自己的行李。 要求: 使用线性表实现行李存储,行李信息表如下: 行李编号 行李航班 姓名 身份证号 行李状态 001 UC8866 张里 510199909090002 到达 002 NI7755 李丽 510200012290001 已取 003 MQ9090 王一 510198810090003 未取 004 BU8080 赵山 610197708080022 未到达 游客输入身份证号,即可获取对应行李箱状态,并领取本人行李箱。 显示欢迎类语句,为游客增加美好的体验感。 代码符合规范,正确、易读、易操作。 分析代码的运行效率,如时间复杂度和空间复杂度。
时间: 2023-10-06 14:08:01 浏览: 138
以下是用C语言实现的一个简单的机场行李取件程序,使用线性表来存储行李信息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 20 // 最大字符串长度
#define MAX_NUM 100 // 最大行李数量
// 行李信息结构体
typedef struct {
char id[MAX_LEN]; // 行李编号
char flight[MAX_LEN]; // 航班号
char name[MAX_LEN]; // 姓名
char idCard[MAX_LEN]; // 身份证号
char status[MAX_LEN]; // 行李状态
} Luggage;
// 线性表结构体
typedef struct {
Luggage *data; // 行李信息数组
int length; // 行李数量
} LuggageList;
// 初始化线性表
void initList(LuggageList *list) {
list->data = (Luggage*)malloc(MAX_NUM * sizeof(Luggage));
list->length = 0;
}
// 添加行李到线性表
void addLuggage(LuggageList *list, Luggage luggage) {
list->data[list->length++] = luggage;
}
// 根据身份证号查找行李状态
char* findStatusByIdCard(LuggageList *list, char* idCard) {
for (int i = 0; i < list->length; i++) {
if (strcmp(list->data[i].idCard, idCard) == 0) {
return list->data[i].status;
}
}
return "未找到该身份证号对应的行李信息";
}
int main() {
LuggageList list;
initList(&list);
// 添加行李信息到线性表中
Luggage luggage1 = {"001", "UC8866", "张里", "510199909090002", "到达"};
Luggage luggage2 = {"002", "NI7755", "李丽", "510200012290001", "已取"};
Luggage luggage3 = {"003", "MQ9090", "王一", "510198810090003", "未取"};
Luggage luggage4 = {"004", "BU8080", "赵山", "610197708080022", "未到达"};
addLuggage(&list, luggage1);
addLuggage(&list, luggage2);
addLuggage(&list, luggage3);
addLuggage(&list, luggage4);
printf("欢迎来到机场取行李程序!\n");
char idCard[MAX_LEN];
printf("请输入您的身份证号:");
scanf("%s", idCard);
char* status = findStatusByIdCard(&list, idCard);
printf("您的行李状态为:%s\n", status);
return 0;
}
```
上述代码中,我们使用了结构体来表示行李信息,使用链表来存储所有行李信息。initList函数用于初始化链表,addLuggage函数用于将行李信息添加到链表中,findStatusByIdCard函数用于根据身份证号查找对应行李的状态。
时间复杂度:findStatusByIdCard函数中使用了for循环来遍历整个链表,因此时间复杂度为O(n),其中n为行李数量。
空间复杂度:程序中使用了一个结构体数组来存储所有行李信息,因此空间复杂度为O(n)。
阅读全文