使用C语言编写一个程序,包括航班信息的存储和查询功能
时间: 2023-04-01 22:00:15 浏览: 159
您好,我可以回答这个问题。使用C语言编写一个程序,可以通过结构体来存储航班信息,包括航班号、起飞时间、到达时间、起飞地点、到达地点等信息。然后可以通过输入航班号或起飞地点、到达地点等信息来查询对应的航班信息。具体实现可以使用文件读写等方式来存储和查询数据。
相关问题
用C语言编写一个航班管理系统,实现航班的增删查找功能
好的,下面是一个简单的航班管理系统的代码,可以实现航班的增删查找功能。请注意,这只是一个简单的示例,实际上需要更多的功能和完善的错误处理。
```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()` 函数实现了整个程序的控制流程。它不断地循环,让用户选择要执行的操作,直到用户选择退出程序。
用c语言编写航班信息的查询与检索
在C语言中,编写航班信息的查询与检索通常涉及到结构体、数组或动态数据结构来存储航班数据,并使用函数来处理用户的输入请求。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义航班信息结构体
typedef struct {
char flight_number[20];
char destination[50];
int departure_time;
} Flight;
// 模拟航班数据库,这里仅为了演示,实际应用会更大
Flight flights[] = {
{"CA123", "北京", 1000},
{"MU456", "上海", 1100},
{"HUY789", "广州", 1200},
// 更多航班...
};
// 查询函数
void search_flight(const char* query) {
for (int i = 0; i < sizeof(flights)/sizeof(Flight); i++) {
if (strstr(flights[i].flight_number, query) != NULL || strstr(flights[i].destination, query) != NULL) {
printf("航班编号:%s, 目的地:%s, 出发时间:%d\n", flights[i].flight_number, flights[i].destination, flights[i].departure_time);
}
}
}
int main() {
char input[100];
printf("请输入航班查询关键词:");
fgets(input, sizeof(input), stdin); // 注意去掉回车符
input[strlen(input)-1] = '\0'; // 去掉字符串结束后的换行符
search_flight(input);
return 0;
}
阅读全文