掌握C语言,轻松绘制航班订票程序图解秘!

2026-10-25 0 阅读

在这个数字化的时代,编程已经成为了一种必备的技能。C语言作为一种历史悠久且功能强大的编程语言,在系统软件、嵌入式系统等领域有着广泛的应用。今天,我们就来一起用C语言绘制一个简单的航班订票程序,让你轻松掌握编程的乐趣!

一、程序设计思路

在开始编写代码之前,我们需要明确航班订票程序的功能和需求。以下是我们设计航班订票程序的基本思路:

  1. 用户界面:提供简单的文本界面,让用户选择航班信息查询、预订、取消等功能。
  2. 航班信息管理:存储航班信息,包括航班号、起飞时间、到达时间、座位数等。
  3. 用户信息管理:存储用户信息,包括用户姓名、联系方式等。
  4. 订单管理:实现查询、预订、取消订单等功能。

二、C语言编程实现

1. 定义数据结构

首先,我们需要定义一些数据结构来存储航班信息和用户信息。

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

#define MAX_FLIGHTS 10
#define MAX_USERS 100

// 航班信息结构体
typedef struct {
    char flight_number[10];
    char departure_time[20];
    char arrival_time[20];
    int seat_number;
} Flight;

// 用户信息结构体
typedef struct {
    char name[50];
    char phone_number[20];
} User;

// 航班信息数组
Flight flights[MAX_FLIGHTS];

// 用户信息数组
User users[MAX_USERS];

2. 初始化数据

接下来,我们需要初始化一些基本的航班信息和用户信息。

void init_data() {
    strcpy(flights[0].flight_number, "CA123");
    strcpy(flights[0].departure_time, "10:00");
    strcpy(flights[0].arrival_time, "12:00");
    flights[0].seat_number = 100;

    strcpy(users[0].name, "张三");
    strcpy(users[0].phone_number, "13800138000");
}

3. 用户界面

为了方便用户操作,我们需要编写一个简单的文本界面。

void display_menu() {
    printf("1. 查询航班信息\n");
    printf("2. 预订航班\n");
    printf("3. 取消预订\n");
    printf("4. 退出\n");
    printf("请输入你的选择:");
}

4. 查询航班信息

查询航班信息功能需要遍历航班信息数组,并输出符合条件的航班信息。

void search_flights() {
    char flight_number[10];
    printf("请输入航班号:");
    scanf("%s", flight_number);

    for (int i = 0; i < MAX_FLIGHTS; i++) {
        if (strcmp(flights[i].flight_number, flight_number) == 0) {
            printf("航班号:%s\n", flights[i].flight_number);
            printf("起飞时间:%s\n", flights[i].departure_time);
            printf("到达时间:%s\n", flights[i].arrival_time);
            printf("座位数:%d\n", flights[i].seat_number);
            break;
        }
    }
}

5. 预订航班

预订航班功能需要检查座位数是否足够,并将用户信息添加到订单中。

void book_flight() {
    char flight_number[10];
    char name[50];
    char phone_number[20];
    int index;

    printf("请输入航班号:");
    scanf("%s", flight_number);

    for (int i = 0; i < MAX_FLIGHTS; i++) {
        if (strcmp(flights[i].flight_number, flight_number) == 0) {
            index = i;
            break;
        }
    }

    if (index == -1) {
        printf("航班号不存在!\n");
        return;
    }

    if (flights[index].seat_number <= 0) {
        printf("航班已满!\n");
        return;
    }

    printf("请输入姓名:");
    scanf("%s", name);

    printf("请输入手机号:");
    scanf("%s", phone_number);

    strcpy(users[MAX_USERS].name, name);
    strcpy(users[MAX_USERS].phone_number, phone_number);

    flights[index].seat_number--;
    printf("预订成功!\n");
}

6. 取消预订

取消预订功能需要检查订单是否存在,并将座位数恢复。

void cancel_flight() {
    char flight_number[10];
    char name[50];
    int index, user_index;

    printf("请输入航班号:");
    scanf("%s", flight_number);

    for (int i = 0; i < MAX_FLIGHTS; i++) {
        if (strcmp(flights[i].flight_number, flight_number) == 0) {
            index = i;
            break;
        }
    }

    if (index == -1) {
        printf("航班号不存在!\n");
        return;
    }

    printf("请输入姓名:");
    scanf("%s", name);

    for (int i = 0; i < MAX_USERS; i++) {
        if (strcmp(users[i].name, name) == 0) {
            user_index = i;
            break;
        }
    }

    if (user_index == -1) {
        printf("用户不存在!\n");
        return;
    }

    flights[index].seat_number++;
    printf("取消预订成功!\n");
}

7. 主函数

最后,我们需要编写主函数来控制程序的流程。

int main() {
    int choice;

    init_data();

    while (1) {
        display_menu();
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                search_flights();
                break;
            case 2:
                book_flight();
                break;
            case 3:
                cancel_flight();
                break;
            case 4:
                return 0;
            default:
                printf("输入错误!\n");
        }
    }

    return 0;
}

通过以上步骤,我们就完成了一个简单的航班订票程序。当然,这只是一个入门级别的示例,实际开发中还需要考虑更多因素,如数据库操作、异常处理等。希望这个示例能帮助你更好地理解C语言编程,开启编程之旅!

分享到: