#include #include #include #include #include #include using namespace std; typedef enum {up,down} direction; const MaxFloors = 8; const int MaxPassengers = 20; class Passenger{ friend class Elevator; public : Passenger() {}; Passenger(int, short , short); void SetPassenger(int , short , short); void CallElevator(Elevator &); void ShowStatus(Elevator &); void ShowStatus(Elevator &,ofstream &); void FloorNum(); private: int id; short elevator; short origin; short destination; direction direct; short status ; //0-waiting, 1-current 2-served }; ////////////////////// PASSENGER DEFINITIONS ///////////////////// Passenger::Passenger(int id, short origin, short destination){ Passenger::id = id; Passenger::origin = origin; Passenger::destination = destination; if (origin-destination>0) direct = down; else direct = up; } void Passenger::SetPassenger(int id, short origin, short destination){ Passenger::id = id; Passenger::origin = origin; Passenger::destination = destination; if (origin == 0) direct = up; else if (origin==MaxFloors-1) direct = down; else if (origin-destination>0) direct = down; else direct = up; status = 0; } void Passenger::ShowStatus(Elevator &x) { cout<<"\nPassenger "< 0) outfile <<" up"; else outfile<<" down"; } else if (status==1) {outfile<<"already being served and is on floor "<