完整的 FileUtil 类代码如下:
```cpp
#include
#include
#include
#include "Flight.h"
#include "User.h"
using namespace std;
class FileUtil {
public:
static vector readFlightsFromFile(string filename);
static bool writeFlightsToFile(const vector& flights, string filename);
static bool writeUsersToFile(const vector& users, string filename);
static vector readUsersFromFile(string filename);
};
vector FileUtil::readFlightsFromFile(string filename) {
vector flights;
ifstream infile(filename);
if (!infile.is_open()) {
cout << "文件打开失败!" << endl;
return flights;
}
string line;
while (getline(infile, line)) {
Flight flight(line);
flights.push_back(flight);
}
infile.close();
return flights;
}
bool FileUtil::writeFlightsToFile(const vector& flights, string filename) {
ofstream outfile(filename);
if (!outfile.is_open()) {
cout << "文件打开失败!" << endl;
return false;
}
for (const auto& flight : flights) {
outfile << flight.toString() << endl;
}
outfile.close();
return true;
}
bool FileUtil::writeUsersToFile(const vector& users, string filename) {
ofstream outfile(filename);
if (!outfile.is_open()) {
cout << "文件打开失败!" << endl;
return false;
}
for (const auto& user : users) {
outfile << user.toString() << endl;
}
outfile.close();
return true;
}
vector FileUtil::readUsersFromFile(string filename) {
vector users;
ifstream infile(filename);
if (!infile.is_open()) {
cout << "文件打开失败!" << endl;
return users;
}
string line;
while (getline(infile, line)) {
User user(line);
users.push_back(user);
}
infile.close();
return users;
}
```
这个类提供了四个静态函数:
- `readFlightsFromFile`:从文件中读取航班信息,返回一个包含所有航班的 vector。
- `writeFlightsToFile`:将航班信息