程序概述
在这个指南中,我们将探讨如何使用C语言创建一个简单的飞机订票程序。这个程序将包括航班查询和预订功能,旨在帮助用户查找航班信息并进行预订。我们将逐步介绍程序的结构、功能实现以及用户交互流程。
程序结构
我们的飞机订票程序将分为以下几个模块:
- 数据结构设计:定义航班信息的数据结构。
- 航班查询功能:允许用户根据不同的条件查询航班信息。
- 航班预订功能:允许用户预订选定的航班。
- 用户界面:提供用户与程序交互的界面。
- 程序入口:程序的启动点和主循环。
数据结构设计
首先,我们需要定义航班信息的数据结构。以下是一个简单的航班信息结构体:
#include <stdio.h>
#include <string.h>
#define MAX_FLIGHTS 100
#define MAX_NAME_LEN 50
#define MAX_CITY_LEN 30
typedef struct {
int flight_number;
char departure_city[MAX_CITY_LEN];
char arrival_city[MAX_CITY_LEN];
int departure_time;
int available_seats;
} Flight;
Flight flights[MAX_FLIGHTS];
int flight_count = 0;
航班查询功能
航班查询功能将允许用户根据航班号、出发城市或到达城市来查询航班信息。以下是一个简单的查询函数示例:
void search_flights(int flight_number, const char* departure_city, const char* arrival_city) {
for (int i = 0; i < flight_count; i++) {
Flight flight = flights[i];
if ((flight_number == 0 || flight.flight_number == flight_number) &&
(strcmp(departure_city, "") == 0 || strcmp(flight.departure_city, departure_city) == 0) &&
(strcmp(arrival_city, "") == 0 || strcmp(flight.arrival_city, arrival_city) == 0)) {
printf("Flight Number: %d\n", flight.flight_number);
printf("Departure City: %s\n", flight.departure_city);
printf("Arrival City: %s\n", flight.arrival_city);
printf("Departure Time: %d\n", flight.departure_time);
printf("Available Seats: %d\n\n", flight.available_seats);
}
}
}
航班预订功能
航班预订功能将允许用户选择一个航班并预订座位。以下是一个简单的预订函数示例:
int book_flight(int flight_number) {
for (int i = 0; i < flight_count; i++) {
if (flights[i].flight_number == flight_number) {
if (flights[i].available_seats > 0) {
flights[i].available_seats--;
printf("Flight %d booked successfully!\n", flight_number);
return 1;
} else {
printf("Sorry, no available seats on flight %d.\n", flight_number);
return 0;
}
}
}
printf("Flight %d not found.\n", flight_number);
return 0;
}
用户界面
用户界面将是一个简单的文本菜单,允许用户选择不同的操作。以下是一个简单的用户界面示例:
void print_menu() {
printf("Welcome to the Flight Booking System\n");
printf("1. Search Flights\n");
printf("2. Book a Flight\n");
printf("3. Exit\n");
printf("Enter your choice: ");
}
程序入口
程序的入口点将是一个主循环,它将不断显示菜单并处理用户输入。以下是一个简单的程序入口示例:
int main() {
int choice, flight_number;
char departure_city[MAX_CITY_LEN], arrival_city[MAX_CITY_LEN];
while (1) {
print_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter flight number (0 for all): ");
scanf("%d", &flight_number);
printf("Enter departure city (empty for any): ");
scanf("%s", departure_city);
printf("Enter arrival city (empty for any): ");
scanf("%s", arrival_city);
search_flights(flight_number, departure_city, arrival_city);
break;
case 2:
printf("Enter flight number to book: ");
scanf("%d", &flight_number);
book_flight(flight_number);
break;
case 3:
printf("Thank you for using the Flight Booking System. Goodbye!\n");
return 0;
default:
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
总结
通过上述步骤,我们构建了一个简单的飞机订票程序。这个程序虽然功能有限,但它提供了一个基础框架,可以进一步扩展和改进。在实际应用中,可能还需要考虑更多的功能,如用户账户管理、支付处理等。不过,这个简单的例子足以帮助理解如何使用C语言实现基本的航班查询和预订操作。