面向对象第二次做业

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;//下 
}
相关文章
相关标签/搜索