




已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Harbin Institute of Technology at Weihai數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 電梯模擬系統(tǒng) 院 系: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 班 級(jí): 學(xué) 號(hào): 設(shè) 計(jì) 者: 哈爾濱工業(yè)大學(xué)(威海)二零零七年七月I哈爾濱工業(yè)大學(xué)(威海)計(jì)算機(jī)學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)驗(yàn)收及成績(jī)?cè)u(píng)定表(項(xiàng)目組)項(xiàng)目名稱電梯模擬系統(tǒng)職責(zé)學(xué) 號(hào)姓 名主 要 分 工組長(zhǎng)安文龍050410126全部成員成員成員設(shè)計(jì)開(kāi)始日期2007-7-3項(xiàng)目完成日期2007-7-15文 檔 評(píng) 審 成 績(jī) (共50分)評(píng)審項(xiàng)目評(píng)審內(nèi)容成績(jī)標(biāo)準(zhǔn)評(píng)審成績(jī)項(xiàng)目名稱課題是否從實(shí)際出發(fā),是否具有創(chuàng)意等20文檔格式文檔格式是否規(guī)范;文字是否規(guī)范;圖表是否規(guī)范;術(shù)語(yǔ)是否準(zhǔn)確等10分文檔質(zhì)量程序設(shè)計(jì)思想與整體框架是否清晰等20分文檔總體評(píng)價(jià)總成績(jī)程 序 功 能 完 備 性 評(píng) 審 成 績(jī) (共 50 分)評(píng)審項(xiàng)目評(píng) 審 內(nèi) 容成績(jī)標(biāo)準(zhǔn)評(píng)審成績(jī)程序運(yùn)行狀況程序是否能正常運(yùn)行;是否出現(xiàn)死鎖;是否遇到錯(cuò)誤而中止運(yùn)行10分程序正確性對(duì)于給定的輸入數(shù)據(jù),是否能得到正確的輸出結(jié)果15分程序與文檔的一致性程序與各種文檔的內(nèi)容是否一致5 分程序的代碼量程序代碼量的大小10分實(shí)現(xiàn)方法圖形界面或命令行界面,美觀程度5分實(shí)現(xiàn)語(yǔ)言面向過(guò)程或面向?qū)ο?分程序總體評(píng)價(jià)總成績(jī)哈爾濱工業(yè)大學(xué)(威海)課程設(shè)計(jì)任務(wù)書(shū) 姓 名: 安文龍 學(xué) 號(hào):050410126院(系): 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 任務(wù)起止日期:2007 年 7 月 3 日 至 2007年 7 月 15 日 課程設(shè)計(jì)題目:電梯模擬系統(tǒng) 問(wèn)題闡述與分析: 電梯是我們?nèi)粘I钪胁豢苫蛉钡囊环N重要工具。電梯的運(yùn)行是電梯與大樓及各個(gè)樓層的使用者互相交互的過(guò)程,而相應(yīng)的電梯模擬就是對(duì)這一交互過(guò)程進(jìn)行實(shí)際模擬,已達(dá)到運(yùn)載客戶的功能。本程序運(yùn)用時(shí)鐘控件解決對(duì)各個(gè)樓層請(qǐng)求的響應(yīng)順序問(wèn)題。本次程序的核心算法是處理電梯在某一時(shí)刻的狀態(tài)、動(dòng)作以及對(duì)下一時(shí)刻的狀態(tài)和動(dòng)作作出預(yù)測(cè)和判斷。程序的重點(diǎn)在于確定電梯的各個(gè)狀態(tài)以及運(yùn)行方向,處理各種請(qǐng)求,對(duì)每一個(gè)動(dòng)作和狀態(tài)的時(shí)間進(jìn)行處理。其它的活動(dòng)體如乘客則相對(duì)獨(dú)立,處理起來(lái)更為容易一些。 某7層高的樓,設(shè)有載客電梯1部。其具體功能如下:(1) 電梯的運(yùn)行規(guī)則是:可到達(dá)每層。(2) 模擬開(kāi)始時(shí),電梯隨機(jī)地處于其符合運(yùn)行規(guī)則的任意一層,為空梯。(3) 按下“外請(qǐng)求”按鈕,表示用戶的申請(qǐng),電梯將根據(jù)申請(qǐng)情況運(yùn)行。(4) 按下“內(nèi)請(qǐng)求”按鈕,表示用戶在電梯內(nèi)部的操作。(5) 當(dāng)電梯響應(yīng)完全部請(qǐng)求后,電梯將自動(dòng)關(guān)門并在終止層等待。(6) 電梯可以隨時(shí)顯示其當(dāng)前信息,如所在樓層,運(yùn)動(dòng)狀態(tài)等。 工作量:1. 設(shè)計(jì)可視化操作界面;2. 電梯時(shí)鐘設(shè)計(jì)3. 電梯門開(kāi)關(guān)設(shè)計(jì)4. 乘客請(qǐng)求,電梯響應(yīng)設(shè)計(jì)II哈爾濱工業(yè)大學(xué)(威海)課程設(shè)計(jì)報(bào)告(論文)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告軟硬件運(yùn)行環(huán)境語(yǔ)言:Delphi運(yùn)行環(huán)境:Delphi 7.0硬件:無(wú)要求 問(wèn)題及難點(diǎn)所在本次程序的難點(diǎn)是處理電梯在某一時(shí)刻的狀態(tài)、動(dòng)作以及對(duì)下一時(shí)刻的狀態(tài)和動(dòng)作作出預(yù)測(cè)和判斷。程序的重點(diǎn)在于確定電梯的各個(gè)狀態(tài)以及運(yùn)行方向,處理各種請(qǐng)求,對(duì)每一個(gè)動(dòng)作和狀態(tài)的時(shí)間進(jìn)行處理。其它的活動(dòng)體如乘客則相對(duì)獨(dú)立,處理起來(lái)更為容易一些。由于電梯運(yùn)行情況比較復(fù)雜,所以采用面向?qū)ο蟮木幊陶Z(yǔ)言,使程序?qū)崿F(xiàn)起來(lái)比較簡(jiǎn)單,并且界面也比較容易設(shè)計(jì)。 算法設(shè)計(jì)的思想1、初始化初始化電梯基本信息,如運(yùn)動(dòng)狀態(tài),所在層數(shù),是否收到請(qǐng)求等。 2、響應(yīng)各請(qǐng)求 響應(yīng)前先判斷電梯對(duì)應(yīng)此時(shí)刻的運(yùn)動(dòng)狀態(tài),若此時(shí)處于停留在某一樓層,則先判斷目標(biāo)運(yùn)動(dòng)方向是否相同,若相同,則采用就近原則,若目標(biāo)運(yùn)動(dòng)方向不相同,則采用先請(qǐng)求先響應(yīng)原則。若此時(shí)處于運(yùn)動(dòng)狀態(tài),則要考慮請(qǐng)求是內(nèi)部請(qǐng)求還是外部請(qǐng)求??偟脑瓌t是若有內(nèi)部請(qǐng)求,則先響應(yīng)。只有內(nèi)部請(qǐng)求時(shí),采用最短路程原則。在內(nèi)部響應(yīng)進(jìn)行時(shí),若有外部請(qǐng)求,則要判斷其外部請(qǐng)求的運(yùn)動(dòng)方向是否與電梯運(yùn)動(dòng)方向相同,若相同,則響應(yīng)外部請(qǐng)求。否則等內(nèi)部請(qǐng)求響應(yīng)完成后再響應(yīng)外部請(qǐng)求。3、輸出信息 通過(guò)Delphi編譯出可視化界面,形象地輸出電梯基本信息,如運(yùn)動(dòng)狀態(tài),所在層數(shù),開(kāi)關(guān)門狀態(tài)等。 算法的流程圖開(kāi) 始先請(qǐng)求先響應(yīng)響應(yīng)最短路程請(qǐng)求判斷是內(nèi)請(qǐng)求還是外請(qǐng)求響應(yīng)結(jié)束判斷電梯是否正在運(yùn)動(dòng)判斷是否有請(qǐng)求電梯信息初始化并等待請(qǐng)求 N Y N Y 外請(qǐng)求判斷是否有與運(yùn)動(dòng)方向相同請(qǐng)求 內(nèi)請(qǐng)求 N先請(qǐng)求先響應(yīng) Y圖一:算法流程圖 算法的設(shè)計(jì)與分析private mshowin:boolean; /判斷Groupboxin是否可見(jiàn) mshowout:boolean; /判斷Groupboxout是否可見(jiàn) canmove:boolean; /用來(lái)延遲一會(huì)循環(huán) whichclick:integer; /判斷是開(kāi)門還是關(guān)門 imagel:integer; /門圖片的left imagew:integer; /門圖片的Width elet:integer; /eleshape的top doorready:boolean; /電梯門是否準(zhǔn)備好 elemove:boolean; /電梯是否運(yùn)動(dòng) movedrect:integer; /電梯運(yùn)動(dòng)方向 elelocatefloor:integer; /電梯所在樓層 nowcall:integer; /現(xiàn)在幾樓要求電梯運(yùn)動(dòng) targetfloor:integer; /電梯運(yùn)動(dòng)的目標(biāo)樓層 mincallup:integer; /電梯外部向下運(yùn)動(dòng)的最低樓層 maxcalldown:integer; /電梯外部向上運(yùn)動(dòng)的最高樓層 targetobject:integer; /電梯內(nèi)部要求運(yùn)動(dòng)的樓層 nowtarget:integer; /現(xiàn)在電梯內(nèi)部要求運(yùn)動(dòng)的樓層 downarray:array2.7 of boolean; /外部向下運(yùn)動(dòng)的按紐 uparray:array1.6 of boolean; /外部向上運(yùn)動(dòng)的按紐 targetarray:array1.7 of boolean; /內(nèi)部運(yùn)動(dòng)的按紐 procedure waittwosecond(); /等待2秒,一等待過(guò)程,不一定是1秒 procedure waitonesecond(); /等待1秒,同上 procedure dooropenclose(); /開(kāi)門關(guān)門動(dòng)作 procedure eleincall(now:integer); /電梯里面要求運(yùn)動(dòng) procedure eleoutcall(now:integer); /電梯外面要求運(yùn)動(dòng) procedure lighton(nowstate:integer); /點(diǎn)亮所在樓層字體 procedure lightoff(nowstate:integer); /關(guān)掉所在樓層字體 procedure downoff(nowstate:integer); /關(guān)掉向下按紐 procedure upoff(nowstate:integer); /關(guān)掉向上按紐 procedure targetoff(nowstate:integer); /關(guān)掉內(nèi)部按紐 procedure doorbitopen(); /實(shí)現(xiàn)開(kāi)門動(dòng)作 procedure doorbitclose(); /實(shí)現(xiàn)關(guān)門動(dòng)作 procedure wait3sec(); /實(shí)現(xiàn)等待3秒 procedure waitformove(); /用來(lái)等待shape的運(yùn)動(dòng) procedure showin(); /用來(lái)使groupboxin可見(jiàn) procedure showout(); /用來(lái)使groupboxout可見(jiàn) procedure lightofftarget(); /用來(lái)是關(guān)掉內(nèi)部按紐顏色 Function moverequire():integer; /運(yùn)動(dòng)一回合后是否還要運(yùn)動(dòng) Function getnowcallup():boolean; /是否還有向上的請(qǐng)求 Function getnowcalldown():boolean; /是否還有向下的請(qǐng)求 function getinman(sender:Tobject): integer;/計(jì)算進(jìn)入電梯人數(shù) function getoutman(sender:Tobject):integer;/計(jì)算走出電梯人數(shù) 運(yùn)行結(jié)果與分析(測(cè)試)運(yùn)行成功后界面如下:圖二:初始化界面(2)圖三: 電梯運(yùn)動(dòng)界面(1)圖四: 電梯開(kāi)門界面(3) 總結(jié)(收獲與體會(huì))在兩周內(nèi)就完成了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)。雖然課程設(shè)計(jì)已告一段落,但是還有好多東西需要去調(diào)試,學(xué)習(xí)。通過(guò)這次設(shè)計(jì),我學(xué)到了許多書(shū)本上學(xué)不到的知識(shí),增強(qiáng)了自己的動(dòng)手能力,熟悉了Delphi語(yǔ)言。我十分珍惜這次鍛煉的機(jī)會(huì),我如期的完成了自己的設(shè)計(jì)任務(wù),但由于知識(shí)水平有限,仍然存在很多的不足之處。今后在學(xué)習(xí)其他專業(yè)課時(shí),我會(huì)珍惜每一次上機(jī)機(jī)會(huì),鍛煉自己的動(dòng)手能力,加強(qiáng)專業(yè)知識(shí),以適應(yīng)畢業(yè)后從事計(jì)算機(jī)等方面的工作。 附:源代碼unit unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;type TForm1 = class(TForm) GroupBox1: TGroupBox; floor7: TLabel; floor2: TLabel; floor1: TLabel; floor5: TLabel; floor3: TLabel; floor4: TLabel; floor6: TLabel; GroupBox2: TGroupBox; eledoorstate: TLabel; eledown2: TBitBtn; eleup2: TBitBtn; eleup3: TBitBtn; eledown3: TBitBtn; eledown4: TBitBtn; eleup4: TBitBtn; eledown5: TBitBtn; eleup5: TBitBtn; eleup6: TBitBtn; eledown6: TBitBtn; eledown7: TBitBtn; target7: TBitBtn; target6: TBitBtn; target1: TBitBtn; target4: TBitBtn; target5: TBitBtn; target2: TBitBtn; target3: TBitBtn; doorclose: TBitBtn; eleup1: TBitBtn; doortimer: TTimer; eletimer: TTimer; dooropen: TBitBtn; about: TButton; exitdemo: TButton; GroupBox3: TGroupBox; elelocate1: TLabel; elestate2: TLabel; elemovedown1: TLabel; elemoveup1: TLabel; GroupBoxin: TGroupBox; manin1: TRadioButton; manin6: TRadioButton; GroupBoxout: TGroupBox; manout1: TRadioButton; manout6: TRadioButton; manin2: TRadioButton; manin7: TRadioButton; manin3: TRadioButton; manin8: TRadioButton; manin4: TRadioButton; manin9: TRadioButton; manin5: TRadioButton; manin10: TRadioButton; manout2: TRadioButton; manout3: TRadioButton; manout4: TRadioButton; manout5: TRadioButton; manout7: TRadioButton; manout8: TRadioButton; manout9: TRadioButton; manout10: TRadioButton; Panel1: TPanel; Panel2: TPanel; eleShape: TShape; doorimage: TImage; doorocTimer: TTimer; ElemoveTimer: TTimer; waitTimer: TTimer; GroupBox4: TGroupBox; elestate3: TLabel; elemoveup2: TLabel; elemovedown2: TLabel; elelocate2: TLabel; procedure doorcloseClick(Sender: TObject); procedure dooropenClick(Sender: TObject); procedure doortimerTimer(Sender: TObject); procedure target1Click(Sender: TObject); procedure target3Click(Sender: TObject); procedure target2Click(Sender: TObject); procedure target4Click(Sender: TObject); procedure target5Click(Sender: TObject); procedure target6Click(Sender: TObject); procedure target7Click(Sender: TObject); procedure eledown7Click(Sender: TObject); procedure eledown6Click(Sender: TObject); procedure eledown5Click(Sender: TObject); procedure eledown4Click(Sender: TObject); procedure eledown3Click(Sender: TObject); procedure eledown2Click(Sender: TObject); procedure eleup1Click(Sender: TObject); procedure eleup2Click(Sender: TObject); procedure eleup3Click(Sender: TObject); procedure eleup4Click(Sender: TObject); procedure eleup5Click(Sender: TObject); procedure eleup6Click(Sender: TObject); procedure eletimerTimer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure aboutClick(Sender: TObject); procedure exitdemoClick(Sender: TObject); procedure doorocTimerTimer(Sender: TObject); procedure ElemoveTimerTimer(Sender: TObject); procedure waitTimerTimer(Sender: TObject); private Private declarations mshowin:boolean; /判斷Groupboxin是否可見(jiàn) mshowout:boolean; /判斷Groupboxout是否可見(jiàn) canmove:boolean; /用來(lái)延遲一會(huì)循環(huán) whichclick:integer; /判斷是開(kāi)門還是關(guān)門 imagel:integer; /門圖片的left imagew:integer; /門圖片的Width elet:integer; /eleshape的top doorready:boolean; /電梯門是否準(zhǔn)備好 elemove:boolean; /電梯是否運(yùn)動(dòng) movedrect:integer; /電梯運(yùn)動(dòng)方向 elelocatefloor:integer; /電梯所在樓層 nowcall:integer; /現(xiàn)在幾樓要求電梯運(yùn)動(dòng) targetfloor:integer; /電梯運(yùn)動(dòng)的目標(biāo)樓層 mincallup:integer; /電梯外部向下運(yùn)動(dòng)的最低樓層 maxcalldown:integer; /電梯內(nèi)部要求運(yùn)動(dòng)的樓層 nowtarget:integer; /電梯外部向上運(yùn)動(dòng)的最高樓層 targetobject:integer; /現(xiàn)在電梯內(nèi)部要求運(yùn)動(dòng)的樓層 downarray:array2.7 of boolean; /外部向下運(yùn)動(dòng)的按紐 uparray:array1.6 of boolean; /外部向上運(yùn)動(dòng)的按紐 targetarray:array1.7 of boolean; /內(nèi)部運(yùn)動(dòng)的按紐 procedure waittwosecond(); /等待2秒,一個(gè)等待過(guò)程,不一定是一秒 procedure waitonesecond(); /等待1秒,同上 procedure dooropenclose(); /開(kāi)門關(guān)門動(dòng)作 procedure eleincall(now:integer); /電梯里面要求運(yùn)動(dòng) procedure eleoutcall(now:integer); /電梯外面要求運(yùn)動(dòng) procedure lighton(nowstate:integer); /點(diǎn)亮所在樓層字體 procedure lightoff(nowstate:integer); /關(guān)掉所在樓層字體 procedure downoff(nowstate:integer); /關(guān)掉向下按紐 procedure upoff(nowstate:integer); /關(guān)掉向上按紐 procedure targetoff(nowstate:integer); /關(guān)掉內(nèi)部按紐 procedure doorbitopen(); /實(shí)現(xiàn)開(kāi)門動(dòng)作 procedure doorbitclose(); /實(shí)現(xiàn)關(guān)門動(dòng)作 procedure wait3sec(); /實(shí)現(xiàn)等待3秒 procedure waitformove(); /用來(lái)等待shape的運(yùn)動(dòng) procedure showin(); /用來(lái)使groupboxin可見(jiàn) procedure showout(); /用來(lái)使groupboxout可見(jiàn) procedure lightofftarget(); /用來(lái)是關(guān)掉內(nèi)部按紐顏色 Function moverequire():integer; /運(yùn)動(dòng)一回合后是否還要運(yùn)動(dòng) Function getnowcallup():boolean; /是否還有向上的請(qǐng)求 Function getnowcalldown():boolean; /是否還有向下的請(qǐng)求 function getinman(sender:Tobject): integer; /計(jì)算進(jìn)入電梯的人數(shù) function getoutman(sender:Tobject):integer; /計(jì)算走出電梯的人數(shù) public Public declarations end;var Form1: TForm1;implementation$R *.DFMprocedure TForm1.lightofftarget(); /以下過(guò)程為初始化電梯內(nèi)部按鈕顏色var i:integer;begin case movedrect of 1:begin for i:=elelocatefloor downto 1 do /向下運(yùn)動(dòng) begin targetoff(i); targetarrayi:=False;end;end; -1:begin for i:=elelocatefloor to 7 do /向上運(yùn)動(dòng) begin targetoff(i); targetarrayi:=False; end;end; end;end;procedure TForm1.showin();beginif mshowin=true then groupboxin.Visible:=True; /電梯外部有人響應(yīng)時(shí)if mshowout=True then groupboxout.Visible:=True; /電梯內(nèi)部有人響應(yīng)時(shí)end;procedure TForm1.showout();beginmshowin:=False;mshowout:=False;Groupboxin.Visible:=False;Groupboxout.Visible:=False;end;function TForm1.getinman(Sender:Tobject):integer;beginwith Groupboxin do case (Sender as TRadioButton).tag of /進(jìn)入電梯人數(shù)的設(shè)置 1:getinman:=1; 2:getinman:=2; 3:getinman:=3; 4:getinman:=4; 5:getinman:=5; 6:getinman:=6; 7:getinman:=7; 8:getinman:=8; 9:getinman:=9; 10:getinman:=10; end;end;function TForm1.getoutman(Sender:Tobject):integer;beginwith Groupboxout do case (Sender as TRadioButton).tag of /走出電梯的人數(shù) 1:getoutman:=1; 2:getoutman:=2; 3:getoutman:=3; 4:getoutman:=4; 5:getoutman:=5; 6:getoutman:=6; 7:getoutman:=7; 8:getoutman:=8; 9:getoutman:=9; 10:getoutman:=10; end;end; procedure TForm1.waitformove();beginelemove:=true; /若電梯開(kāi)始運(yùn)動(dòng),則其動(dòng)態(tài)效果在時(shí)鐘控件作用下實(shí)現(xiàn)elemovetimer.Enabled:=True;end;procedure TForm1.wait3sec();beginwaittimer.Enabled:=True;end;procedure TForm1.doorbitopen();begindooroctimer.Enabled:=True;whichclick:=1; /開(kāi)門狀態(tài)end;procedure TForm1.doorbitclose();begindooroctimer.Enabled:=True;whichclick:=-1; /關(guān)門狀態(tài)end;-初始狀態(tài)-procedure TForm1.FormCreate(Sender: TObject);beginshape 336 48137 imagel:=68; /對(duì)圖片進(jìn)行初始化imagew:=1;Doorimage.Left:=imagel;Doorimage.Width:=imagew;Eleshape.Brush.Color:=clblue;elet:=288;eleshape.top:=elet;canmove:=True;elelocatefloor:=1;floor1.Font.color:=clred;elelocate1.font.color:=clred;elelocate2.font.color:=clred;elelocate1.caption:=inttostr(elelocatefloor);elelocate2.caption:=inttostr(elelocatefloor);doorready:=true;elemove:=false;movedrect:=0;mshowin:=False;mshowout:=False;Targetfloor:=1;end;-以下是定時(shí)器,實(shí)現(xiàn)2和1秒等待!-procedure TForm1.waittwosecond();begindoortimer.enabled:=True;end;procedure TForm1.waitonesecond();begineletimer.enabled:=true;end;-以下是開(kāi)門和關(guān)門過(guò)程-procedure TForm1.dooropenclose();begineletimer.Enabled:=False;doorready:=false;dooropen.Font.color:=clred;doorclose.Font.color:=clwindowtext;eledoorstate.font.color:=clred;eledoorstate.caption:=正在開(kāi)門!; /開(kāi)門過(guò)程的實(shí)現(xiàn)showin();doorbitopen();waittwosecond();end;-定時(shí)器doortimer- procedure TForm1.doortimerTimer(Sender: TObject);beginif waittimer.Enabled=True then exit;if (elemove=true) and (dooroctimer.Enabled=True) then exit;eledoorstate.caption:= ;if doorready=true then doorclose.font.color:=clWindowtext;doortimer.enabled:=false;if doorready=false then begin eledoorstate.Font.color:=clred; dooropen.font.color:=clWindowtext; doorclose.font.color:=clred; eledoorstate.caption:=正在關(guān)門!; /關(guān)門過(guò)程的實(shí)現(xiàn) showout(); doorbitclose(); waittwosecond(); doorready:=true; if elelocatefloor=Targetfloor then begin if moverequire()=-1 then begin /還有向上的請(qǐng)求 elemoveup1.font.color:=clwindowtext; elemoveup2.font.color:=clwindowtext; eleoutcall(nowcall);end else if moverequire()=1 then begin /還有向下的請(qǐng)求 elemovedown1.font.color:=clwindowtext; elemovedown2.font.color:=clwindowtext; eleoutcall(nowcall);end;end; end;if eledoorstate.caption= then doorready:=true;if elelocatefloortargetfloor then begin doortimer.Enabled:=False; eletimer.Enabled:=True; end;if moverequire()=0 then begin /到達(dá)了目標(biāo)層并且沒(méi)有請(qǐng)求 if dooroctimer.enabled=False then begin elemoveup1.font.color:=clwindowtext; elemoveup2.font.color:=clwindowtext; elemovedown1.font.color:=clwindowtext; elemovedown2.font.color:=clwindowtext; end; elemove:=False;end;end;-以下是click 實(shí)現(xiàn)開(kāi)門-procedure TForm1.dooropenClick(Sender: TObject);begin if imagel=4 then exit; if elet mod 48 0 then exit; if dooroctimer.Enabled=true then dooroctimer.Enabled:=False; eledoorstate.font.color:=clred; dooropen.font.color:=clred; doorclose.font.color:=clWindowtext; eledoorstate.caption:=正在開(kāi)門!; showin(); doorbitopen(); waittwosecond(); doorready:=false;end;-以下是click |=68 then exit; if elet mod 48 0 then exit; if dooroctimer.Enabled=true then dooroctimer.Enabled:=False; eledoorstate.font.color:=clred; dooropen.font.color:=clwindowtext; doorclose.font.color:=clred; eledoorstate.caption:=正在關(guān)門!; showout(); doorbitclose(); waittwosecond();end;-是否還有向上的請(qǐng)求- Function Tform1.getnowcallup():boolean;var i:integer;begingetnowcallup:=False;for i:=elelocatefloor to 7 do begin if targetarrayi=true then / 內(nèi)部按鈕的運(yùn)動(dòng) begin nowcall:=i; targetobject:=i; if nowcalli then nowcall:=i; getnowcallup:=True; end; if ii then nowcall:=i; getnowcallup:=True; end; end; if i1 then begin if downarrayi=true then /外部按鈕向下的運(yùn)動(dòng) begin nowcall:=i; maxcalldown:=i; if nowcalli then nowcall:=i; get
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賽馬問(wèn)題測(cè)試題及答案
- 打造未來(lái)城市綠肺共享健康生活
- 賽道醉酒測(cè)試題及答案
- 合同協(xié)議書(shū)字號(hào)
- 承包挖沉淀池合同協(xié)議書(shū)
- 美團(tuán)外賣合同協(xié)議書(shū)模板
- 查閱合同協(xié)議書(shū)
- 維修保養(yǎng)合同協(xié)議書(shū)范本
- 合同協(xié)議書(shū)怎么查找
- 保養(yǎng)合同協(xié)議書(shū)
- 破產(chǎn)法試題及答案
- 憲法衛(wèi)士2023第八屆全國(guó)學(xué)生學(xué)憲法講憲法知識(shí)競(jìng)賽題庫(kù)附答案(300題)
- 靜脈輸液不良反應(yīng)及處理 課件
- 鄉(xiāng)土中國(guó)的性別差異
- 高速鐵路概論單元高速鐵路發(fā)展概況課件
- 北師大版2025三年級(jí)語(yǔ)文下學(xué)期期中課堂知識(shí)檢測(cè)考試
- 2024年甘肅蘭州事業(yè)單位招聘考試真題答案解析
- 寧波浙大寧波理工學(xué)院招聘13名事業(yè)編制工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 2025年廣東省廣州市越秀區(qū)委政法委員會(huì)招聘輔助人員4人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- MOOC 頸肩腰腿痛中醫(yī)防治-暨南大學(xué) 中國(guó)大學(xué)慕課答案
- 30m獨(dú)立避雷針的安裝作業(yè)指導(dǎo)書(shū)
評(píng)論
0/150
提交評(píng)論