航班预订系统:C语言实现入门教程与案例分析

2026-07-08 0 阅读

引言

航班预订系统是航空业的重要组成部分,它能够帮助乘客方便快捷地预订机票。在编程领域,使用C语言实现一个航班预订系统是一个很好的实践项目,可以加深对C语言的理解和应用。本文将详细介绍如何使用C语言创建一个简单的航班预订系统,并附上案例分析。

系统设计

1. 系统功能

一个基本的航班预订系统应具备以下功能:

  • 航班信息管理:包括航班的添加、删除、修改和查询。
  • 乘客信息管理:包括乘客的添加、删除、修改和查询。
  • 预订管理:包括预订的添加、删除、修改和查询。
  • 报表生成:生成航班、乘客和预订的报表。

2. 数据结构设计

为了实现上述功能,我们需要定义以下数据结构:

  • 航班结构体:包含航班号、出发地、目的地、起飞时间、座位数等信息。
  • 乘客结构体:包含乘客姓名、身份证号、联系方式等信息。
  • 预订结构体:包含预订号、航班号、乘客姓名、预订时间等信息。

C语言实现

1. 航班信息管理

以下是一个简单的航班信息管理模块的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
    char flight_number[10];
    char departure[50];
    char destination[50];
    char departure_time[20];
    int seat_count;
} Flight;

Flight flights[100]; // 假设最多有100个航班
int flight_count = 0;

void add_flight() {
    if (flight_count >= 100) {
        printf("航班数量已达上限。\n");
        return;
    }
    Flight f;
    printf("输入航班号:");
    scanf("%s", f.flight_number);
    printf("输入出发地:");
    scanf("%s", f.departure);
    printf("输入目的地:");
    scanf("%s", f.destination);
    printf("输入起飞时间:");
    scanf("%s", f.departure_time);
    printf("输入座位数:");
    scanf("%d", &f.seat_count);
    flights[flight_count++] = f;
    printf("航班添加成功。\n");
}

void list_flights() {
    for (int i = 0; i < flight_count; i++) {
        printf("航班号:%s,出发地:%s,目的地:%s,起飞时间:%s,座位数:%d\n",
               flights[i].flight_number,
               flights[i].departure,
               flights[i].destination,
               flights[i].departure_time,
               flights[i].seat_count);
    }
}

2. 乘客信息管理

以下是一个简单的乘客信息管理模块的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
    char name[50];
    char id_number[20];
    char phone_number[20];
} Passenger;

Passenger passengers[100]; // 假设最多有100个乘客
int passenger_count = 0;

void add_passenger() {
    if (passenger_count >= 100) {
        printf("乘客数量已达上限。\n");
        return;
    }
    Passenger p;
    printf("输入乘客姓名:");
    scanf("%s", p.name);
    printf("输入身份证号:");
    scanf("%s", p.id_number);
    printf("输入联系方式:");
    scanf("%s", p.phone_number);
    passengers[passenger_count++] = p;
    printf("乘客添加成功。\n");
}

void list_passengers() {
    for (int i = 0; i < passenger_count; i++) {
        printf("乘客姓名:%s,身份证号:%s,联系方式:%s\n",
               passengers[i].name,
               passengers[i].id_number,
               passengers[i].phone_number);
    }
}

3. 预订管理

以下是一个简单的预订管理模块的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
    int booking_number;
    char flight_number[10];
    char passenger_name[50];
    char booking_time[20];
} Booking;

Booking bookings[100]; // 假设最多有100个预订
int booking_count = 0;

void add_booking() {
    if (booking_count >= 100) {
        printf("预订数量已达上限。\n");
        return;
    }
    Booking b;
    printf("输入预订号:");
    scanf("%d", &b.booking_number);
    printf("输入航班号:");
    scanf("%s", b.flight_number);
    printf("输入乘客姓名:");
    scanf("%s", b.passenger_name);
    printf("输入预订时间:");
    scanf("%s", b.booking_time);
    bookings[booking_count++] = b;
    printf("预订添加成功。\n");
}

void list_bookings() {
    for (int i = 0; i < booking_count; i++) {
        printf("预订号:%d,航班号:%s,乘客姓名:%s,预订时间:%s\n",
               bookings[i].booking_number,
               bookings[i].flight_number,
               bookings[i].passenger_name,
               bookings[i].booking_time);
    }
}

4. 报表生成

以下是一个简单的报表生成模块的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void generate_report() {
    printf("航班报表:\n");
    for (int i = 0; i < flight_count; i++) {
        printf("航班号:%s,出发地:%s,目的地:%s,座位数:%d\n",
               flights[i].flight_number,
               flights[i].departure,
               flights[i].destination,
               flights[i].seat_count);
    }

    printf("\n乘客报表:\n");
    for (int i = 0; i < passenger_count; i++) {
        printf("乘客姓名:%s,身份证号:%s,联系方式:%s\n",
               passengers[i].name,
               passengers[i].id_number,
               passengers[i].phone_number);
    }

    printf("\n预订报表:\n");
    for (int i = 0; i < booking_count; i++) {
        printf("预订号:%d,航班号:%s,乘客姓名:%s,预订时间:%s\n",
               bookings[i].booking_number,
               bookings[i].flight_number,
               bookings[i].passenger_name,
               bookings[i].booking_time);
    }
}

案例分析

假设我们需要添加一条航班信息,并查询该航班的座位数。以下是操作步骤:

  1. 运行程序,选择添加航班信息。
  2. 输入航班号、出发地、目的地、起飞时间和座位数。
  3. 运行程序,选择查询航班信息。
  4. 输入航班号,程序将显示该航班的详细信息,包括座位数。

通过以上步骤,我们可以看到如何使用C语言实现一个简单的航班预订系统。在实际应用中,还需要考虑更多的功能和优化,例如数据持久化、多线程处理等。

总结

本文介绍了如何使用C语言实现一个简单的航班预订系统。通过学习本文,读者可以了解C语言在实现实际应用中的作用,并掌握相关编程技巧。在实际开发过程中,可以根据需求不断完善和优化系统功能。

分享到: