航空订票系统C语言实现:从入门到实践案例详解

2026-10-14 0 阅读

引言

随着互联网技术的飞速发展,航空订票系统已经成为人们出行的重要工具。本文将带您深入了解航空订票系统的C语言实现,从基础入门到实践案例,助您一步步掌握航空订票系统的开发技巧。

第一部分:C语言基础

1.1 C语言简介

C语言是一种广泛应用于系统软件、嵌入式系统、网络应用等领域的编程语言。它具有简洁、高效、易学易用的特点,是学习其他编程语言的基础。

1.2 数据类型与变量

在C语言中,数据类型决定了变量能够存储的数据类型和大小。常见的有整型、浮点型、字符型等。

int age = 18;
float salary = 5000.0;
char gender = 'M';

1.3 运算符与表达式

C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。表达式是由运算符和操作数组成的式子。

int a = 10, b = 5;
int sum = a + b; // 算术运算符
if (a > b) {
    printf("a 大于 b\n"); // 关系运算符
}

第二部分:航空订票系统设计

2.1 系统功能模块

航空订票系统主要包括以下功能模块:

  • 用户注册与登录
  • 查询航班信息
  • 预订机票
  • 支付机票
  • 查询订单

2.2 数据库设计

根据系统功能,设计相应的数据库表,如用户表、航班信息表、订单表等。

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50),
    password VARCHAR(50)
);

CREATE TABLE flights (
    id INT PRIMARY KEY AUTO_INCREMENT,
    flight_number VARCHAR(20),
    departure VARCHAR(50),
    arrival VARCHAR(50),
    departure_time DATETIME,
    arrival_time DATETIME,
    price DECIMAL(10, 2)
);

CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    flight_id INT,
    price DECIMAL(10, 2),
    order_time DATETIME,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (flight_id) REFERENCES flights(id)
);

2.3 系统流程图

绘制系统流程图,明确系统各模块之间的逻辑关系。

第三部分:C语言实现

3.1 用户注册与登录

实现用户注册与登录功能,包括用户信息的存储和验证。

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

struct User {
    int id;
    char username[50];
    char password[50];
};

int main() {
    struct User users[100];
    int user_count = 0;

    // 用户注册
    printf("请输入用户名:");
    scanf("%s", users[user_count].username);
    printf("请输入密码:");
    scanf("%s", users[user_count].password);
    users[user_count].id = user_count + 1;
    user_count++;

    // 用户登录
    printf("请输入用户名:");
    char input_username[50];
    scanf("%s", input_username);
    printf("请输入密码:");
    char input_password[50];
    scanf("%s", input_password);

    for (int i = 0; i < user_count; i++) {
        if (strcmp(users[i].username, input_username) == 0 && strcmp(users[i].password, input_password) == 0) {
            printf("登录成功!\n");
            return 0;
        }
    }

    printf("用户名或密码错误!\n");
    return 0;
}

3.2 查询航班信息

实现查询航班信息功能,包括查询所有航班、查询特定航班等。

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

struct Flight {
    int id;
    char flight_number[20];
    char departure[50];
    char arrival[50];
    char departure_time[20];
    char arrival_time[20];
    float price;
};

int main() {
    struct Flight flights[] = {
        {1, "CA123", "北京", "上海", "2021-11-01 08:00", "2021-11-01 10:00", 500.0},
        {2, "MU567", "上海", "广州", "2021-11-01 09:00", "2021-11-01 12:00", 600.0},
        // ...
    };
    int flight_count = sizeof(flights) / sizeof(flights[0]);

    // 查询所有航班
    printf("所有航班信息如下:\n");
    for (int i = 0; i < flight_count; i++) {
        printf("航班号:%s,出发:%s,到达:%s,出发时间:%s,到达时间:%s,价格:%f\n",
            flights[i].flight_number, flights[i].departure, flights[i].arrival,
            flights[i].departure_time, flights[i].arrival_time, flights[i].price);
    }

    // 查询特定航班
    char input_flight_number[20];
    printf("请输入航班号:");
    scanf("%s", input_flight_number);

    for (int i = 0; i < flight_count; i++) {
        if (strcmp(flights[i].flight_number, input_flight_number) == 0) {
            printf("航班号:%s,出发:%s,到达:%s,出发时间:%s,到达时间:%s,价格:%f\n",
                flights[i].flight_number, flights[i].departure, flights[i].arrival,
                flights[i].departure_time, flights[i].arrival_time, flights[i].price);
            return 0;
        }
    }

    printf("未找到航班!\n");
    return 0;
}

