Starting from:

$35

Final Project Elevator Bank Design and Implementation Solution




Project Description



The goal of this project is to design and develop C++ code and algorithms to control a bank of elevators, which services many oors and transports people \e ciently ", that is, as per the given speci cations. A second goal is to e ectively employ object oriented design, through appropriate use of classes, data structures and Standard Template Libraries (STLs).




1.1 Problem Speci cations




The elevator bank has m elevators and services n oors. As an example, you may choose m = 3 and n = 10.




Each elevator can stop at every oor.




The direction of an elevator has three states up, down and standing. Each elevator can carry up to a max of N max persons.




The program loops through discrete time steps t = 1; 2; : : : T stop, where T stop is an input parameter.




At each time step, either 0, 1 or 2 persons arrive at a oor. This information can be read from an input data le, as described in 1.3.




An elevator takes k time step to move up or down by k oors, if it doesn’t stop. For example, to move from oor 4 to oor 5 requires one time step. And to move from oor 7 to oor 3 requires 4 time steps.




When an elevator stops at a oor, for either passenger pick up or drop o , it does so for one time step.




When a person arrives on a oor, they are assigned the \nearest "elevator. Here nearest is de ned in the number of time steps. For example, let us say a person arrives on oor 5, and wants to go up. Elevator E1 on oor 2, moving in the up direction, with no stops, is 3 time steps away. Elevator E2 on oor 6, moving in the down direction and headed for oor 3 is 6 time steps away. Therefore, the person is assigned elevator E1.




Each arriving person has an arrival oor, destination oor and the assigned elevator as its data members.




When a person is assigned an elevator, their arrival oor and destination oor go in the queue or the list of the elevator stops.




1












Each elevator contains a list of stops, which gets updated at each time step.




An elevator moving up (down) continues to move up (down), until it exhausts all the stops in its list.




1.2 Class Design and STLs




You must make appropriate use of classes and class objects, class data members, class methods, constructors/destructors to implement your code. Here are some suggested classes and their data members:




Person class with ID, arrival oor, destination oor and assigned elevator. An example ID for a person maybe P 1A3D5, for person 1, arrival oor 3 and destination oor 5. This will make it easier to generate and track test input and output.




Elevator class with direction, number of people and list of stops.




Think of the STL containers you will be utilizing. For example, a list allows for easy insertion and removal of elements, a vector can change size, and you can push and pop elements at the end of it, a deque allows for fast insertion and deletion of elements at both ends.




1.3 Input Data




The input data consists of the arrivals on each oor, at time steps t = 1; 2; : : : T Stop. At each time step, the program reads in each arriving person, for each oor, and processes this data. For example, for n = 10 oors, and at time step t = 1, the arrivals maybe P 1A1D4 and P 2A1D5 on oor 1, P 1A3D1 and P 2A3D7 on oor 3, and 0 on the remaining oors.




1.4 Program Output




Generate appropriate output for a given input test data, which displays the information, that is, people getting on and o each oor, for each time step, for say 10 consecutive time steps.






Teams and Interview



You may work alone or in teams of two. Interviews will be conducted for all teams, and each member of the team should be able to discuss their project and answer questions.




Project Report



The project must include a report which describes the program design, including class de nitions, STL data structures and the algorithms. You may make use of gures to illustrate your design.




Assignment Submission



The Assignments must be submitted on the Blackboard, and should include the following:




Project Report in .pdf format.



Some test cases, with input and output data le.



All the C++ source code in .cpp format, and header les if any, in .h format.



4.1 Hardcopy




Please also submit a hard copy of the project, for ABET accreditation.





















































More products