freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c程序設(shè)計(jì)--對(duì)象分冊(cè)第8章-閱讀頁(yè)

2025-01-26 04:16本頁(yè)面
  

【正文】 8 47 確定類(lèi)的結(jié)構(gòu)以后,需要表述類(lèi)本身具有的特性,也就是類(lèi)的屬性??捎靡粡埍砀衩枋鲈谛枨笾忻總€(gè)類(lèi)相關(guān)的描述。同類(lèi)對(duì)象之間和不同的對(duì)象之間通過(guò)相互通信來(lái)完成復(fù)雜的系統(tǒng)狀態(tài)的控制。 ( 1)提取對(duì)象外部行為的大致功能和名稱(chēng),同時(shí)進(jìn)行適當(dāng)?shù)木? ( 2)標(biāo)識(shí)對(duì)象之間的消息傳遞; ( 3)使用模板描述對(duì)象的外部服務(wù)和對(duì)象間的消息傳遞。 電梯模擬系統(tǒng)的分析 2022/2/8 51 電梯模擬系統(tǒng)的分析 表 83 電梯模擬系統(tǒng)中類(lèi)的行為描述 類(lèi) 動(dòng)作行為的描述 電 梯 類(lèi) 移動(dòng),到達(dá)指定樓層,按下電梯按鈕,釋放電梯按鈕,人進(jìn)入電梯,人離開(kāi)電梯,開(kāi)關(guān)門(mén),響鈴等 時(shí) 鐘 類(lèi) 每秒計(jì)時(shí) 調(diào) 度 類(lèi) 創(chuàng)建一個(gè)乘客,時(shí)間安排,處理樓層等待的人,延遲時(shí)間 電 梯 按 鈕 類(lèi) 標(biāo)識(shí)電梯的移動(dòng) 樓 層 按 鈕 類(lèi) 按鈕按下和釋放 門(mén) 類(lèi) 開(kāi)門(mén),關(guān)門(mén),表示人已經(jīng)乘坐電梯 樓 層 類(lèi) 通知電梯的到來(lái),標(biāo)識(shí)電梯離開(kāi)等 鈴 類(lèi) 創(chuàng)建自身,響鈴 燈 類(lèi) 創(chuàng)建自身,開(kāi)關(guān)燈 總控類(lèi) 運(yùn)行電梯系統(tǒng),獲取時(shí)鐘,發(fā)送時(shí)間給計(jì)劃表和電梯類(lèi) 2022/2/8 52 電梯模擬系統(tǒng)的分析 根據(jù)以上描述命名類(lèi)的行為 , 包括行為的名字 , 返回類(lèi)型和參數(shù) 。同時(shí)使用 UML中的動(dòng)態(tài)模型,描述特定情況下這些類(lèi)的實(shí)例之間的行為。根據(jù)系統(tǒng)需要,添加控制類(lèi) Building類(lèi),完成對(duì)電梯的總控,各類(lèi)的關(guān)系如圖 : 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 54 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) Person ID : int +stepOntoFloor(Flooramp。 ,Flooramp。,Elevator amp。它由 Floor 類(lèi)、 Elevator類(lèi) 、 Clock類(lèi)、 Scheduler類(lèi)對(duì)象組成。 方法: ringBell() ,響鈴。 方法: tick(),按每一秒增加時(shí)鐘。 (4) Door(門(mén) )類(lèi): 電梯到達(dá)指定樓層時(shí),乘客乘坐電梯時(shí)實(shí)現(xiàn)電梯門(mén)的開(kāi)關(guān),通知乘客進(jìn)入或退出電梯。,Elevatoramp。 closeDoor(const Flooramp。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 57 ( 5) Floor(樓層)類(lèi): 電梯到達(dá)的樓層,以及乘客等待的樓層,通知樓層按鈕完成樓層按鈕的操作,并通知指示燈開(kāi)關(guān)。 getNumber() ,返回樓層的層數(shù)。 elevatorLeaving(),通知樓層電梯離開(kāi)。 方法: turnOn() ,開(kāi)燈。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 58 ( 7) Person(乘客)類(lèi): 乘坐電梯的乘客,分別完成對(duì)電梯按鈕和樓層按鈕的操作,以及進(jìn)入和離開(kāi)電梯時(shí)通知電梯完成相應(yīng)動(dòng)作。),調(diào)度發(fā)送消息有人進(jìn)入指定樓層。 ,Flooramp。 。,Elevator amp。 。 方法: pressButton(),按下樓層按鈕。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 59 ( 9) ElevatorButton(電梯按鈕)類(lèi): 提供電梯移動(dòng)的服務(wù)。 resetButton(),松開(kāi)按鈕電梯內(nèi)按鈕。實(shí)現(xiàn)電梯的移動(dòng)和電梯到達(dá)指定位置后和其他類(lèi)的交互,并響鈴。 prepareToLeave(bool),電梯準(zhǔn)備離開(kāi)。 passengerEnters(Person * const),乘客進(jìn)入電梯。 processPossibleArrival(), 可能到達(dá)的電梯。 arriveAtFloor(Flooramp。 move(),電梯移動(dòng)。 方法: processTime(int),設(shè)置時(shí)間表。),設(shè)置到達(dá)指定樓層的計(jì)劃時(shí)間和延時(shí)時(shí)間。),到達(dá)指定樓層時(shí)間延時(shí)。),獲取指定樓層等待電梯的乘客。主要為實(shí)現(xiàn)系統(tǒng)的功能定義類(lèi)中必要的操作,為訪(fǎng)問(wèn)類(lèi)的屬性提供相應(yīng)的訪(fǎng)問(wèn)接口,對(duì)定義好的操作或接口進(jìn)行優(yōu)化,另外實(shí)現(xiàn)對(duì)象間的關(guān)聯(lián),并給出類(lèi)的定義。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 62 順序圖 順序圖描述對(duì)象之間的動(dòng)態(tài)交互關(guān)系,著重表現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。從表示對(duì)象的矩形框向下的垂直虛線(xiàn)是對(duì)象的 “ 生命線(xiàn) ” ,用于表示在某段時(shí)間內(nèi)該對(duì)象是存在的。當(dāng)收到消息時(shí),接收對(duì)象立即開(kāi)始執(zhí)行活動(dòng),即對(duì)象被激活了。消息通常用消息名和參數(shù)表來(lái)標(biāo)識(shí)。如果用條件表達(dá)式表示分支,則會(huì)有若干個(gè)互斥的箭頭,也就是說(shuō),在某一時(shí)刻僅可發(fā)送分支中的一個(gè)消息。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 64 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) : Building : Clock : Scheduler : Elevator tick() ( 計(jì)算時(shí)間值 ) getTime() ( 獲取當(dāng)前時(shí)間 ) time processTime(currentTime : int)( 設(shè)置目前時(shí)間 ) processTime(currentTime : int) (電梯運(yùn)行時(shí)間 ) 圖 時(shí)鐘對(duì)象、計(jì)劃表對(duì)象和電梯對(duì)象之間的交互的順序圖 2022/2/8 65 協(xié)作圖 協(xié)作圖側(cè)重于描述各個(gè)對(duì)象之間存在的消息收發(fā)關(guān)系(交互關(guān)系),而不專(zhuān)門(mén)突出這些消息發(fā)送的時(shí)間順序。仔細(xì)察看表 83(電梯模擬系統(tǒng)中類(lèi)的行為描述),尋找消息的發(fā)送者和消息的接受者,以判斷交互的對(duì)象和消息的轉(zhuǎn)遞。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 66 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 表 84顯示了電梯模擬系統(tǒng)中所有對(duì)象之間的交互。電梯模擬系統(tǒng)中所涉及的類(lèi)的聲明見(jiàn)表 85: Elevator(電梯)類(lèi) 操作電梯內(nèi)按鈕,響鈴,移動(dòng)電梯到達(dá)指定樓層,開(kāi)關(guān)門(mén) Clock(時(shí)鐘)類(lèi) 計(jì)算電梯運(yùn)行中的時(shí)間 Scheduler(計(jì)劃表)類(lèi) 產(chǎn)生隨機(jī)時(shí)間,創(chuàng)建在某一時(shí)刻乘坐電梯的乘客 Person(乘客)類(lèi) 完成對(duì)電梯按鈕和樓層按鈕的操作,以及進(jìn)入和離開(kāi)電梯時(shí)通知電梯完成相應(yīng)動(dòng)作 Floor(樓層)類(lèi) 電梯到達(dá)的樓層,以及乘客等待的樓層,通知樓層按鈕完成樓層按鈕的操作,并實(shí)現(xiàn)指示燈的開(kāi)關(guān) 2022/2/8 69 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) FloorButton(樓層按鈕)類(lèi) 召喚電梯,標(biāo)示電梯的移動(dòng)方向 ElevatorButton(電梯按鈕)類(lèi) 提供電梯移動(dòng)的服務(wù) Door(門(mén) )類(lèi) 電梯到達(dá)指定樓層時(shí),乘客乘坐電梯時(shí)實(shí)現(xiàn)電梯門(mén)的開(kāi)關(guān),通知乘客進(jìn)入或退出電梯。 2022/2/8 71 3. 對(duì)象實(shí)現(xiàn) 本系統(tǒng)的對(duì)象實(shí)現(xiàn)由共 、 clock..cpp、 、 、 、 、 、 、 、 、 、 12個(gè)文件組成,其中,表 87顯示了各個(gè)文件的簡(jiǎn)單說(shuō)明。 Elevator類(lèi)中主要操作如下: ( 1) Elevator(Flooramp。 secondFloor) // 電梯類(lèi)的構(gòu)造函數(shù),分別在初始化列表中完成組合類(lèi)電梯按鈕類(lèi)、 floor、乘客類(lèi)、時(shí)鐘類(lèi)和響鈴類(lèi)的對(duì)象初始化 ( 2) ~Elevator()// 電梯類(lèi)的析構(gòu)函數(shù) 撤銷(xiāo)電梯。 floor = = Floor :: FLOOR1 ? floor1NeedsService = true :floor2NeedsService = true。 thisFloor = currentFloor ==Floor::FLOOR1 ? floor1Ref : floor2Ref。 // 電梯發(fā)送消息給門(mén),請(qǐng)求關(guān)門(mén) (thisFloor)。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 76 ( 5) processTime(int time) // 通過(guò)檢測(cè)電梯到達(dá)目的樓下或準(zhǔn)備離開(kāi)某樓層時(shí),更新電梯時(shí)間 算法描述: // 首先獲取當(dāng)前時(shí)鐘的時(shí)間 currentBuildingClockTime = time。 else processPossibleDeparture()。 cout工號(hào)為 passengerPtrgetID()進(jìn)入電梯 . currentFloorendl。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 78 ( 8) processPossibleArrival() // 電梯可能到達(dá)的樓層 算法描述: //如果時(shí)鐘獲取時(shí)間恰好是電梯到達(dá)樓層時(shí)間,則更新電梯,輸出當(dāng)前樓層 if( currentBuildingClockTime = arrivalTime){ currentFloor = (currentFloor ==Floor::FLOOR1 ? Floor::FLOOR2 : Floor::FLOOR1)。 cout電梯到達(dá)第 currentFloor層 endl。 return。} 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 79 ( 9) processPossibleDeparture() // 電梯準(zhǔn)備離開(kāi)樓層 算法描述: { //本樓層需要電梯服務(wù) bool currentFloorNeedsService = currentFloor ==Floor::FLOOR1 ? floor1NeedsService : floor2NeedsService。 if (currentFloorNeedsService) { arriveAtFloor(currentFloor == Floor::FLOOR1 ? floor1Ref :floor2Ref)。 } else prepareToLeave(otherFloorNeedsService)。 arrivalFloor) / / 電梯停在特定樓層 ,釋放按鈕,響鈴 算法描述: moving = false。 ()。 //通知樓層電梯到 Person *floorPersonPtr = ()。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 81 //這層需要服務(wù) bool currentFloorNeedsService = currentFloor == Floor::FLOOR1 ? floor1NeedsService : floor2NeedsService。 if(!currentFloorNeedsService) { prepareToLeave(otherFloorNeedsService)。 電梯模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 2022/2/8 82 其余各類(lèi)中操作的詳細(xì)可參閱程序
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1