用C语言编写一个航班管理系统,实现航班的增删查找功能
时间: 2023-08-20 09:05:05 浏览: 198
好的,下面是一个简单的航班管理系统的代码,可以实现航班的增删查找功能。请注意,这只是一个简单的示例,实际上需要更多的功能和完善的错误处理。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_FLIGHTS 100
typedef struct {
char flight_number[10];
char origin[50];
char destination[50];
int departure_time;
} Flight;
Flight flights[MAX_FLIGHTS];
int num_flights = 0;
void add_flight() {
if (num_flights >= MAX_FLIGHTS) {
printf("Too many flights in the system.\n");
return;
}
printf("Enter flight number: ");
scanf("%s", flights[num_flights].flight_number);
printf("Enter origin: ");
scanf("%s", flights[num_flights].origin);
printf("Enter destination: ");
scanf("%s", flights[num_flights].destination);
printf("Enter departure time: ");
scanf("%d", &flights[num_flights].departure_time);
num_flights++;
printf("Flight added successfully.\n");
}
void delete_flight() {
char flight_number[10];
int i, found = 0;
printf("Enter flight number to delete: ");
scanf("%s", flight_number);
for (i = 0; i < num_flights; i++) {
if (strcmp(flights[i].flight_number, flight_number) == 0) {
found = 1;
break;
}
}
if (found) {
for (; i < num_flights - 1; i++) {
flights[i] = flights[i + 1];
}
num_flights--;
printf("Flight deleted successfully.\n");
} else {
printf("Flight not found.\n");
}
}
void search_flight() {
char flight_number[10];
int i, found = 0;
printf("Enter flight number to search: ");
scanf("%s", flight_number);
for (i = 0; i < num_flights; i++) {
if (strcmp(flights[i].flight_number, flight_number) == 0) {
found = 1;
break;
}
}
if (found) {
printf("Flight %s from %s to %s departs at %d.\n",
flights[i].flight_number, flights[i].origin,
flights[i].destination, flights[i].departure_time);
} else {
printf("Flight not found.\n");
}
}
int main() {
int choice;
while (1) {
printf("\n1. Add flight\n");
printf("2. Delete flight\n");
printf("3. Search flight\n");
printf("4. Quit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_flight();
break;
case 2:
delete_flight();
break;
case 3:
search_flight();
break;
case 4:
return 0;
default:
printf("Invalid choice.\n");
}
}
return 0;
}
```
这个代码使用了一个 `Flight` 结构体来存储每个航班的信息,包括航班号、起始地点、目的地和出发时间。`MAX_FLIGHTS` 宏定义了系统可以处理的最大航班数,这里设置为 100。代码中使用了一个全局变量 `num_flights` 来记录当前系统中的航班数。
`add_flight()` 函数实现了添加航班的功能。它首先检查系统中的航班数是否超过了最大值,如果超过了就返回。然后让用户输入新航班的信息,并将其存储在 `flights` 数组中。最后,它将 `num_flights` 增加 1,并输出成功添加航班的信息。
`delete_flight()` 函数实现了删除航班的功能。它让用户输入要删除的航班号,并在 `flights` 数组中查找该航班。如果找到了,就将该航班从数组中移除,将后面的航班向前移动一位,并将 `num_flights` 减少 1。如果没有找到,就输出错误信息。
`search_flight()` 函数实现了查找航班的功能。它让用户输入要查找的航班号,并在 `flights` 数组中查找该航班。如果找到了,就输出该航班的信息。如果没有找到,就输出错误信息。
`main()` 函数实现了整个程序的控制流程。它不断地循环,让用户选择要执行的操作,直到用户选择退出程序。
阅读全文