飞机订票系统设计c++
时间: 2023-11-18 18:45:33 浏览: 78
飞机订票系统设计需要考虑以下几个方面:
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;
}
```