当前位置: 首页 > news >正文

航空公司管理系统(迷你版12306)

要求

今天分享一个之前辅导留学生的作业,作业要求如下:

Project E: Airways Management System
Overall description:
Your team is employed by an Airways company for the implementation of a computer
system responsible for a large part of the operation of the company.
Customer specifications:
The system must be able to store the information of planes, flights and passengers of
the company during the years of its operation. There are two types of planes P62 &
P124 with rectangular arrangements of 6*2 & 12*4 seats, respectively. The sources
and destinations of the currently available flights of the company (for simplicity,
assume only direct flights) are allocated from a set of city airports which can be
potentially extended. The different passengers can be allocated to specific flights and
seats.
The system should be able to provide functionality to the different users listed below:
1. An administrator who can include new flights, prices, dates, airports and perhaps
new planes for each of the two available types.
2. A ticket agent who can flexibly search for a specific flight inquired by a customer.
When the customer reserves or books a ticket, then the required details must be stored.
Such information includes flight id, payment details, expiration date of reservation,
route, allocated seat, viewing facilities of the seating plan, etc. Facilities to amend this
information must be provided.
3. A manager who can retrieve statistics about the company’s operation, such as the
number of planes for each type, total passengers per flight, total revenue, etc.

功能主要有3个模块:
1.管理员模块,管理员可以管理新航班、价格、日期、机场等。

2.票务代理模块,可以灵活搜索客户查询的航班信息。
这些信息包括航班id、付款详细信息、预订截止日期、,

路线、分配的座位、座位计划的观看设施等。

客户可以进行预定,修改以及退票操作。

3.统计模块:可以检索航空公司运营的统计数据,例如

每种类型的飞机数量、每次航班的乘客总数、总收入等。
 

核心代码

数据结构

struct Plane{string ID;int type;//the type of the plane, 1-P62,2-P124string src;//start citystring dst;//destination citystring time;//time to set outint seatNum;//number of seats in a compartmentint remainTicket;//the remain ticket of a planeint price;//the price of a ticketPlane *next;Plane(){ next = NULL; }
};struct Ticket
{string passengerName;//the passenger namestring  planeID;int price;string expirationDate;//the expiration date of the ticketstring src;//start citystring dst;//destination cityint seatNum; Ticket* next;Ticket(){ next = NULL; }
};struct PlaneHead{Plane *head;int num;
};struct TicketHead{Ticket *head;int num;
};

增加航班

void addNewPlane(PlaneHead *pchead){string ID;Plane *temp;Plane *pc = pchead->head;int loopFlag = 0;cout << "Add a new plane!" << endl;cout << "input the new plane's ID:";cin >> ID;if (searchByPlaneID(pchead, ID) != NULL){cout << "This plane ID is existed! Fail to add a new plane, please retry!" << endl;return;}temp = new Plane;temp->ID = ID;do{cout << "Please input the new plane's type(1 or 2):";cin >> temp->type;loopFlag = 0;if (temp->type != 1 && temp->type != 2){cout << "error type!the type should be either 1 or 2,re-input." << endl;loopFlag = 1;}} while (loopFlag);do{cout << "Please input the new plane's start city:";cin >> temp->src;cout << "Please input the new plane's destination city:";cin >> temp->dst;loopFlag = 0;if (temp->src == temp->dst){cout << "the start city %s and destination %s are the same!,please re-input!" << endl;loopFlag = 1;}} while (loopFlag);cout << "Please input the new plane's start time(eg. 12:00 ):";cin >> temp->time;cout << "Please input the new plane's ticket price:";cin >> temp->price;if (temp->type == P62)temp->seatNum = 6 * 2;elsetemp->seatNum = 12 * 4;temp->remainTicket = temp->seatNum;temp->next = NULL;if (pc == NULL)pchead->head = temp;else{while (pc->next)pc = pc->next;pc->next = temp;}pchead->num++;cout << "Add the new plane successfully!" << endl;
}

修改航班

