Elevator sim in C++

0 comments

General Description

You are responsible for designing an
elevator simulation model for a bank of elevators in an office building
scenario. This elevator simulator will determine, for a given number of
elevators, how many passengers per hour can be carried from the lobby to the
upper floors of the building. 

  • The user will determine the number of elevators in the
    building.
  • The number of floors in the building will be fixed.
  • The number of passengers that an elevator can hold will
    be fixed.
  • All elevators will be of the same size.
  • As they leave the elevator at their floor, the
    passengers will be counted.
  • The destination floor will be determined using a
    “random” interval.
  • The elevator will return to the lobby when all of the
    passengers on it have been delivered to their floors.
  • The simulation will model an eight-hour interval.
  • The simulation will generate a report showing the
    behavior of the system. The total number of passengers delivered (the
    total number of passengers delivered by each elevator and the number
    delivered to each floor by each elevator) will also be reported.

Simulation Scenario

This elevator simulator will
determine, for an office building with a  given number of floors, a given
occupancy, and a given pattern of usage how many elevators will be necessary to
serve the passengers in a given minimum amount of time.

The goal is to determine how many
elevators are necessary, such that passengers will be served within one
minute of pressing the elevator call button.

  • The user will determine the number of elevators in the building
    at the beginning of each run of the simulation. 
  • 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.

About the Author

Follow me


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}