只用c++的面向对象和函数来写一个可以存文本文件得飞机订票管理系统的程序
时间: 2024-02-22 16:57:01 浏览: 155
基于C++的航空订票系统
3星 · 编辑精心推荐
好的,我可以为您提供一个基本的飞机订票管理系统程序的框架,您可以根据需要进行修改和完善。以下是示例代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Flight {
private:
string flightNo; // 航班号
string departure; // 出发地
string destination; // 目的地
int seatNum; // 座位总数
int bookedNum; // 已预订座位数
public:
Flight() {} // 构造函数
Flight(string no, string dep, string des, int num) {
flightNo = no;
departure = dep;
destination = des;
seatNum = num;
bookedNum = 0;
}
string getFlightNo() { return flightNo; }
string getDeparture() { return departure; }
string getDestination() { return destination; }
int getSeatNum() { return seatNum; }
int getBookedNum() { return bookedNum; }
void bookSeat() {
if (bookedNum < seatNum) {
bookedNum++;
cout << "预订成功!" << endl;
} else {
cout << "座位已满,预订失败!" << endl;
}
}
};
class Airline {
private:
Flight* flights; // 航班数组
int flightNum; // 航班数量
public:
Airline() { flights = NULL; flightNum = 0; } // 构造函数
~Airline() { delete[] flights; } // 析构函数
void init() {
// 从文件读取航班信息并初始化航班数组
ifstream infile("flights.txt");
if (!infile) {
cout << "文件打开失败!" << endl;
return;
}
infile >> flightNum;
flights = new Flight[flightNum];
for (int i = 0; i < flightNum; i++) {
string no, dep, des;
int num;
infile >> no >> dep >> des >> num;
flights[i] = Flight(no, dep, des, num);
}
infile.close();
}
void displayFlights() {
// 显示所有航班信息
cout << "航班信息:" << endl;
for (int i = 0; i < flightNum; i++) {
cout << "航班号:" << flights[i].getFlightNo() << endl;
cout << "出发地:" << flights[i].getDeparture() << endl;
cout << "目的地:" << flights[i].getDestination() << endl;
cout << "总座位数:" << flights[i].getSeatNum() << endl;
cout << "已预订座位数:" << flights[i].getBookedNum() << endl;
cout << endl;
}
}
void bookSeat(string no) {
// 根据航班号预订座位
bool found = false;
for (int i = 0; i < flightNum; i++) {
if (no == flights[i].getFlightNo()) {
flights[i].bookSeat();
found = true;
break;
}
}
if (!found) {
cout << "未找到该航班号,请重新输入!" << endl;
}
}
};
int main() {
Airline airline;
airline.init();
cout << "欢迎使用飞机订票管理系统!" << endl;
while (true) {
int choice;
cout << "请选择操作:1.查看航班信息 2.预订座位 3.退出程序" << endl;
cin >> choice;
if (choice == 1) {
airline.displayFlights();
} else if (choice == 2) {
string no;
cout << "请输入航班号:" << endl;
cin >> no;
airline.bookSeat(no);
} else if (choice == 3) {
break;
} else {
cout << "输入错误,请重新输入!" << endl;
}
}
cout << "程序已退出!" << endl;
return 0;
}
```
该程序使用了面向对象编程的思想,定义了 Flight 和 Airline 两个类,分别表示航班和航空公司。Flight 类中包含航班号、出发地、目的地、座位总数和已预订座位数等信息,以及预订座位的方法。Airline 类中包含一个 Flight 类型的数组和航班数量,以及初始化航班数组、显示所有航班信息和预订座位等方法。在 main 函数中,首先创建一个 Airline 对象并初始化航班信息,然后根据用户选择执行不同的操作,直到用户选择退出程序。
需要注意的是,该程序只是一个示例,可能并不能完全满足您的需求,您需要根据实际情况进行修改和完善。同时,该程序只是将航班信息保存在文件中,没有进行数据加密和安全检查,如果需要更高的安全性,还需要进行进一步的加密和检查。
阅读全文