[C++]C++课程设计实现飞机订票系统

一、任务内容

制作一个简单的飞机订票系统

二、功能要求

1.录入.

可以录入航班情况(二进制文件读取写入)

2.查询.

(1)可以查询某个航线的情况(如,输入航班号,查询抵达城市,航班票数信息,剩余票数);

(2)可以输入起飞抵达城市,查询飞机航班情况;

(3)订票:(实现多用户多个二进制文件储存)

(4)退票: 可退票,退票后修改相关数据文件;

(5)修改航班信息:当航班信息改变可以修改航班数据文件

三、程序设计图示

四、效果图

(1)主菜单

(2)信息管理菜单

(3)信息浏览菜单

(4)信息查询菜单

(5)订票退票系统

(6)版权信息

五、函数概况

(1)抽象类

(2)飞机信息类

(3)结点层

(4)链表层

(5)应用层

源码下载:

https://download.csdn.net/download/FL1768317420/89320262

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
飞机订票系统设计需要考虑以下几个方面: 1. 飞机航班信息管理:包括航班号、起降时间、出发地、目的地、航空公司、座位数等; 2. 用户信息管理:包括姓名、性别、电话号码、邮箱、证件号码等; 3. 订单信息管理:包括订单号、航班号、日期、乘客姓名、座位号、票价等; 4. 座位预订管理:包括对座位的预订、取消预订等操作。 下面是一个简单的飞机订票系统设计: ```c++ #include <iostream> #include <string> #include <vector> using namespace std; // 定义航班类 class Flight { public: string flightNo; // 航班号 string departure; // 出发地 string destination; // 目的地 string airline; // 航空公司 string departureTime; // 起飞时间 string arrivalTime; // 到达时间 int seats; // 座位数 }; // 定义用户类 class User { public: string name; // 姓名 string gender; // 性别 string phone; // 电话号码 string email; // 邮箱 string idNo; // 证件号码 }; // 定义订单类 class Order { public: string orderNo; // 订单号 string flightNo; // 航班号 string date; // 日期 string passengerName; // 乘客姓名 string seatNo; // 座位号 double price; // 票价 }; // 定义座位类 class Seat { public: string seatNo; // 座位号 bool reserved; // 是否已预订 }; // 定义飞机订票系统类 class AirlineBookingSystem { public: vector<Flight> flights; // 所有航班信息 vector<User> users; // 所有用户信息 vector<Order> orders; // 所有订单信息 // 添加航班信息 void addFlight(Flight flight) { flights.push_back(flight); } // 添加用户信息 void addUser(User user) { users.push_back(user); } // 预订座位 bool reserveSeat(string flightNo, string date, string passengerName, string seatNo) { // 查找航班 Flight* flight = findFlight(flightNo); if (flight == NULL) { return false; } // 查找座位 Seat* seat = findSeat(flight, seatNo); if (seat == NULL || seat->reserved) { return false; } // 创建订单 Order order; order.orderNo = generateOrderNo(); order.flightNo = flightNo; order.date = date; order.passengerName = passengerName; order.seatNo = seatNo; order.price = 1000; // 假设票价为1000元 // 修改座位状态 seat->reserved = true; // 添加订单 orders.push_back(order); return true; } // 取消预订 bool cancelReservation(string orderNo) { // 查找订单 Order* order = findOrder(orderNo); if (order == NULL) { return false; } // 查找航班 Flight* flight = findFlight(order->flightNo); if (flight == NULL) { return false; } // 查找座位 Seat* seat = findSeat(flight, order->seatNo); if (seat == NULL) { return false; } // 修改座位状态 seat->reserved = false; // 删除订单 for (auto it = orders.begin(); it != orders.end(); it++) { if (it->orderNo == orderNo) { orders.erase(it); break; } } return true; } private: // 查找航班 Flight* findFlight(string flightNo) { for (int i = 0; i < flights.size(); i++) { if (flights[i].flightNo == flightNo) { return &flights[i]; } } return NULL; } // 查找座位 Seat* findSeat(Flight* flight, string seatNo) { for (int i = 0; i < flight->seats; i++) { if (flight->seats[i].seatNo == seatNo) { return &flight->seats[i]; } } return NULL; } // 查找订单 Order* findOrder(string orderNo) { for (int i = 0; i < orders.size(); i++) { if (orders[i].orderNo == orderNo) { return &orders[i]; } } return NULL; } // 生成订单号 string generateOrderNo() { // 简单地返回当前订单数+1作为订单号 return to_string(orders.size() + 1); } }; int main() { AirlineBookingSystem bookingSystem; // 添加航班信息 Flight flight1; flight1.flightNo = "MU5123"; flight1.departure = "上海"; flight1.destination = "北京"; flight1.airline = "东方航空"; flight1.departureTime = "8:00"; flight1.arrivalTime = "10:00"; flight1.seats = 100; for (int i = 0; i < flight1.seats; i++) { Seat seat; seat.seatNo = "A" + to_string(i + 1); seat.reserved = false; flight1.seats.push_back(seat); } bookingSystem.addFlight(flight1); // 添加用户信息 User user1; user1.name = "张三"; user1.gender = "男"; user1.phone = "13800000001"; user1.email = "zhangsan@example.com"; user1.idNo = "310101198001010001"; bookingSystem.addUser(user1); // 预订座位 bookingSystem.reserveSeat("MU5123", "2022-01-01", "张三", "A1"); // 取消预订 bookingSystem.cancelReservation("1"); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1768317420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值