3.3 预订机票

实现预订机票功能,包括选择航班、填写乘客信息、生成订单等。

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

struct Order {
    int id;
    int user_id;
    int flight_id;
    float price;
    char order_time[20];
};

int main() {
    struct Order orders[100];
    int order_count = 0;

    // 选择航班
    struct Flight flights[] = {
        // ...
    };
    int flight_count = sizeof(flights) / sizeof(flights[0]);
    printf("请选择航班:\n");
    for (int i = 0; i < flight_count; i++) {
        printf("%d. 航班号:%s,出发:%s,到达:%s,出发时间:%s,到达时间:%s,价格:%f\n",
            i + 1, flights[i].flight_number, flights[i].departure, flights[i].arrival,
            flights[i].departure_time, flights[i].arrival_time, flights[i].price);
    }
    int input_flight_id;
    scanf("%d", &input_flight_id);

    // 填写乘客信息
    struct User user;
    printf("请输入用户名:");
    scanf("%s", user.username);
    printf("请输入密码:");
    scanf("%s", user.password);

    // 生成订单
    orders[order_count].id = order_count + 1;
    orders[order_count].user_id = user.id;
    orders[order_count].flight_id = flights[input_flight_id - 1].id;
    orders[order_count].price = flights[input_flight_id - 1].price;
    strcpy(orders[order_count].order_time, "2021-11-01 12:00");
    order_count++;

    printf("预订成功!\n");
    return 0;
}

3.4 支付机票

实现支付机票功能,包括支付方式选择、支付结果展示等。

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

int main() {
    // 支付方式选择
    printf("请选择支付方式:\n");
    printf("1. 银行卡支付\n");
    printf("2. 支付宝支付\n");
    printf("3. 微信支付\n");
    int input_payment_method;
    scanf("%d", &input_payment_method);

    // 支付结果展示
    printf("支付成功!\n");
    return 0;
}

3.5 查询订单

实现查询订单功能,包括查询所有订单、查询特定订单等。

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

struct Order {
    // ...
};

int main() {
    struct Order orders[] = {
        // ...
    };
    int order_count = sizeof(orders) / sizeof(orders[0]);

    // 查询所有订单
    printf("所有订单信息如下:\n");
    for (int i = 0; i < order_count; i++) {
        printf("订单号:%d,用户名:%s,航班号:%s,价格:%f,订单时间:%s\n",
            orders[i].id, orders[i].user_id, orders[i].flight_id, orders[i].price,
            orders[i].order_time);
    }

    // 查询特定订单
    int input_order_id;
    printf("请输入订单号:");
    scanf("%d", &input_order_id);

    for (int i = 0; i < order_count; i++) {
        if (orders[i].id == input_order_id) {
            printf("订单号:%d,用户名:%s,航班号:%s,价格:%f,订单时间:%s\n",
                orders[i].id, orders[i].user_id, orders[i].flight_id, orders[i].price,
                orders[i].order_time);
            return 0;
        }
    }

    printf("未找到订单!\n");
    return 0;
}

第四部分:实践案例

4.1 系统界面设计

使用C语言实现简单的控制台界面,展示系统功能。

4.2 数据库连接与操作

使用C语言连接MySQL数据库,实现数据的增删改查操作。

4.3 系统测试

编写测试用例,对系统功能进行测试,确保系统稳定运行。

结语

本文详细介绍了航空订票系统的C语言实现,从基础入门到实践案例,希望对您有所帮助。在开发过程中,注意代码规范、功能完善和性能优化,相信您一定能开发出一个优秀的航空订票系统。

分享到: