// Inserts flight into LinkedList based on string parameters for Flight attributes void addFlight(string FlightNumber, double price, string departure, int duration, string sourceAirportName, string destinationAirportName, string company) { FlightNode *newFlightNode; if (company.compare("USAirway") == 0) { newFlightNode = new FlightUSAirway(); // Inhertiance } else if (company.compare("Delta") == 0) { newFlightNode = new FlightDelta(); // Inhertiance } else { newFlightNode = new FlightSouthWest(); // Inhertiance } Date_Time *departureTime = new Date_Time(departure); // create pointer to date_time class and use the ptr to access the date and time values Date_Time *arrivalTime = new Date_Time(departure); HubNode* sourceHub = searchHub(sourceAirportName, headHub); HubNode* destinationHub = searchHub(destinationAirportName, headHub); newFlightNode->flightCompany = company; newFlightNode->flightNumber = FlightNumber; newFlightNode->price = price; newFlightNode->departure = departureTime; newFlightNode->departure->AddMinutes(newFlightNode->getDelay()); newFlightNode->duration = duration; newFlightNode->source = sourceHub; newFlightNode->destination = destinationHub; arrivalTime->AddMinutes(duration + newFlightNode->getDelay()); newFlightNode->arrival = arrivalTime; // Insert new flight node into linked list newFlightNode->next = sourceHub->headFlights; sourceHub->headFlights = newFlightNode; };
/* Returns the arrival time of flight. Returns 0 if there are no flights */ Date_Time* FlightPlan::calculateArrivalTime() { Date_Time* arrival; arrival = startTime; arrival->AddMinutes(calculateDuration()); return arrival; }