1.輸入乘客信息
2.處理乘客信息
3.傳遞乘客信息寫函數讓電梯運行
4.輸出模塊化
感受面向對象更模塊化吧,電梯該作什麼事放在電梯類的函數裏,邏輯更清楚。函數
class Elevator{ private: int time; int destinationQueue; //目的地隊列 int currentFloor;//當前位置 int indicator;//運行方向-1 0 1 public: Elevator(); ~Elevator(); void init(int destinationQueue_); void goToFloor(int askTime_);//前往隊列首的樓層(重載) void goToFloor();//前往隊列首的樓層 void stop(int currentFloor_);//停靠在當前樓層(重載) void stop();//停靠在當前樓層 void updateDeatinationQueue(int destinationQueue_);//更新目的地隊列 }; //初始化電梯 Elevator::Elevator(){ time=0; destinationQueue=0; currentFloor=0; indicator=0; } Elevator:: ~Elevator(){ } //前往隊列首的樓層(判斷請求時間) void Elevator::goToFloor(int askTime_){ if(askTime_>time)time=askTime_; if(indicator!=0){ time+=abs(destinationQueue-currentFloor); } currentFloor=destinationQueue; } //前往隊列首的樓層 void Elevator::goToFloor(){ if(indicator!=0){ time+=abs(destinationQueue-currentFloor); } currentFloor=destinationQueue; } //停靠在當前樓層 void Elevator::stop(){ if(indicator!=0){ cout<<time<<' '<<currentFloor<<endl; time++; } } //判斷電梯行進方向 void Elevator::updateDeatinationQueue(int destinationQueue_){ destinationQueue=destinationQueue_; if(destinationQueue-currentFloor>0)indicator=1;//上 else if(destinationQueue-currentFloor==0)indicator=0;//停 else indicator=-1;//下 } //輸入電梯數據 void Elevator::init(int destinationQueue_){ destinationQueue=destinationQueue_; if(destinationQueue-currentFloor>0)indicator=1;//上 else if(destinationQueue-currentFloor==0)indicator=0;//停 else indicator=-1;//下 }