void changePlaneInfo(PlaneHead *pchead){int loopFlag = 0;string ID;char choose;Plane *pc;cout << "please input the plane's ID you want to change: ";cin >> ID;pc = searchByPlaneID(pchead, ID);if (pc == NULL){cout << "The plane ID is not existed!" << endl;return;}cout << "Tips:  you can only change a plane's ticket price,start time,start city and destination city information!" << endl;do{cout << "The plane " << ID << "'s start city: " << pc->src << " ,you want to change?(y/n) ";cin >> choose;if (choose == 'Y' || choose == 'y'){cout << "Please input the new start city: ";cin >> pc->src;}cout << "The plane " << ID << "'s destination: " << pc->dst << " ,you want to change?(y/n) ";cin >> choose;if (choose == 'Y' || choose == 'y'){cout << "Please input the new destination: ";cin >> pc->dst;}if (pc->src == pc->dst){cout << "the start city and destination are the same!" << endl;loopFlag = 1;}} while (loopFlag);cout << "The plane " << ID << "'s start time: " << pc->time << " ,you want to change?(y/n) ";cin >> choose;if (choose == 'Y' || choose == 'y'){cout << "Please input the new start time: ";cin >> pc->time;}cout << "The plane " << ID << "'s price: " << pc->price << " ,you want to change?(y/n) ";cin >> choose;if (choose == 'Y' || choose == 'y'){cout << "Please input the new price: ";cin >> pc->price;}cout << "change successfully!" << endl;
}

根据航班ID搜索航班

