面向對象第二次做業

1)根據做業一關於電梯做業的要求:

構想畫出 C語言實現的流程圖或文字描述C語言程序實現的步驟。(不須要提交代碼)

1.輸入乘客信息
2.處理乘客信息
3.傳遞乘客信息寫函數讓電梯運行
4.輸出模塊化

構想畫出C++面向對象實現的類圖或文字描述程序結構實現。(不須要提交代碼)

對比分析二者的區別。

感受面向對象更模塊化吧,電梯該作什麼事放在電梯類的函數裏,邏輯更清楚。函數

2)寫一個電梯類,有若干個私有成員(自行考慮和定義);

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;//下 
}
相關文章
相關標籤/搜索