#include #include #include #include #include #include using namespace std; typedef enum {up,down} direction; const MaxFloors = 8; const int MaxPassengers = 20; class Elevator { friend class Passenger; public : Elevator(short, short); short GetFloor(); void WhereAreYou(); void WhereAreYou(ofstream &); void PickPassengers(Passenger list[]); void MoveToNextFloor(); void DropPassengers(Passenger list[]); private: short CurrentFloor; short CurrentPassengers; short id; direction direct; bool floorlist[MaxFloors]; int PassengerList[20]; }; Elevator::Elevator(short id, short floor){ Elevator::id = id; for (int i=0;i=0) i--; if (i<0) CurrentFloor=0; else {CurrentFloor = i;floorlist[i]=false; direct=down;} } else {CurrentFloor = i; floorlist[i]=false; direct=up;} } ///////////////////////////////////////////////////// void Elevator::DropPassengers(Passenger list[]){ short nextfloor=-1, distance=MaxFloors; for (int i=0;i0 && list[j].origin-list[j].destination0 && CurrentFloor-list[j].origin