在这个数字化的时代,编程已经成为了一种必备的技能。C语言作为一种历史悠久且功能强大的编程语言,在系统软件、嵌入式系统等领域有着广泛的应用。今天,我们就来一起用C语言绘制一个简单的航班订票程序,让你轻松掌握编程的乐趣!
一、程序设计思路
在开始编写代码之前,我们需要明确航班订票程序的功能和需求。以下是我们设计航班订票程序的基本思路:
- 用户界面:提供简单的文本界面,让用户选择航班信息查询、预订、取消等功能。
- 航班信息管理:存储航班信息,包括航班号、起飞时间、到达时间、座位数等。
- 用户信息管理:存储用户信息,包括用户姓名、联系方式等。
- 订单管理:实现查询、预订、取消订单等功能。
二、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语言编程,开启编程之旅!