引言
飞机订票系统是航空行业中不可或缺的一部分,它不仅方便了旅客的出行,也为航空公司带来了巨大的经济效益。在这个教程中,我们将使用C语言来编写一个简单的飞机订票系统,帮助你理解编程的基本概念和流程。通过这个实战项目,你将学会如何设计程序、实现功能,并解决实际问题。
系统需求分析
在开始编写代码之前,我们需要对飞机订票系统进行需求分析。以下是我们需要实现的功能:
- 显示菜单,供用户选择操作。
- 查询航班信息。
- 预订机票。
- 取消预订。
- 显示预订列表。
- 退出系统。
数据结构设计
为了实现上述功能,我们需要设计合适的数据结构。以下是我们使用的数据结构:
航班信息结构体(Flight):
- 航班号
- 起飞城市
- 目的地
- 出发时间
- 座位数量
预订信息结构体(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");
}
系统测试
为了验证我们编写的飞机订票系统是否正常运行,我们可以进行以下测试:
- 测试查询航班信息功能。
- 测试预订机票功能。
- 测试取消预订功能。
- 测试显示预订列表功能。
总结
通过这个实战教程,你学会了如何使用C语言编写一个简单的飞机订票系统。这个项目可以帮助你巩固编程基础知识,并提高你的实际问题解决能力。在编写程序的过程中,你可能遇到了一些困难,但正是这些挑战让你不断成长。希望你能将所学知识应用到其他项目中,继续探索编程的乐趣。