Plane *searchByPlaneID(PlaneHead *pchead, string ID){Plane *pc = pchead->head;while (pc){if (pc->ID == ID)return pc;//find the IDpc = pc->next;}return NULL;
}

由于篇幅有限,此处不在贴代码了。如需要完整代码,可以搜索抖音:天天coding。

私信免费获得完整代码以及技术指导。

功能测试

可以搜索抖音:天天coding,观看完整演示视频。

相关文章:

航空公司管理系统(迷你版12306)

要求 今天分享一个之前辅导留学生的作业&#xff0c;作业要求如下&#xff1a; Project E: Airways Management System Overall description: Your team is employed by an Airways company for the implementation of a computer system responsible for a large part of th…...

嵌入式硬件电路原理图之跟随电路

描述 电压跟随电路 电压跟随器是共集电极电路&#xff0c;信号从基极输入&#xff0c;射极输出&#xff0c;故又称射极输出器。基极电压与集电极电压相位相同&#xff0c;即输入电压与输出电压同相。这一电路的主要特点是&#xff1a;高输入电阻、低输出电阻、电压增益近似为…...

学习录

概述 这几年在迷茫中看了不少资料&#xff0c;有觉得写得很棒的&#xff0c;也有写的很糟糕的。所以一直想写这块的总结来进行归纳&#xff0c;同时也希望能给其他处于迷茫中的朋友提供一份高质量的资料列表(也许一个读者也没有)&#xff0c;以下清单个人觉得值得反复看以及思…...

MongoDB索引详解

概述 索引是一种用来快速查询数据的数据结构。BTree 就是一种常用的数据库索引数据结构&#xff0c;MongoDB 采用 BTree 做索引&#xff0c;索引创建 colletions 上。MongoDB 不使用索引的查询&#xff0c;先扫描所有的文档&#xff0c;再匹配符合条件的文档。使用索引的查询&…...

一文搞定JVM内存模型

鲁大猿&#xff0c;寻精品资料&#xff0c;帮你构建Java全栈知识体系 www.jiagoujishu.cn 运行时数据区 内存是非常重要的系统资源&#xff0c;是硬盘和 CPU 的中间仓库及桥梁&#xff0c;承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、…...

月报总结|Moonbeam 12月份大事一览

一转眼已经到年底啦。本月&#xff0c;Moonbeam基金会发布四个最新战略重点&#xff1a;跨链解决方案、游戏、真实世界资产&#xff08;RWA&#xff09;、新兴市场。其中在新兴市场方面&#xff0c;紧锣密鼓地推出与巴西公司Grupo RO的战略合作。 用户教育方面&#xff0c;为了…...

现有网络模型的使用及修改(VGG16为例)

VGG16 修改默认路径 import os os.environ[TORCH_HOME] rD:\Pytorch\pythonProject\vgg16 # 下载位置太大了&#xff08;140多G&#xff09;不提供直接下载 train_set torchvision.datasets.ImageNet(root./data_image_net, splittrain, downloadTrue, transformtorchvis…...

MacOS M1/M2 Go Debug 配置

前言 换电脑&#xff0c;Go 环境带来一些麻烦&#xff0c;耽误很多时间&#xff0c;稍作记录。 原始电脑是 Mac 旧款&#xff0c;CPU x86 构型&#xff0c;新电脑 M2&#xff0c;因为旧电脑里本地文件很多&#xff0c;为了简化搬迁&#xff0c;还是用了 Mac 自带的迁移&#x…...

paddlehub 文本检测使用

PaddleHub负责模型的管理、获取和预训练模型的使用。 参考&#xff1a;https://github.com/PaddlePaddle/PaddleHub/tree/develop/modules/image/text_recognition/chinese_text_detection_db_server import paddlehub as hub import cv2 # from utils import cv_show import…...

负载均衡概述

负载均衡 负载均衡 建立在现有网络结构之上&#xff0c;它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 四层负载均衡 vs 七层负载均衡 四层负载均衡&#xff08;目标地址和端口交换&#xff09;…...

C# WinForm MessageBox自定义按键文本 COM组件版

c# 更改弹窗MessageBox按钮文字_c# messagebox.show 字体-CSDN博客 需要用到大佬上传到百度云盘的Hook类&#xff0c;在大佬给的例子的基础上改动了点。 应用时自己加GUID和ProgID。 组件实现&#xff1a; using System; using System.Collections.Generic; using System.L…...

基于SpringBoot微信小程序的宠物美容预约系统设计与实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容&#xff1a;SpringBoot、Vue、SSM、HLM…...

在 docker 容器中配置双网卡,解决通讯的问题

目录 1. 查看当前网络信息 2. 创建自定义网络桥 3. 创建双网卡模式 4. 删除默认网卡 已经创建好了的 Docker 容器&#xff0c;要修改它的IP比较麻烦&#xff0c;网上找了几种不同的方法&#xff0c;经过试验都没有成功&#xff0c;下面通过配置双网上来解决 IP 的问题。…...

uniapp中uview组件库CircleProgress 圆形进度条丰富的使用方法

目录 #内部实现 #平台差异说明 #基本使用 #设置圆环的动画时间 #API #Props 展示操作或任务的当前进度&#xff0c;比如上传文件&#xff0c;是一个圆形的进度环。 #内部实现 组件内部通过canvas实现&#xff0c;有更好的性能和通用性。 #平台差异说明 AppH5微信小程…...

Linux操作系统基础(12):Linux的Shell解释器

1. Shell的介绍 在Linux中&#xff0c;Shell 是一种命令行解释器&#xff0c;它是用户与操作系统内核之间的接口&#xff0c;它负责解释用户输入的命令&#xff0c;并将其转换成系统调用或其他操作系统能够执行的指令。 Shell 提供了一种交互式的方式来与操作系统进行通信&am…...

Android开发编程从入门到精通,安卓技术从初级到高级全套教学

一、教程描述 本套教程基于JDK1.8版本&#xff0c;教学内容主要有&#xff0c;1、环境搭建&#xff0c;UI布局&#xff0c;基础UI组件&#xff0c;高级UI组件&#xff0c;通知&#xff0c;自定义组件&#xff0c;样式主题&#xff1b;2、四大组件&#xff0c;Intent&#xff0…...

HackTheBox - Medium - Linux - BroScience

BroScience BroScience 是一款中等难度的 Linux 机器&#xff0c;其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力&#xff0c;攻击者可以深入了解帐户激活码的生成方式&#xff0c;从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后&a…...

`nginx/conf/nginx.conf`最简配置说明

nginx/conf/nginx.conf最简配置说明 代码 nginx/conf/nginx.conf worker_processes 1; #工作进程个数;一般对应CPU内核对应一个worker_processes;太多反而让效率变差;# 事件驱动模块; events {worker_connections 1024;#设置每个worker_processes对应多少个联接; }# 网络请…...

商务智能|描述性统计分析与数据可视化

一、商务智能的三大方面 三个主要方面是描述性的统计分析、预测性的分析和指导性的数据分析。 A. 商务智能的知识体系下,数据分析包含了哪三个工作?商务智能体系架构里边关于数据分析的术语是什么? 商务智能的知识体系下,数据分析包含了三个工作,即描述性分析,预测性分析…...

【游记】GDKOI2024

去年稳定 Cu&#xff0c;希望今年来块 Ag。 Day − ∞ -\infty −∞ 不知道什么时候报名交钱的&#xff0c;赶紧问一问。 周四把设备送过来了。最近备战期末 选科 演讲比赛&#xff0c;有点忙不过来。 Day0 下午两点半出发&#xff0c;车程 2h。路上给小绿打肉鸽 1h 掉电…...

从“高危论文”到“安心提交”:百考通双降技术,为真实思考护航

在一个人工智能可以生成万字论文的时代&#xff0c;最讽刺的现实不是机器冒充人类&#xff0c; 而是人类因写得太像“人写的论文”&#xff0c;被当作机器。 2026年&#xff0c;无数高校学子正陷入一场无声的困境&#xff1a; 你没用AI&#xff0c;却因逻辑清晰被标记&#xf…...

GitHub Desktop中文汉化终极指南:三分钟解锁全中文Git操作体验

GitHub Desktop中文汉化终极指南&#xff1a;三分钟解锁全中文Git操作体验 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop的英文界面而烦恼吗&am…...

DIY电源改造必备:TL594与SG3524 PWM控制器实战对比(附电路图)

DIY电源改造实战&#xff1a;TL594与SG3524 PWM控制器深度对比与电路设计指南 1. 从零认识PWM控制器的核心价值 在电子爱好者的工作台上&#xff0c;电源改造项目总是充满魅力与挑战。无论是将旧电脑电源改造成可调实验室电源&#xff0c;还是为自制音响系统设计高效供电模块&a…...

告别ZooKeeper!ClickHouse Keeper双机集群搭建全攻略(含常见报错解决方案)

ClickHouse Keeper双机集群实战指南&#xff1a;从零搭建到故障排查 1. 为什么选择ClickHouse Keeper替代ZooKeeper 在ClickHouse集群架构中&#xff0c;协调服务一直扮演着关键角色。传统方案依赖ZooKeeper实现分布式协调&#xff0c;但这种方式存在几个明显痛点&#xff1a; …...

基于S7-200 PLC与组态王的大棚控制系统:产品原理图与IO分配详解

基于S7-200 PLC和组态王温室大棚控制 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面 菜农张叔上周还给我打电话吐槽&#xff1a;“小王啊&#xff0c;上周那场降温加突然转晴&#xff0c;我三点爬起来盖半层棉被…...

QT窗口特效实战:从透明到异形控件的全方位实现指南

1. 从零开始理解QT窗口特效 第一次接触QT窗口特效时&#xff0c;我被那些酷炫的透明和异形界面深深吸引。记得当时看到Mac OS X的Dock栏那种毛玻璃效果&#xff0c;就特别想在自己的QT应用中实现类似效果。经过多年实战&#xff0c;我发现QT实现这些特效其实比想象中简单得多。…...

VS Code终端切换全攻略:从PowerShell到CMD的保姆级教程(含常见问题解决)

VS Code终端切换全攻略&#xff1a;从PowerShell到CMD的保姆级教程&#xff08;含常见问题解决&#xff09; 在开发者的日常工作中&#xff0c;终端是不可或缺的工具。VS Code作为最受欢迎的代码编辑器之一&#xff0c;其内置终端功能强大且高度可定制。然而&#xff0c;许多开…...

终极免费EVE舰船配置神器:Pyfa完整实战指南

终极免费EVE舰船配置神器&#xff1a;Pyfa完整实战指南 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa 在EVE Online这个充满挑战的宇宙中&#xff0c;打造一艘完美的…...

基于spring和vue的企业原材料库存盘点食品厂管理系统

目录技术选型与架构设计核心功能模块划分数据库设计要点关键技术实现前端交互优化系统安全措施测试与部署方案扩展性设计项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作技术选型与架构设计 后端采用Spring Boot框架&#xff0…...

新手避坑指南:用Python+ROS搞定AVP项目中的.bag数据读取与深度图转点云

从零开始处理AVP项目中的.bag数据&#xff1a;深度图与点云实战解析 停车场里75个RealSense相机同时工作&#xff0c;产生的.bag数据像一座未经开采的金矿——但当你第一次打开这些文件时&#xff0c;可能会感到无从下手。作为刚接触ROS和点云处理的新手&#xff0c;我清楚地记…...