飞机到达目的地后,游客的行李会进入传送带,由游客自行在取行李处拿取,虽然机场出口处,有工作人员在检查,但也难免会出现拿错行李的事情。请为机场设计一个游客取行李的程序,游客在取行李处,输入自己的身份证号后才能取到自己的行李。 要求: 使用线性表实现行李存储,行李信息表如下: 行李编号 行李航班 姓名 身份证号 行李状态 001 UC8866 张里 510199909090002 到达 002 NI7755 李丽 510200012290001 已取 003 MQ9090 王一 510198810090003 未取 004 BU8080 赵山 610197708080022 未到达 游客输入身份证号,即可获取对应行李箱状态,并领取本人行李箱。 显示欢迎类语句,为游客增加美好的体验感。 代码符合规范,正确、易读、易操作。 分析代码的运行效率,如时间复杂度和空间复杂度。用c语言
时间: 2024-02-26 17:53:17 浏览: 113
行业分类-设备装置-一种带有传送带的物流货箱取装锁定装置.zip
以下是一个简单的示例程序,用于实现上述需求。这里使用了C语言,使用了结构体来存储行李信息,使用了数组来实现存储行李的顺序,以便于实现线性表的特性。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
// 行李信息结构体
typedef struct {
char id[4];
char flight[7];
char name[10];
char id_card[19];
char status[4];
} Luggage;
// 行李信息数组
Luggage luggage_info[4] = {
{"001", "UC8866", "张里", "510199909090002", "到达"},
{"002", "NI7755", "李丽", "510200012290001", "已取"},
{"003", "MQ9090", "王一", "510198810090003", "未取"},
{"004", "BU8080", "赵山", "610197708080022", "未到达"}
};
// 顺序存储行李的数组
char luggage_list[4][4] = {"001", "002", "003", "004"};
int main() {
char id_card[19];
int i;
printf("欢迎来到机场取行李!\n");
printf("请输入您的身份证号:");
scanf("%s", id_card);
for (i = 0; i < 4; i++) {
if (strcmp(luggage_info[i].id_card, id_card) == 0) {
printf("您的行李状态为:%s\n", luggage_info[i].status);
// 如果行李状态为“已取”,则从行李列表中删除该行李
if (strcmp(luggage_info[i].status, "已取") == 0) {
int j;
for (j = i; j < 3; j++) {
strcpy(luggage_list[j], luggage_list[j+1]);
}
luggage_list[3][0] = '\0';
}
break;
}
}
if (i == 4) {
printf("未找到对应的行李信息,请确认身份证号是否正确。\n");
}
// 再次输出行李列表,确认是否已经删除已取行李
printf("当前行李列表为:");
for (i = 0; i < 4; i++) {
if (luggage_list[i][0] != '\0') {
printf(" %s", luggage_list[i]);
}
}
printf("\n");
return 0;
}
```
时间复杂度:最坏情况下需要遍历整个行李列表,因此时间复杂度为O(n)。
空间复杂度:需要存储行李信息的结构体数组和顺序存储行李的数组,空间复杂度为O(n)。
阅读全文