結對程式設計 電梯排程

2022-03-29 13:29:01 字數 2205 閱讀 1857

現有一新建辦公大廈,共有21層,共有四部電梯,所有電梯基本引數如下表所示:

電梯編號

可服務樓層

最大乘客數量

最大載重量

全部樓層

800 kg

單層800 kg

雙層1600 kg

全部樓層

2000 kg

其使用規定如下:

1、樓層號為0~20,其中0號為地下一層;

2、有樓層限制的電梯不在響應樓層停靠,如單雙層;

3、所有電梯採用統一按鈕控制

請根據上述要求設計並實現乙個電梯控制程式,

程式思想及解決辦法

1.樓層問題及解決辦法:先定義乙個結構體,把電梯的屬性都定義在乙個結構體中這樣以後想要使用電梯屬性的話,很容易就從結構體中用。之後就是考慮樓層了。如果上來3個人按了分別不同的按鈕,我要先判斷哪個最近然後,開始執行電梯。所以,樓層這個方面我用了鍊錶來完成,用鍊錶的好處在於,

陣列在記憶體中是逐個存放的,也就是說倘若陣列的第乙個元素在位址a,則陣列第二個元素就在位址a+1。

而鍊錶則不是,鍊錶每個節點沒有相對固定的位置關係。某個節點在位址a其後的節點不一定是a+1,而在記憶體的其他空閒區域,呈現一種隨機的狀態。

陣列一旦顯式的被申明後,其大小就固定了,不能動態進行擴充。而鍊錶則可以,可以動態生成節點並且新增到已有的鍊錶後面。這樣就解決了電梯樓層的問題。如下為**和效果圖

struct elevator*create(struct elevator*head)//建立鍊錶

free(p1); //申請到的沒錄入,所以釋放掉

p1 = null; //使指向空

p2->pnext = null; //到表尾了,指向空

printf("\t\t樓層輸入結束(end)\n");

2.然後需要解決的就是,電梯超載。這個問題就相對簡單。題中要求的載重數,我為了方便按每個人65kg的體重算,所以,在程式執行的途中加入乙個if判斷語句就ok如下為程式**和效果圖

int elevatorone()//一號電梯函式

else

}else

break;

}printf("\t\t感謝使用一號電梯系統");

printf("\t\t如果繼續請按1否則請按0");

3。然後題中要求2號 和3號電梯分別是單層和雙層電梯,所以電梯執行時需要判斷輸入的是否正確。如下為**和截圖

void printff(struct elevator*head)//三號電梯的輸出函式,判斷輸入是否為雙層

else

}printf("\t\t您輸入有誤三號電梯只提供雙層服務\n");

4.如果有個人在1樓到5樓 但是途中在3樓有人要使用電梯的話怎麼辦呢? 這個問題我用了比較笨的辦法就是,電梯每到乙個樓層我就進行一次提示是否有請求,如果有請求就可以中途使用電梯,就是可以在3樓進入這個電梯系統。如果沒有就繼續上公升到5樓。**和效果圖如下。

跟小夥伴的合影:

* 對這次結對程式設計的感想*

剛開始,老師說這次作業要進行結對程式設計,我是拒絕的,從大一開始敲**開始都是自己乙個人寫,突然讓跟別的人一起寫真有點不適應。剛開始我倆都很不怎麼達標自己的想法。可是隨著時間的推移,慢慢的程式的輪廓出來之後,我們兩個交流也多了起來。給我最大的感受就是,乙個人寫**發現不足點很少,兩個人寫可以從更廣闊的視野下寫程式,這樣寫出來的程式可以更好地被大多數人所接受,我想這就是老師讓我們的做團隊合作的原因吧。畢竟人是群居動物(雖然我們是程式猿~~)。還有,因為我倆實力有限對這次程式設計也不是很滿意,沒有做出圖形出來(主要是對圖形學一竅不通啊~~~).....還有就是無法讓四個電梯同時執行。希望以後通過自己的努力學習能過彌補不足做出更好的程式。

結對程式設計 電梯排程

一.題目要求 二.程式設計 定義三個函式 int abs int a,int b,int c,int d 判斷響應滿足請求最近的電梯號 int check int goto,int now 檢查電梯狀態,並判斷最近電梯是否滿足條件 是否超重 int call int now,int goto,int...

結對程式設計 電梯排程 總結

結對成員 口平音 阮磊 口平音cnblogs 注 關於這次結對程式設計的程式我覺著我的隊友口平音同學 請允許我下文用 口 來代替,日常習慣於這樣稱呼 已經進行了詳細的解釋,請老師點選 鏈結檢視 在這次的結對程式設計中我們採用邊寫邊審的方式,由於我 編寫的能力較弱,故主要編碼的工作就交給了口,而我則主...

電梯排程 結對專案開發

本週六下午我和小胡進一步商量了一下電梯的排程問題,為保證程式設計能貼近生活實際,還特意對學校的電梯做了實地考察。並對之前的設計進行了適當的修改。2014.3.8 20 17 20 48 首先要定義兩個類。class elevator 屬性 承載的最大重量 承載最大數量 所在層數和所有層數 區分上公升...