用C++设计一个航空订票系统‘

时间: 2024-03-26 10:38:20 浏览: 14
好的,以下是一个简单的航空订票系统的C++代码示例: ```c++ #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; // 定义航班类 class Flight { public: Flight(string name, string from, string to, double price, int capacity) : name(name), from(from), to(to), price(price), capacity(capacity) {} string getName() const { return name; } string getFrom() const { return from; } string getTo() const { return to; } double getPrice() const { return price; } int getCapacity() const { return capacity; } private: string name; string from; string to; double price; int capacity; }; // 定义订票类 class Booking { public: Booking(string name, string flightName, int numTickets) : name(name), flightName(flightName), numTickets(numTickets) {} string getName() const { return name; } string getFlightName() const { return flightName; } int getNumTickets() const { return numTickets; } private: string name; string flightName; int numTickets; }; // 定义系统类 class AirlineSystem { public: // 添加航班 void addFlight(Flight f) { flights.push_back(f); } // 订票 bool bookFlight(Booking b) { // 查找对应的航班 auto it = find_if(flights.begin(), flights.end(), [&](const Flight& f) { return f.getName() == b.getFlightName(); }); if (it == flights.end()) { return false; } // 检查是否有足够的座位 if (it->getCapacity() < b.getNumTickets()) { return false; } // 更新座位数 it->capacity -= b.getNumTickets(); // 添加订单 bookings.push_back(b); return true; } // 显示所有航班 void displayFlights() const { for (const auto& f : flights) { cout << "Flight " << f.getName() << " from " << f.getFrom() << " to " << f.getTo() << " price: " << f.getPrice() << " capacity: " << f.getCapacity() << endl; } } // 显示所有订单 void displayBookings() const { for (const auto& b : bookings) { cout << "Booking for " << b.getName() << " on flight " << b.getFlightName() << " for " << b.getNumTickets() << " tickets" << endl; } } private: vector<Flight> flights; vector<Booking> bookings; }; int main() { // 创建系统 AirlineSystem system; // 添加航班 system.addFlight(Flight("AA123", "New York", "Los Angeles", 200, 100)); system.addFlight(Flight("UA456", "Chicago", "San Francisco", 300, 50)); system.addFlight(Flight("DL789", "Boston", "Miami", 150, 200)); // 显示所有航班 system.displayFlights(); // 订票 Booking b1("John", "AA123", 2); Booking b2("Mary", "DL789", 1); Booking b3("Tom", "UA456", 3); bool success1 = system.bookFlight(b1); bool success2 = system.bookFlight(b2); bool success3 = system.bookFlight(b3); if (success1 && success2 && success3) { cout << "Bookings successful!" << endl; } else { cout << "Bookings failed!" << endl; } // 显示所有订单 system.displayBookings(); return 0; } ``` 该系统使用三个类表示航班、订票和整个系统,利用向量存储所有航班和订单。可以使用 `addFlight` 添加航班,使用 `bookFlight` 订票,使用 `displayFlights` 和 `displayBookings` 显示所有航班和订单。

相关推荐

最新推荐

recommend-type

c++课程设计(航空订票系统)

终点名、航班号、飞机号、飞行时间、订票数余票量、已订票的客户名单:包括姓名、订票量、以及等候替补的客户名单(包括姓名、所需票量);
recommend-type

航空售票系统 C++课程设计源代码

(3) 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的...
recommend-type

航空售票系统 完整版数据结构课程设计

航空售票系统一般都是以航班为单位进行管理的,一个航班用一个结点来表示。考虑到添加的方便,这些以航班为单位的结点用链表方式组成一个主目录。每个结点有四个域: (1)航班号; (2)目的地; (3)起飞时间; ...
recommend-type

航空订票系统 数据结构 VC++

1. 设计一个航班订票系统,提高对信息管理、信息查找和排序算法的应用能力 2. 全面提高学生的程序设计、开发能力 (4)、基本功能: 1. 可以录入航班信息(数据可以存储在一个数据文件中,数据结构、具体数据自定) ...
recommend-type

毕业论文-Java 航空订票系统

Java语言是一个支持网络计算的面向对象程序设计语言,吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信和多媒体数据控制等。主要特性如下:  1、面向对象性:Java语言是一个纯...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。