用C语言写一个代码,该代码符合以下要求;飞机到达目的地后,游客的行李会进入传送带,由游客自行在取行李处拿取,虽然机场出口处,有工作人员在检查,但也难免会出现拿错行李的事情。请为机场设计一个游客取行李的程序,游客在取行李处,输入自己的身份证号后才能取到自己的行李。 要求: 使用线性表实现行李存储,行李信息表如下: 行李编号 行李航班 姓名 身份证号 行李状态 001 UC8866 张里 510199909090002 到达 002 NI7755 李丽 510200012290001 已取 003 MQ9090 王一 510198810090003 未取 004 BU8080 赵山 610197708080022 未到达 游客输入身份证号,即可获取对应行李箱状态,并领取本人行李箱。 显示欢迎类语句,为游客增加美好的体验感。 代码符合规范,正确、易读、易操作。 分析代码的运行效率,如时间复杂度和空间复杂度。
时间: 2023-09-18 10:15:46 浏览: 29
以下是符合要求的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 // 最大行李数量
// 行李信息结构体
typedef struct Luggage {
char id[20]; // 行李编号
char flight[10]; // 行李航班
char name[20]; // 姓名
char idCard[20]; // 身份证号
char status[10]; // 行李状态
} Luggage;
// 线性表结构体
typedef struct List {
Luggage data[MAX_SIZE]; // 行李存储
int length; // 行李数量
} List;
// 初始化线性表
List* initList() {
List *list = (List*)malloc(sizeof(List));
list->length = 0;
return list;
}
// 插入行李信息
void insertLuggage(List *list, Luggage luggage) {
if (list->length >= MAX_SIZE) {
printf("行李存储已满,无法插入!\n");
return;
}
list->data[list->length++] = luggage;
}
// 根据身份证号查询行李箱状态
Luggage getLuggageByIdCard(List *list, char idCard[]) {
for (int i = 0; i < list->length; i++) {
if (strcmp(list->data[i].idCard, idCard) == 0) {
return list->data[i];
}
}
Luggage nullLuggage = {"", "", "", "", ""};
return nullLuggage;
}
int main() {
List *list = initList(); // 初始化线性表
// 插入行李信息
Luggage luggage1 = {"001", "UC8866", "张里", "510199909090002", "到达"};
insertLuggage(list, luggage1);
Luggage luggage2 = {"002", "NI7755", "李丽", "510200012290001", "已取"};
insertLuggage(list, luggage2);
Luggage luggage3 = {"003", "MQ9090", "王一", "510198810090003", "未取"};
insertLuggage(list, luggage3);
Luggage luggage4 = {"004", "BU8080", "赵山", "610197708080022", "未到达"};
insertLuggage(list, luggage4);
char idCard[20];
printf("欢迎来到机场!\n");
printf("请输入您的身份证号:");
scanf("%s", idCard);
Luggage luggage = getLuggageByIdCard(list, idCard);
if (strcmp(luggage.id, "") == 0) {
printf("未查询到您的行李箱信息!\n");
} else {
printf("您的行李箱状态为:%s\n", luggage.status);
if (strcmp(luggage.status, "已取") == 0) {
printf("请注意,您的行李箱已被领取!\n");
} else {
printf("请在取行李处领取您的行李箱!\n");
}
}
return 0;
}
```
时间复杂度为O(n),空间复杂度为O(n),其中n为行李数量。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)