如何用C++实现一个航空售票系统的详细设计和代码实现?
时间: 2024-10-17 20:03:49 浏览: 19
在C++中创建一个简单的航空售票系统可以分为几个步骤,包括定义数据结构、用户界面、以及处理核心业务逻辑。由于这是一个简化的例子,我们将仅涵盖基本功能,并使用面向对象的设计原则。
首先,我们定义一个`Flight`类,包含航班编号、出发地、目的地和剩余座位等信息:
```cpp
class Flight {
public:
Flight(const std::string& flightNum, const std::string& origin, const std::string& destination, int seats)
: flightNum(flightNum), origin(origin), destination(destination), seats(seats) {}
// 其他方法,如显示航班信息、减少座位等
private:
std::string flightNum;
std::string origin;
std::string destination;
int seats;
};
```
然后,我们创建一个`Airline`类,负责维护多个航班并处理售票操作:
```cpp
class Airline {
public:
void addFlight(Flight flight);
bool bookSeat(const std::string& flightNum, const std::string& passengerName, int seatNumber);
private:
std::vector<Flight> flights;
};
void Airline::addFlight(Flight flight) {
flights.push_back(flight);
}
bool Airline::bookSeat(const std::string& flightNum, const std::string& passengerName, int seatNumber) {
for (auto& flight : flights) {
if (flight.flightNum == flightNum && flight.seats > seatNumber) {
flight.seats--;
std::cout << "Booked seat " << seatNumber << " on flight " << flightNum << " for " << passengerName << std::endl;
return true;
}
}
std::cout << "No available seats." << std::endl;
return false;
}
```
最后,我们可以创建用户交互部分,让用户选择航班并预订座位:
```cpp
int main() {
Airline airline;
while (true) {
std::string flightChoice, passengerName;
int seatChoice;
// 用户输入选项...
// 获取航班信息,确认座位等...
if (airline.bookSeat(flightChoice, passengerName, seatChoice)) {
continue; // 如果成功,继续下一轮循环
} else {
break; // 如果失败,退出循环
}
}
return 0;
}
```
阅读全文