航空客运订票系统用链表的c语言代码
时间: 2024-10-09 12:11:33 浏览: 47
航空订票系统(C语言)(单链表)
5星 · 资源好评率100%
航空客运订票系统可以使用链表来实现,以下是一个简单的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义航班信息结构体
typedef struct Flight {
char flightNo[10]; // 航班号
char departure[20]; // 出发地
char destination[20]; // 目的地
int seats; // 座位数
struct Flight *next; // 指向下一个航班信息的指针
} Flight;
// 初始化航班信息链表
Flight *initFlightList() {
Flight *head = (Flight *)malloc(sizeof(Flight));
head->next = NULL;
return head;
}
// 添加航班信息到链表中
void addFlight(Flight *head, Flight *newFlight) {
Flight *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newFlight;
}
// 根据航班号查找航班信息
Flight *findFlightByNo(Flight *head, char *flightNo) {
Flight *p = head->next;
while (p != NULL) {
if (strcmp(p->flightNo, flightNo) == 0) {
return p;
}
p = p->next;
}
return NULL;
}
// 删除航班信息
void deleteFlight(Flight *head, char *flightNo) {
Flight *p = head->next;
Flight *pre = head;
while (p != NULL) {
if (strcmp(p->flightNo, flightNo) == 0) {
pre->next = p->next;
free(p);
return;
}
pre = p;
p = p->next;
}
}
// 输出所有航班信息
void printAllFlights(Flight *head) {
Flight *p = head->next;
while (p != NULL) {
printf("航班号:%s,出发地:%s,目的地:%s,座位数:%d\n", p->flightNo, p->departure, p->destination, p->seats);
p = p->next;
}
}
int main() {
Flight *head = initFlightList();
// 添加航班信息
Flight *f1 = (Flight *)malloc(sizeof(Flight));
strcpy(f1->flightNo, "CA123");
strcpy(f1->departure, "北京");
strcpy(f1->destination, "上海");
f1->seats = 100;
addFlight(head, f1);
Flight *f2 = (Flight *)malloc(sizeof(Flight));
strcpy(f2->flightNo, "MU456");
strcpy(f2->departure, "上海");
strcpy(f2->destination, "北京");
f2->seats = 80;
addFlight(head, f2);
// 查找航班信息
Flight *f3 = findFlightByNo(head, "CA123");
if (f3 != NULL) {
printf("查找到航班信息:航班号:%s,出发地:%s,目的地:%s,座位数:%d\n", f3->flightNo, f3->departure, f3->destination, f3->seats);
} else {
printf("未找到航班信息\n");
}
// 删除航班信息
deleteFlight(head, "MU456");
// 输出所有航班信息
printAllFlights(head);
return 0;
}
```
以上代码实现了一个简单的航空客运订票系统,使用链表来存储航班信息。你可以根据自己的需求进行修改和扩展。下面是一些相关问题:
阅读全文