New Text Document
New Text Document
#include <string>
class Passenger {
private:
string name;
string ticketClass;
double ticketPrice;
int id;
public:
Passenger(const string& newName, const string& tClass, double tPrice, int
newID) : name(newName), ticketClass(tClass), ticketPrice(tPrice), id(newID) {}
class CrewMember {
private:
string name;
string role;
int id;
public:
CrewMember(const string& newName, const string& newRole, int newID) :
name(newName), role(newRole), id(newID) {}
class Flight {
private:
string flightNumber;
int capacity;
string flightTime;
Passenger** passengers;
CrewMember** crew;
int passengerCount;
int crewCount;
public:
Flight(const string& number, const string& time, int cap) :
flightNumber(number), flightTime(time), capacity(cap), passengerCount(0),
crewCount(0) {
passengers = new Passenger*[capacity];
crew = new CrewMember*[capacity / 5];
}
~Flight() {
cancelFlight();
}
void displayPassengers() {
for (int i = 0; i < passengerCount; ++i) {
cout << "Name: " << passengers[i]->getName() << ", Ticket Class: " <<
passengers[i]->getTicketClass() << ", Ticket Price: $" << passengers[i]-
>getTicketPrice() << endl;
}
}
void displayCrew() {
for (int i = 0; i < crewCount; ++i) {
cout << "Name: " << crew[i]->getName() << ", Role: " << crew[i]-
>getRole() << endl;
}
}
void cancelFlight() {
for (int i = 0; i < passengerCount; ++i) {
delete passengers[i];
}
for (int i = 0; i < crewCount; ++i) {
delete crew[i];
}
passengerCount = 0;
crewCount = 0;
delete[] passengers;
delete[] crew;
passengers = nullptr;
crew = nullptr;
}
class Airline {
private:
string name;
Flight** flights;
int flightCount;
public:
Airline(const string& airlineName) : name(airlineName), flightCount(0) {
flights = new Flight*[MAX_FLIGHTS];
}
~Airline() {
for (int i = 0; i < flightCount; ++i) {
delete flights[i];
}
delete[] flights;
}
void displayFlights() {
for (int i = 0; i < flightCount; ++i) {
cout << "Flight " << i + 1 << ": " << flights[i]->getFlightNumber() <<
" | Time: " << flights[i]->getFlightTime() << endl;
}
}
void displayMenu() {
cout << "\nMenu:\n";
cout << "1. Add Flight\n";
cout << "2. Cancel Flight\n";
cout << "3. Add Passenger to Flight\n";
cout << "4. Remove Passenger from Flight\n";
cout << "5. Add Crew Member to Flight\n";
cout << "6. Remove Crew Member from Flight\n";
cout << "7. Display Flights\n";
cout << "8. Display Passengers for Flight\n";
cout << "9. Display Crew for Flight\n";
cout << "10. Change Flight Time\n";
cout << "11. Change Passenger Class\n";
cout << "12. Exit\n";
cout << "Enter your choice: ";
}
int main() {
Airline airline("MyAirline");
int choice;
do {
displayMenu();
cin >> choice;
switch (choice) {
case 1: {
string flightNumber, flightTime;
int capacity;
cout << "Enter flight number: ";
cin >> flightNumber;
cout << "Enter flight time: ";
cin >> flightTime;
cout << "Enter capacity: ";
cin >> capacity;
Flight* flight = new Flight(flightNumber, flightTime, capacity);
airline.addFlight(flight);
cout << "Flight added successfully.\n";
break;
}
case 2: {
string flightNumber;
cout << "Enter flight number to cancel: ";
cin >> flightNumber;
airline.cancelFlight(flightNumber);
break;
}
case 3: {
string flightNumber, passengerName, ticketClass;
double ticketPrice;
int passengerID;
cout << "Enter flight number: ";
cin >> flightNumber;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
cout << "Enter passenger name: ";
cin >> passengerName;
cout << "Enter ticket class (business, economy, vip): ";
cin >> ticketClass;
cout << "Enter passenger ticket price: ";
cin >> ticketPrice;
cout << "Enter passenger ID: ";
cin >> passengerID;
Passenger* passenger = new Passenger(passengerName,
ticketClass, ticketPrice, passengerID);
flight->addPassenger(passenger);
}
break;
}
case 4: {
string flightNumber;
int passengerID;
cout << "Enter flight number: ";
cin >> flightNumber;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
cout << "Enter passenger ID: ";
cin >> passengerID;
flight->removePassenger(passengerID);
}
break;
}
case 5: {
string flightNumber, crewName, crewRole;
int crewID;
cout << "Enter flight number: ";
cin >> flightNumber;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
cout << "Enter crew member name: ";
cin >> crewName;
cout << "Enter crew member role (pilot, co-pilot, attendant):
";
cin >> crewRole;
cout << "Enter crew member ID: ";
cin >> crewID;
CrewMember* crewMember = new CrewMember(crewName, crewRole,
crewID);
flight->addCrewMember(crewMember);
}
break;
}
case 6: {
string flightNumber;
int crewID;
cout << "Enter flight number: ";
cin >> flightNumber;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
cout << "Enter crew member ID: ";
cin >> crewID;
flight->removeCrewMember(crewID);
}
break;
}
case 7: {
airline.displayFlights();
break;
}
case 8: {
string flightNumber;
cout << "Enter flight number: ";
cin >> flightNumber;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
flight->displayPassengers();
}
break;
}
case 9: {
string flightNumber;
cout << "Enter flight number: ";
cin >> flightNumber;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
flight->displayCrew();
}
break;
}
case 10: {
string flightNumber, newFlightTime;
cout << "Enter flight number: ";
cin >> flightNumber;
cout << "Enter new flight time: ";
cin >> newFlightTime;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
flight->setFlightTime(newFlightTime);
cout << "Flight time changed successfully.\n";
}
break;
}
case 11: {
string flightNumber;
int passengerID;
string newClass;
cout << "Enter flight number: ";
cin >> flightNumber;
cout << "Enter passenger ID: ";
cin >> passengerID;
cout << "Enter new ticket class (business, economy, vip): ";
cin >> newClass;
Flight* flight = airline.findFlight(flightNumber);
if (flight != nullptr) {
flight->changePassengerClass(passengerID, newClass);
cout << "Passenger class changed successfully.\n";
}
break;
}
case 12: {
cout << "Exiting program.\n";
break;
}
default:
cout << "Invalid choice. Please try again.\n";
}
} while (choice != 12);
return 0;
}