//    File: AirportSimulation.cpp
//  Author: 
//    Date: 
// Version: 
// Purpose: Client code for Project G

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <queue>
#include <ctime>
#include "AirSim.h"
// Add more header files if needed

using namespace std;

void getParameters(int&, int&, double&, double&, int&, int&);
void simulate(
       int    landingTime, 
       int    takeoffTime, 
       double arivalProbability, 
       double departureProbability, 
       int    fuelTime, 
       int    simulationTime);
void displayResults(
       int    numberOfDepartures,
       double averageDepartureWait,
       int    numberOfLandings,
       double averageLandingWait,
       int    crashes);

int main() {
  int    lt; // Minutes required to land
  int    tt; // Minutes required to takeoff
  double ap; // Probability of a plane arriving in one minute
  double dp; // Probability of a plane departing in one minute
  int    ft; // Minutes before fuel runs out
  int    st; // Simulation time in minutes
  
  srand(time(NULL));
  getParameters(lt, tt, ap, dp, ft, st);  
  simulate(lt, tt, ap, dp, ft, st);
  
  return EXIT_SUCCESS;
}

void getParameters(int& lt, int& tt, double& ap, double& dp, int& ft , int& st) {
  cout << endl;
  cout << "                      Minutes required to land: ";
  cin  >> lt;
  cout << "                   Minutes required to takeoff: ";
  cin  >> tt;
  cout << " Probability of a plane arriving in one minute: ";
  cin  >> ap;
  cout << "Probability of a plane departing in one minute: ";
  cin  >> dp;
  cout << "                  Minutes before fuel runs out: ";
  cin  >> ft;
  cout << "                    Simulation time in minutes: ";
  cin  >> st;
  cout << endl << endl;
}

void simulate(int lt, int tt, double ap, double dp, int ft , int st) {
  // This function is to be written to meet
  // the specifications of the project. Before
  // terminating it should invoke dispayResults()
}

void displayResults(int nod, double adw, int nol, double alw, int c) {
  cout.precision(1); cout.setf(ios::showpoint); cout.setf(ios::fixed);
  cout << endl;
  cout << "    Planes departed: " << setw(4) << nod << endl;
  cout << "       Average wait: " << setw(6) << adw << " minutes" << endl << endl;

  cout << "      Planes landed: " << setw(4) << nol << endl;
  cout << "       Average wait: " << setw(6) << alw << " minutes" << endl << endl;

  cout << "Planes that crashed: " << setw(4) << c   << endl << endl;
}