1.项目背景
为了免去在窗口排队买票的麻烦,飞机订票系统应运而生。用户通过该系统可以快速,详细地了解需要的信息,并提供了一个很好的购票渠道。
2.设计目的
如何合理设计不同数据结构来存储航班信息、旅客信息、订票信息等不同数据
如何合理设计不同的链表节点来封装不同的实体信息;
如何合理设计多个链表结构来管理不同实体的若干记录;
进一步强化学习链表的创建、插入、查找、修改和删除等基本操作;
进一步强化学习内存中链表数据和外部文件之间的存取操作;
如何利用time.h中的函数获取系统日期时间
3.项目功能需求
添加机票信息
能够添加机票的航班号、起飞降落时间、目的地、出发地、票价、可定的剩余票数以及折扣信息等。
查询可预订的机票信息
能够根据用户的具体需求即航班号或目的地,查询可定的机票并输出相应的机票信息,支持标准格式输出多条机票信息。
预定机票并输入个人信息
查询机票后,根据用户的选择,决定是否订票,并输入信息。
修改机票信息
能修改已经存在的机票信息。
退票
根据目的地和最早出发时间,系统可以推荐合适的机票信息
显示当前时间
系统的功能结构图
功能模块介绍
添加模块
可以连续添加多条航班信息,包括航班号、出发城市、到达城市、出发时间、到达时间、票价、折扣信息、票数
查找模块
用户在订票之前需要先查询满足自己出行需要的机票信息,本功能模块支持按照“航班号”查询和按照“目的地”查询两种方式
订票模块
输入目的地信息,可以输出所有满足该目的地的航班信息,并提示用户是否订票
修改模块
输入需要修改的航班号,可以修改航班信息
退票模块
能支持用户退票操作显示模块
显示模块可以展示所有航班信息,供旅客查看选择
推荐模块
推荐模块的功能是根据旅客输入的目的地信息和最早出发时间,向旅客推荐满足要求的航班信息,帮助旅客快速搜索符合时间要求的航班
保存模块
能将航班信息和旅客订票信息保存到磁盘文件中,再次启动系统时,则可以自动读取文件中的航班信息和旅客订票信息
时间模块
支持实时查询当前时间功能
主函数
功能设计
主函数用于实现主菜单的显示,并响应用户对菜单项的选择。
本系统的主函数主要两大功能:保存信息和菜单选择。
某个功能执行完之后,还能按任意键自动回到主菜单,便于用户进行其他操作。
主界面显示如下
添加模块
功能设计
用于对飞机班次,始发地,目的地,起飞时间,降落时间,票价,折扣以及所剩票数等信息的输入与保存。
添加模块流程图
查找模块
功能设计
用于根据输入的飞机班次或到达城市来进行查找,了解航班的信息。
提供了两种查询方式:一是根据飞机班次查询,二是根据到达城市查询。按照目的地查找机票界面
还有一些功能不再演示 如上面所述,功能齐全文章来源:https://www.toymoban.com/news/detail-776687.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// 定义结构体存储机票信息
struct Ticket {
//联系博主获取:lxt123lxp456
};
// 声明全局变量用于存储机票信息
struct Ticket tickets[50];
int totalTickets = 0;
// 添加机票信息
void addTicket() {
tickets[i].departureTime, tickets[i].arrivalTime,
tickets[i].destination, tickets[i].departureCity,
tickets[i].price, tickets[i].availableSeats, tickets[i].discount);
}
}
} else if (searchType == 2) {
printf("请输入目的地: ");
scanf("%s", searchDestination);
printf("查询结果:\n");
printf("航班号\t起飞时间\t降落时间\t目的地\t\t出发地\t\t票价\t可预订票数\t折扣信息\n");
for (int i = 0; i < totalTickets; i++) {
if (strcmp(tickets[i].destination, searchDestination) == 0) {
printf("%s\t%s\t\t%s\t\t%s\t\t%s\t\t%.2f\t%d\t\t%.2f\n",
tickets[i].flightNumber, tickets[i].departureTime, tickets[i].arrivalTime,
tickets[i].destination, tickets[i].departureCity,
tickets[i].price, tickets[i].availableSeats, tickets[i].discount);
}
}
} else {
printf("无效的查询类型!\n");
}
}
// 预定机票并输入个人信息
//联系博主获取:lxt123lxp456
// 修改机票信息
void modifyTicket() {
printf("\n修改机票信息\n");
char searchFlightNumber[20];
int selectedTicket = -1;
printf("请输入需要修改的机票航班号: ");
scanf("%s", searchFlightNumber);
for (int i = 0; i < totalTickets; i++) {
if (strcmp(tickets[i].flightNumber, searchFlightNumber) == 0) {
selectedTicket = i;
break;
}
}
if (selectedTicket == -1) {
printf("未找到匹配的机票!\n");
return;
}
struct Ticket ticket = tickets[selectedTicket];
printf("请输入新的票价: ");
scanf("%f", &ticket.price);
printf("请输入新的剩余票数: ");
scanf("%d", &ticket.availableSeats);
tickets[selectedTicket] = ticket;
printf("机票信息修改成功!\n");
}
// 退票
void cancelTicket() {
printf("\n退票\n");
char searchDestination[50];
char earliestDepartureTime[20];
int selectedTicket = -1;
printf("请输入目的地: ");
scanf("%s", searchDestination);
printf("请输入最早出发时间: ");
scanf("%s", earliestDepartureTime);
for (int i = 0; i < totalTickets; i++) {
if (strcmp(tickets[i].destination, searchDestination) == 0 &&
strcmp(tickets[i].departureTime, earliestDepartureTime) >= 0) {
selectedTicket = i;
break;
}
}
if (selectedTicket == -1) {
printf("未找到匹配的退票机票!\n");
return;
}
struct Ticket ticket = tickets[selectedTicket];
// 增加可预订票数
ticket.availableSeats++;
tickets[selectedTicket] = ticket;
printf("退票成功!\n");
printf("退票信息:\n");
printf("航班号: %s\n", ticket.flightNumber);
printf("出发地: %s\n", ticket.departureCity);
printf("目的地: %s\n", ticket.destination);
printf("票价: %.2f\n", ticket.price);
printf("剩余票数: %d\n", ticket.availableSeats);
}
// 推荐合适的机票信息
// 显示当前时间
void displayCurrentTime() {
// 获取当前系统时间并进行格式化输出
time_t current_time;
char* c_time_string;
current_time = time(NULL);
c_time_string = ctime(¤t_time);
printf("\n当前时间: %s", c_time_string);
}
int main() {
int choice;
do {
printf("\n---------------------\n");
printf("机票预订系统\n");
printf("---------------------\n");
printf("1. 添加机票信息\n");
printf("2. 查询机票信息\n");
printf("3. 预订机票并输入个人信息\n");
printf("4. 修改机票信息\n");
printf("5. 退票\n");
printf("6. 推荐合适的机票信息\n");
printf("7. 显示当前时间\n");
printf("0. 退出系统\n");
printf("---------------------\n");
printf("请选择操作: ");
scanf("%d", &choice);
printf("---------------------\n");
//联系博主获取
} while (choice != 0);
return 0;
}
需要全部代码可以联系我:lxt123lxp456 制作不易 伸手党勿扰文章来源地址https://www.toymoban.com/news/detail-776687.html
到了这里,关于【c/c++飞机订票系统】c/c++飞机订票系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!