【c/c++飞机订票系统】c/c++飞机订票系统

1.项目背景

为了免去在窗口排队买票的麻烦,飞机订票系统应运而生。用户通过该系统可以快速,详细地了解需要的信息,并提供了一个很好的购票渠道。

2.设计目的 

如何合理设计不同数据结构来存储航班信息、旅客信息、订票信息等不同数据
如何合理设计不同的链表节点来封装不同的实体信息;
如何合理设计多个链表结构来管理不同实体的若干记录;
进一步强化学习链表的创建、插入、查找、修改和删除等基本操作;
进一步强化学习内存中链表数据和外部文件之间的存取操作;
如何利用time.h中的函数获取系统日期时间

3.项目功能需求

添加机票信息
能够添加机票的航班号、起飞降落时间、目的地、出发地、票价、可定的剩余票数以及折扣信息等。
查询可预订的机票信息
能够根据用户的具体需求即航班号或目的地,查询可定的机票并输出相应的机票信息,支持标准格式输出多条机票信息。
预定机票并输入个人信息
查询机票后,根据用户的选择,决定是否订票,并输入信息。
修改机票信息
能修改已经存在的机票信息。
退票
根据目的地和最早出发时间,系统可以推荐合适的机票信息
显示当前时间

系统的功能结构图

扫描二维码关注公众号,回复: 17348075 查看本文章

 

功能模块介绍

添加模块
可以连续添加多条航班信息,包括航班号、出发城市、到达城市、出发时间、到达时间、票价、折扣信息、票数
查找模块
用户在订票之前需要先查询满足自己出行需要的机票信息,本功能模块支持按照“航班号”查询和按照“目的地”查询两种方式
订票模块
输入目的地信息,可以输出所有满足该目的地的航班信息,并提示用户是否订票
修改模块
输入需要修改的航班号,可以修改航班信息
退票模块
能支持用户退票操作

显示模块
显示模块可以展示所有航班信息,供旅客查看选择
推荐模块
推荐模块的功能是根据旅客输入的目的地信息和最早出发时间,向旅客推荐满足要求的航班信息,帮助旅客快速搜索符合时间要求的航班
保存模块
能将航班信息和旅客订票信息保存到磁盘文件中,再次启动系统时,则可以自动读取文件中的航班信息和旅客订票信息
时间模块
支持实时查询当前时间功能

主函数

功能设计
主函数用于实现主菜单的显示,并响应用户对菜单项的选择。
本系统的主函数主要两大功能:保存信息和菜单选择。
某个功能执行完之后,还能按任意键自动回到主菜单,便于用户进行其他操作。

主界面显示如下

添加模块
功能设计
用于对飞机班次,始发地,目的地,起飞时间,降落时间,票价,折扣以及所剩票数等信息的输入与保存。
添加模块流程图

查找模块
功能设计
用于根据输入的飞机班次或到达城市来进行查找,了解航班的信息。
提供了两种查询方式:一是根据飞机班次查询,二是根据到达城市查询。

按照目的地查找机票界面

还有一些功能不再演示 如上面所述,功能齐全

#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(&current_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  制作不易 伸手党勿扰

猜你喜欢

转载自blog.csdn.net/qq_62088638/article/details/131407265