飞机订票程序:C语言实现航班查询与预订操作指南

2026-10-25 0 阅读

程序概述

在这个指南中,我们将探讨如何使用C语言创建一个简单的飞机订票程序。这个程序将包括航班查询和预订功能,旨在帮助用户查找航班信息并进行预订。我们将逐步介绍程序的结构、功能实现以及用户交互流程。

程序结构

我们的飞机订票程序将分为以下几个模块:

  1. 数据结构设计:定义航班信息的数据结构。
  2. 航班查询功能:允许用户根据不同的条件查询航班信息。
  3. 航班预订功能:允许用户预订选定的航班。
  4. 用户界面:提供用户与程序交互的界面。
  5. 程序入口:程序的启动点和主循环。

数据结构设计

首先,我们需要定义航班信息的数据结构。以下是一个简单的航班信息结构体:

#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语言实现基本的航班查询和预订操作。

分享到: