一. 定义有关电梯的变量,如:1.电梯当前所在楼层.,2. 电梯内的人数,3. 电梯当前前进的方向,等等。再定义有关乘客的变量,如:请求时刻 ,所在楼层,去往楼层,还能够包括其当前的状态——请求状态,乘坐状态,结束状态。
二 .接收到第一个请求时, 电梯开始工做,从底层开始。
1.上一层。
2.判断是否到达顶层或底层,是则改变方向。
3.判断是否有人符合上电梯条件或下电梯条件,是则拉他上,不然继续前进。
4.判断请求是否已经完成,是则结束,不然继续循环。程序员
面向过程 我认为就是须要先总体分析出解决该问题所须要的步骤,而后一步一步去实现它。就以电梯来讲,电梯首先接受请求信号,而后打开门,带上乘客,关上门,往上爬,到达目的地,开门,乘客下电梯,关门。一个请求结束。面向过程程序设计方法须要程序员在一开始就全面的,自上而下的设计整个程序的架构,所以要求程序设计者对问题域有全面的了解。这并不适合多个程序员一块儿工做。
面向对象 我认为就是把一个事件分为多个对象来实现。对象就是一个事物,在编码时先将对象抽象出来,而后构造你所须要的解决环境,在这个环境中将对象和解决方法联系起来。仍以电梯为例,包括:1.乘客,得到全部的输入请求。2.电梯,更新电梯状态 。3.判断结束系统。
能够看出,面向对象按照功能将整个过程划分。面向对象划分的对象便于多个程序员同时对各个部分进行进行更改,比较符合人们追求的效率。架构
class Elevator { private: int currentFloor; // 电梯当前楼层 int direction; // 1 表明向上 ,0 表明向下 public: Elevator(int dir = 1, int floor = 0 ,int pp= 0); // 电梯初始向上走 ,且电梯在第0层 ~Elevator(); int population; void changeDirection(int dir) // 改变电梯运行方向 { direction = dir; } void move(int dir) // 电梯的移动 { if (dir) currentFloor++; else currentFloor--; } int getCurrentFloor() // 电梯当前楼层 { return currentFloor; } int getDirection() { return direction; } }; Elevator::Elevator(int dir, int floor, int pp) { direction = dir; currentFloor = floor; population = pp; } Elevator::~Elevator() { cout << "析构函数"<<endl; }