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;//下 }