飞机订票系统C语言实战教程:轻松学会编写你的订票程序

2026-11-10 0 阅读

引言

飞机订票系统是航空行业中不可或缺的一部分,它不仅方便了旅客的出行,也为航空公司带来了巨大的经济效益。在这个教程中,我们将使用C语言来编写一个简单的飞机订票系统,帮助你理解编程的基本概念和流程。通过这个实战项目,你将学会如何设计程序、实现功能,并解决实际问题。

系统需求分析

在开始编写代码之前,我们需要对飞机订票系统进行需求分析。以下是我们需要实现的功能:

  1. 显示菜单,供用户选择操作。
  2. 查询航班信息。
  3. 预订机票。
  4. 取消预订。
  5. 显示预订列表。
  6. 退出系统。

数据结构设计

为了实现上述功能,我们需要设计合适的数据结构。以下是我们使用的数据结构:

  1. 航班信息结构体(Flight):

    • 航班号
    • 起飞城市
    • 目的地
    • 出发时间
    • 座位数量
  2. 预订信息结构体(Reservation):

    • 航班号
    • 乘客姓名
    • 乘客电话
    • 预订座位号

系统实现

1. 显示菜单

void showMenu() {
    printf("欢迎使用飞机订票系统\n");
    printf("1. 查询航班信息\n");
    printf("2. 预订机票\n");
    printf("3. 取消预订\n");
    printf("4. 显示预订列表\n");
    printf("5. 退出系统\n");
    printf("请输入你的选择:");
}

2. 查询航班信息

void queryFlight(Flight flights[], int size) {
    int i;
    printf("航班号\t起飞城市\t目的地\t出发时间\t座位数量\n");
    for (i = 0; i < size; i++) {
        printf("%s\t%s\t%s\t%s\t%d\n", flights[i].flightNo, flights[i].departureCity, flights[i].destination, flights[i].departureTime, flights[i].seats);
    }
}

3. 预订机票

void bookTicket(Flight flights[], int size, Reservation reservations[], int *resSize) {
    char flightNo[10];
    printf("请输入航班号:");
    scanf("%s", flightNo);

    int i, j;
    for (i = 0; i < size; i++) {
        if (strcmp(flights[i].flightNo, flightNo) == 0) {
            if (flights[i].seats > 0) {
                printf("请输入乘客姓名:");
                char name[50];
                scanf("%s", name);

                printf("请输入乘客电话:");
                char phone[20];
                scanf("%s", phone);

                reservations[*resSize].flightNo = flights[i].flightNo;
                strcpy(reservations[*resSize].name, name);
                strcpy(reservations[*resSize].phone, phone);
                reservations[*resSize].seatNo = flights[i].seats;
                (*resSize)++;

                flights[i].seats--;
                printf("预订成功!\n");
                return;
            } else {
                printf("该航班无座位,请选择其他航班。\n");
                return;
            }
        }
    }
    printf("未找到该航班。\n");
}

4. 取消预订

void cancelTicket(Reservation reservations[], int resSize) {
    char name[50];
    printf("请输入乘客姓名:");
    scanf("%s", name);

    int i;
    for (i = 0; i < resSize; i++) {
        if (strcmp(reservations[i].name, name) == 0) {
            reservations[i].flightNo = "";
            strcpy(reservations[i].name, "");
            strcpy(reservations[i].phone, "");
            reservations[i].seatNo = 0;
            printf("取消预订成功!\n");
            return;
        }
    }
    printf("未找到该乘客的预订信息。\n");
}

5. 显示预订列表

void showReservations(Reservation reservations[], int resSize) {
    int i;
    printf("航班号\t乘客姓名\t乘客电话\t座位号\n");
    for (i = 0; i < resSize; i++) {
        printf("%s\t%s\t%s\t%d\n", reservations[i].flightNo, reservations[i].name, reservations[i].phone, reservations[i].seatNo);
    }
}

6. 退出系统

void exitSystem() {
    printf("感谢使用飞机订票系统,再见!\n");
}

系统测试

为了验证我们编写的飞机订票系统是否正常运行,我们可以进行以下测试:

  1. 测试查询航班信息功能。
  2. 测试预订机票功能。
  3. 测试取消预订功能。
  4. 测试显示预订列表功能。

总结

通过这个实战教程,你学会了如何使用C语言编写一个简单的飞机订票系统。这个项目可以帮助你巩固编程基础知识,并提高你的实际问题解决能力。在编写程序的过程中,你可能遇到了一些困难,但正是这些挑战让你不断成长。希望你能将所学知识应用到其他项目中,继续探索编程的乐趣。

分享到: