




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗報告(三):面向?qū)ο蟪绦蛟O(shè)計-事件模擬科目:程序設(shè)計方法 專業(yè):計算機科學(xué)與技術(shù) 班級: 計7 姓名: 風律澈 學(xué)號: 105032011130 日期: 2013.6.61 實驗?zāi)康?、學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計方法的基本思想.2、掌握在具體場景中對象的提取。3、掌握類之間的各種關(guān)系。4、掌握適用序列圖/時序圖來表示對象之間的交互關(guān)系。2 實驗內(nèi)容食堂位置的設(shè)置問題:某食堂需要設(shè)置足夠的位置供學(xué)生在進餐時使用,其目的是確保在高峰期時每一個學(xué)生都有一個位置可用,且又不會由于設(shè)置過多位置造成浪費。輸入:學(xué)生到達食堂的時間和就餐時間作為輸入序列。要求:模擬學(xué)生進入食堂,買飯、就餐、離開的過程.并通過設(shè)
2、置不同的買飯窗口觀察窗口數(shù)對學(xué)生排隊和設(shè)置就餐位置的影響。輸出:在當前輸入情況下,最高峰時學(xué)生就餐需要的座位數(shù)?;疽螅菏紫确治鏊獙崿F(xiàn)的系統(tǒng),分析其中所隱含的對象;確定各個類之間的關(guān)系,畫出類圖;用交互圖畫出各個對象之間的關(guān)系。提示:對象是動作的主體,比如排隊過程,這個事件該放在學(xué)生這個類中,學(xué)生為了排隊,需要觀察各個隊列的長短,然后做出決定是排到哪個隊列中。同時,整個模擬過程有個控制類,這個類從各個隊列中獲取要發(fā)生的事件,然后調(diào)用具體對象的方法實現(xiàn)。 3 程序設(shè)計3。1 類圖分析其中蘊含的對象,抽象出類,并且畫出類關(guān)系圖 學(xué)生類到食堂吃飯時間:int 吃飯耗時:int生存時間:int選擇
3、窗口()修改生存時間(k)獲得到食堂吃飯時間()獲得吃飯耗時()獲得生存時間()減少生存時間() 窗口打飯時間:int排隊學(xué)生:int增加排隊學(xué)生()獲得排隊學(xué)生()減少排隊學(xué)生() 食堂窗口:窗口10最大學(xué)生數(shù)量:int學(xué)生數(shù)量:int插入k窗口排隊(k)獲得窗口k排隊人數(shù)(k)從k窗口排隊中移除(k)增加學(xué)生數(shù)量()減少學(xué)生數(shù)量()獲得最大學(xué)生數(shù)量()獲得學(xué)生數(shù)量()修改最大學(xué)生數(shù)量()3。2 序列圖對所涉及個各個事件、對象交互關(guān)系,分別用序列圖表示.至少畫出控制類的調(diào)度序列圖、學(xué)生排隊事件序列圖。其余可以自行擴展具體可以參考課件中序列圖部分。生成對象Int n=0n+學(xué)生類處理餐廳。窗口
4、處理輸出食堂最大學(xué)生數(shù)量學(xué)生類處理NO食堂學(xué)生數(shù)量=0YESNew 食堂 最大學(xué)生數(shù)量=0 學(xué)生數(shù)量=0 New 窗口 打飯時間=1 排隊學(xué)生數(shù)量=0New 優(yōu)先隊列<學(xué)生 qNew 鏈表<學(xué)生> sInt i=0i+New 學(xué)生t 到食堂時間 random(1189) 吃飯耗時 random(310)Q.add(學(xué)生t)YESi100NONOq.fist到食堂時間=nYESNew 學(xué)生x=p.popint kk=學(xué)生x。選擇窗口()食堂.窗口k。排隊學(xué)生數(shù)量+學(xué)生x。修改生存時間(食堂。窗口k。排隊學(xué)生數(shù)量)S。add(學(xué)生x)int m=0YESm=10NONO食堂。窗口
5、m。隊學(xué)生數(shù)量>0YES食堂。窗口m.隊學(xué)生數(shù)量-m+食堂.學(xué)生數(shù)量+NO食堂。學(xué)生數(shù)量食堂.最大學(xué)生數(shù)量YES食堂。最大學(xué)生數(shù)量=食堂.學(xué)生數(shù)量int f=0f<s。sizeYESSf。生存時間-NOf+Sf.生存時間=0YESS.popn食堂.學(xué)生數(shù)量-f-4 實現(xiàn)4.1 程序?qū)崿F(xiàn)把他們的實現(xiàn)放進去,最好能大概說明過程,或者程序中注釋。如果對應(yīng)多個文件,希望能夠清楚說明,并分節(jié).這里實現(xiàn)的每一個對象、事件希望能夠和上面設(shè)計相對應(yīng)。package 餐廳;import java。util.LinkedList;import java。util。PriorityQueue;impor
6、t java.util.Random;import java.util.Stack;public class main /* * param args */public static void main(String args) / TODO Autogenerated method stub/ 1 /room dinnerholl=new room();PriorityQueue<student> q=new PriorityQueuestudent();LinkedListstudent s=new LinkedList<student();for(int i=0;i30
7、0;i+)/假定學(xué)生人數(shù)100人Random random=new Random();int a=random。nextInt(120)+1;/食堂開放時間單位分鐘int b=random.nextInt(20)+3;/每個人吃飯時間單位分鐘,312分鐘student st=new student(a,b);q。offer(st);int n=0;don+;/ 2 /if(q.peek()!=null) while(q。peek().getarrival()=n)student t;t=q.poll();int k=t.choosewindow();dinnerholl。inlist(k);t
8、。set_during(dinnerholl。get_window_list_long(k);s.add(t);if(q。peek()=null)break;/ 3 /for(int m=0;m<10;m+)if(dinnerholl。get_window_list_long(m)>0)dinnerholl.outlist(m);dinnerholl。rise_now_student_number();if(dinnerholl。get_moststudentnumber()dinnerholl.get_nowstudentnumber())dinnerholl.reset_mos
9、tstudentnumber(dinnerholl.get_nowstudentnumber());/ 4 /for(int j=0;j<s.size();j+)s.get(j)。decrease_during();if(s。get(j).get_during()=0)s.remove(j);dinnerholl。decrease_now_student_number();j-;while(!s.isEmpty());/輸出結(jié)果System.out.println(dinnerholl.get_moststudentnumber();-package 餐廳;import java.uti
10、l。Random;public class student implements Comparablestudent private int arrival;private int eattime;private int during;public student(int a,int b)this。arrival=a;this。eattime=b;Overridepublic int compareTo(student o) / TODO Autogenerated method stubif(this。arrivalo.arrival) return 1;if(this。arrival<
11、;o.arrival) return -1;return 0;public int getarrival()return this。arrival;public int geteattime()return this.eattime;public int choosewindow()Random random=new Random();int k=random.nextInt(10);return k;public void set_during(int list)this.during=list+this。eattime;public int get_during()return this.
12、during;public void decrease_during()this.during;-package 餐廳;public class room private int moststudentnumber;private int nowstudentnumber;private window windows;public room()this。moststudentnumber=0;this.nowstudentnumber=0;this.windows=new window10;for(int i=0;i<10;i+)this.windowsi=new window();pu
13、blic void inlist(int k)this。windowsk。rise_student_number();public int get_window_list_long(int k)return this。windowsk.get_student_number();public void outlist(int k)this.windowsk.remove_student_number();public void rise_now_student_number()this.nowstudentnumber+;public int get_nowstudentnumber()retu
14、rn this。nowstudentnumber;public int get_moststudentnumber()return this。moststudentnumber;public void reset_moststudentnumber(int k)this。moststudentnumber=k;public void decrease_now_student_number()this。nowstudentnumber-;-package 餐廳;public class window private int pack;private int studentnumber;public window()this.pack=1;this.studentnumber=0;public void rise_student_number()this。studentnumber+;public int get_student_number()return this.studentnumber;public void remove_student_number()this.studentnumber-;4.2 運行結(jié)果與分析實驗結(jié)果需要你提供輸入(需要詳細列出所有數(shù)據(jù)),輸出對應(yīng)。不允許通過大量截圖的方式展示實驗結(jié)果.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西北流市2024年數(shù)學(xué)七年級第一學(xué)期期末統(tǒng)考試題含解析
- 長江工程職業(yè)技術(shù)學(xué)院《美術(shù)技能》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘肅省張掖市名校2024-2025學(xué)年數(shù)學(xué)八年級第一學(xué)期期末達標檢測模擬試題含解析
- 湘中幼兒師范高等??茖W(xué)?!兑魳芳寄堍颉?023-2024學(xué)年第一學(xué)期期末試卷
- 硅湖職業(yè)技術(shù)學(xué)院《家蠶飼養(yǎng)與良種繁育學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 哈爾濱鐵道職業(yè)技術(shù)學(xué)院《農(nóng)耕文化概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇省徐州市邳州市運河中學(xué)2025屆化學(xué)九年級第一學(xué)期期末監(jiān)測試題含解析
- 福建省泉州市泉港一中學(xué)、城東中學(xué)2024-2025學(xué)年八年級物理第一學(xué)期期末檢測試題含解析
- 北京市西城區(qū)2024-2025學(xué)年八年級物理第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 浙江省紹興市新昌縣2024-2025學(xué)年化學(xué)九上期末復(fù)習(xí)檢測試題含解析
- 《中國文化導(dǎo)論》課程考試復(fù)習(xí)題庫及答案
- 《高速鐵路路基高韌性混凝土全斷面防水封閉結(jié)構(gòu)技術(shù)規(guī)范》
- 人工智能導(dǎo)論知到智慧樹章節(jié)測試課后答案2024年秋哈爾濱工程大學(xué)
- 加工中心操作工崗位實習(xí)周記原創(chuàng)范文
- 膝關(guān)節(jié)骨關(guān)節(jié)炎護理-減輕疼痛,保持關(guān)節(jié)活動能力
- 工業(yè)園區(qū)物業(yè)服務(wù)標準化方案
- 煤礦工傷預(yù)防培訓(xùn)課件
- 物業(yè)保潔員禮節(jié)禮貌培訓(xùn)
- 2024年華東電網(wǎng)考試題庫
- 2024年糧油倉儲管理員理論知識競賽理論考試題庫500題(含答案)
- 24年-注安建筑-必背簡答題
評論
0/150
提交評論