最近很多公司面試喜歡問一些oo design的題目, 我總結了一些比較高頻的題目, 需求不一定準確, 設計的也不一定好, 歡迎提出建議.
1. 電梯設計
2. 停車廠設計
3. 通用卡牌遊戲blackjack設計
4...
1. 電梯設計
需求: 以物件導向的方式設計乙個電梯, 包含一些必要的類和函式.
分析: 我的設計分為三個類, 乙個是電梯本身的類, 包含一些移動電梯的函式和電梯狀態. 另外還有乙個update函式會被不停呼叫, 更新電梯狀態. 還有乙個請求類, 採用singleton模式, 用於接收使用者請求, 和電梯提供給電梯下乙個目標樓層, 和刪除請求. 還有乙個類似user類, 可以使得使用者通過這個類提供的介面發出請求.
電梯排程演算法採用經典的電梯掃瞄演算法, 在乙個方向上完成所有的請求, 然後再改變方向完成另外乙個方向的所有請求.
**如下:
class elevator
void moveup()
void movedown()
void stop()
void opendoor()
void closedoor()
void update()
else if(target < curfloor)
if(target == curfloor)
}private:
int direction;
int curfloor;
};class request
int getnextfloor(int curfloor, int dir)
void addrequest(int floor)
void removerequest(int floor)
private:
setrequests;
}class elevatormanager
};
vue的一些常見面試題
面試也告了乙個段落,總結一下我面試的心得 以下題目是常見的問題,由淺入深。vue的rou ter和 router和 router 和route的區別 vue 路由 vue中v show 和v if的區別 樣式穿透 vue的八種元件通訊方式 vue的slot插槽 vue 中 emit的使用 vue n...
常見面試演算法題整理
下面列的所有的演算法題目基本都能在本部落格中找到 在使用本博文的過程中,可以按照天來複習,每天乙個list,完成這些 基本能應付國內網際網路公司的演算法問題。第一天 1.給定乙個鍊錶 在鍊錶的尾部插入乙個元素 2.用兩個佇列實現乙個棧 3.用兩個棧實現乙個佇列 4.求兩個有序陣列的中位數,可以延伸為...
常見面試演算法題收錄
寫在前面 本人是想要從事程式設計方面的非科班學生,課餘時間學習一些演算法,參加一些面試,記錄了一些常見或者認為比較經典的演算法,供新手參考學習。有不足之處還望指正。會持續更新 本文章使用c 語言實現 1.反轉鍊錶 time o n space o 1 listnode reverselist lis...