一 、編寫目的 編寫本需求說明旨在開發電梯系統做初步需求調查分析,詳細說明電梯系統的需求和功能。
二 、任務概述和要求
進入電梯系統,有界面提示可以選擇1-4號電梯,然后進入電梯界面,然后可以選擇樓層。每一個電梯都有2個狀態,door=0或door=1,即開關門。電梯有本來任務即向上還是向下,當然還有靜止。假設有人在電梯往上的時候選擇向下走即電梯不響應。
1、每一對學生將設計一套接口和類定義這樣一種算法提供者可以提供他/她實現“電梯調度程序”類。
定義電梯類,乘客類。載重器接口(這里不予考慮),外部危險接口(不予考慮,只設置了緊急鍵)
public class lift { public static int numpassenger=0;//乘客數 public static int mostnumpassenger=17;//最多乘客數 public static int number;//電梯編號 public int liftlocafloor;//電梯所在樓層 public int ta;//電梯從所在樓層到目的樓層的時間 public int qiuta(int t, int lift_ta, int lift_liftlocafloor, int passenger_passengerlocafloor,int destion) { int h; h = (liftlocafloor - 2 * passenger.passengerlocafloor + Form1.destion)*t; return (h); } }
public class passenger { public static int passengerlocafloor;//乘客所在樓層 }
2、所有乘客的平均總旅行時間要求少。
我們這里設置每個樓層速度是一樣的,所以每個樓層都是t,T是所有乘客的總旅行時間,最后求平均TA,得最少。
private void button1_Click(object sender, EventArgs e) { destion = 0; l1.qiuta(t, l1.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion); l2.qiuta(t, l2.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion); l3.qiuta(t, l3.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion); l4.qiuta(t, l4.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion); if (l1.ta >= l2.ta && l1.ta >= l3.ta && l1.ta >= l4.ta) lift.number = 1; else if (l2.ta > l1.ta && l2.ta >= l3.ta && l2.ta >= l4.ta) lift.number = 2; else if (l3.ta > l1.ta && l3.ta >= l4.ta && l3.ta > l2.ta) lift.number = 3; else if (l4.ta > l1.ta && l4.ta > l2.ta && l4.ta > l3.ta) lift.number = 4; lift.numpassenger++; if (lift.numpassenger > lift.mostnumpassenger) MessageBox.Show("對不起,超載"); }
3、代碼要求:它具有生成0 (零)的代碼分析警告和錯誤。
4、電梯有載重或人數限制。
電梯的每一個類都有個number,乘客每按下一個樓層,number++直到number到達極限值后,如果再加,電梯彈出對話框“電梯超重,請選擇其他電梯”。因為不知道怎么樣輸入重量,所以這里我們不考慮重量,當然可以設計一個接口,接入測重器,我們這里每一個電梯設置不同的平均人數值,number。
5、特殊情況:
(1)當出現外部因素時,系統會提示,然后乘客可以按下緊急鍵,那么,電梯會自動停在本來電梯應該前往方向的最近一層。
(2)當電梯超重即人數超過平均值時,電梯會彈出對話框“電梯超重,請選擇其他電梯”。直到電梯達到或低於電梯人數平均值。
三 、開發環境 Microsoft Visual Studio 2010
四 、時間日志
3月6日14:00~16:00 | 3月6日16:00~17:30 | 3月8日14:00~15:30 | 3月8日16:00~18:00 |
結隊討論題目 | 分析題目需求 | 制作界面 | 編寫需求分析 |
3月16日 | 3月17號 |
編寫類和判斷電梯編號條件 | 編寫類和判斷電梯條件 |
五 、界面 開始狀態下:
運行狀態下:
六 、總結
在編寫這個電梯中,實在是覺得自己的能力有點小,好多知識都必須得去復習或者是學習,編寫的效率非常低,對於電梯的調度的平均時間,我們是以(電梯所在樓層-乘客所在樓層)+(目的樓層-乘客所在樓層)*t,而且我們還只能選擇一個樓層,有比較大的缺陷,但是我們會繼續改進。
八 、小組成員 20112832周亞豪 20112802姜立比
--未完結。