Step 1: Create Classes
Create the class definitions complete with attributes and method prototypes.
Step 2: Code the Methods
Code the methods for each of the classes in your class definitions.
Step 3: Create the Main Method
Code the main method driver for your elevator simulation application.
Using Microsoft Word, provide your test plan for testing the elevator simulation. Execute your test plan and include your test results in your Test Plan document.
Run the Simulation and Collect the Data
Run your elevator simulation multiple times, varying the number-of-elevators parameter from 1 through 8, collecting the data from each run.
Make several runs for each value of the number-of-elevators parameter used.
Combine the datasets for each value used for the number-of-elevators parameter into a single data set.
The data sets should be created as csv (comma delimited) files with one set of data on each line (i.e., separate each set by a carriage-return/line-feed).
You should have one fairly large data set for each value of the number-of-elevators (8 data sets in all) used.
The number of floors in the building will be fixed at five.
The number of passengers that an elevator can hold will be fixed at eight. All elevators will be of the same size.
Passengers will arrive at the elevators in a random fashion, within the parameters set below, and press the call button indicating their preference to travel up or down.
It takes the elevator 0:15 seconds to travel from one floor to the next.
The simulation will note the time it takes for an elevator to arrive and service the passenger.
It takes 0:03 seconds for a passenger to board the elevator and 0:03 seconds for a passenger to leave the elevator.
When a passenger boards the elevator, that passenger will press the button for his destination floor.
The elevator will begin its trip when either the maximum passenger count for the elevator is reached or no passenger has boarded within 10 seconds.
The elevator will remain at the floor it was on when delivering the last of its passengers for a period of 10 seconds before moving to its next call or returning to the ground floor.
The passenger's destination floor will be determined using a "random" interval.
There are 100 persons working on each of floors 2-5. No one works on the ground floor (floor 1). All businesses in the building open for business at 8:00 AM and close at 5:00 PM. Workers begin randomly arriving for work at 7:30 AM. Everyone leaves the building randomly by 5:30 PM.
Customers arrive at the building and visit floors throughout the day at a rate of approximately one every five minutes. Customers randomly spend between 15 and 45 minutes conducting their business then exit the building.
All workers have lunch between 12:00 and 1:00. At 12:00, 50% of workers go to the first floor between 12:00 and 12:15 to go out for lunch. The workers return randomly between 12:45 and 1:00.
It is expected that passengers will be served within 1 minute of pressing the elevator call button.
The simulation will model a day of usage.
The simulation should collect the following data. The time each passenger pressed the call button. The time each passenger boarded the elevator. The destination floor of each passenger.
The following information should be reported daily and in total. The total number of passengers delivered. The total number of passengers delivered by each elevator. The number of passengers delivered to each floor by each elevator. The minimum and maximum time passengers waited. The percentage of passengers served within one minute.
Run the simulation with various numbers of elevators to determine how many elevators will be necessary to service 95% of the passengers within one minute of pressing the call button.