Suppose that Middlesex County College Airport has one runway, which each airplane takes landingTime minutes to land and takeOffTime minutes to take off, and that on the average, takeOffRate planes take off and landingRate planes land each hour.

Assume that the planes arrive at random instants of time. Delays make the assumption of randomness quite reasonable.

There are 2 types of queues: a queue of airplanes waiting to land AND a queue of airplanes waiting to take off.

Since it is more expensive to keep a plane airborne than to have one waiting on the ground, we assume that the airplanes in the landing queue have priority over those in the takeoff queue.

Write a Java program to simulate MCC Airport's operation. You might assume a simulated clock that advances in one-minute intervals. For each minute, generate 2 random numbers: If the first is less than landingRate/60, a "landing arrival" has occurred and is added to the landing queue; and if the second is less than takeOffRate/60, a takeoff arrival has occurred and is added to the takeoff queue.

Next, check whether the runway is free. If it is free, first check whether the landing queue is nonempty, and if so, allow the first airplane to land; otherwise, consider the takeoff queue.

Have the program calculate the average queue length and the average time that an airplane spends in a queue. You should also consider the effect of varying arrival and departure rates to simulate the prime and slack times of day, or what happens if the amount of time to land or take off is increased or decreased.

CSC 236 Queue Lab Instructions

do an array-based implementation of a queue

Create a class ArrayQueue< T >

  • default constructor
  • isEmpty( )
  • count( )
  • peek( )
  • dequeue( )
  • enqueue( )

Create a class MCCAirport

  • final double LANDING_TIME = 3;
  • final double TAKE_OFF_TIME = 2;
  • final double LANDING_RATE = 10;
  • final double TAKE_OFF_RATE = 10;
  • final int ITERATIONS = 1440;
//use a random generator
import java.util.Random;

Random generator = new Random(System.currentTimeMillis());

Print out the following: values should be 6 places to the right of the decimal

Average landing queue length:
Average take off queue length:
Average landing queue time:
Average take off queue time:
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.