一. 定義有關電梯的變量,如: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; }