




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、信軟件基礎(chǔ)實(shí)訓(xùn)答辯 3選題:模擬加油站的工作情況小組成員:三枚銅錢94keyboard 時(shí)間:2015/5/5通模擬加油站的工作情況 加油站有 兩臺油泵; 每臺油泵為一輛汽車加油的時(shí)間為 d分鐘; 加油站的到車率為 1輛/g分鐘; 模擬時(shí)間長度為 time分鐘;1分析問題2確定框架3實(shí)現(xiàn)程序1分析問題1、看是否有車來到(概率決定)2、若有車再看是否有空閑的油泵3、若有空閑油泵立即加油,否則排隊(duì)等待4、若泵工作忙(未達(dá)到加油時(shí)間),則時(shí)間遞減等待5、時(shí)間遞減后若為0,將泵置為空閑1分析問題我們要做什么1方案思路模型油泵1油泵2出口出口汽車入口排隊(duì)第一段路第二段路第三段路等待可服務(wù)1分析問題 日常
2、生活中該類模型,是隊(duì)列應(yīng)用的典型例子。以加油站為例,假設(shè)某加油站有 兩臺油泵,每臺油泵的加油時(shí)間為 d分鐘,若已知該站的到車率為 g分鐘一輛,則該加油站的工作情況可用以下列隊(duì)模型描述。 定義一個(gè)循環(huán)隊(duì)列,容量為MAX(足夠大,不發(fā)生隊(duì)列滿的問題),用于組織等待加油的汽車序列。按照先到先加油的原則進(jìn)行處理;整個(gè)模擬過程內(nèi)的時(shí)間為 time,每隔 dt分鐘監(jiān)控一次,獲取并輸出實(shí)際情況。 出事狀態(tài)設(shè)為:隊(duì)列為空(front=rear=MAX),每臺油泵為空閑(pump(1)=pump(2)=0),油泵未服務(wù)過(auto(1)=auto(2)=-1)。if(rear+1MAX) thenrear=1;
3、else rear+=1;timequeuetimequeue dt條件:s= 2m即 dt = g/2在模擬時(shí)間time內(nèi),每隔dt時(shí)間,監(jiān)控并報(bào)告一次車排隊(duì)的情況,油泵的工作狀態(tài),被服務(wù)的車。因此用一維整型數(shù)組Queue 存取 車編號num的數(shù)據(jù)。量化后數(shù)字信號模擬信號整個(gè)問題可分為三部分: 1) 汽車排隊(duì):已知一分鐘來一輛車的概率為 1/g,則每隔 dt分鐘來一輛車的概率為 dt/g。由于來車的問題是隨機(jī)的,因此,實(shí)際處理時(shí),每隔t分鐘產(chǎn)生一個(gè)隨機(jī)數(shù) rnd (0-1內(nèi)),若它小于等于 dt/g,則認(rèn)定有一輛車進(jìn)站,應(yīng)將它加入隊(duì)列中。 2) 油泵工作狀態(tài):用pump(i)表示第 i(i=
4、1,2)每臺油泵工作進(jìn)程,用 auto(i)表示第 i臺油泵的服務(wù)對象。則當(dāng)?shù)?i臺油泵開始為一輛車工作時(shí),置 pump(i)=d-dt,以后每 dt分鐘,令pump(i)=pump(i)-dt。若 pump(i)0時(shí),若pump(i)0表示油泵 i正在為 auto(i)加油;若pump(i)0表示油泵i 所余時(shí)間才能加完油;若pump(i)0表示油泵i剛為 auto(i)加完油;若pump(i)=0表示油泵i已經(jīng)為 auto(i)加完油。排隊(duì)Queue rearfront尾指針將新元素插入隊(duì)中頭指針將等待的元素 對應(yīng)服務(wù)油泵123456MAXfrontrear2確定框架第一步模擬概率第二步模
5、擬排隊(duì)第三步模擬加油第四步采樣報(bào)告2確定框架開始建立循環(huán)隊(duì)列,設(shè)置油泵從未服務(wù)過且初始狀態(tài)空閑調(diào)用函數(shù)simu_aut模擬車排隊(duì);尾指針插入新元素到隊(duì)列有車來rear+=1;t 0時(shí),若FP(i)0表示油泵 i正在為 aut(i)加油,F(xiàn)P(i)的值為 到加完油還剩的時(shí)間;/ FP(i)=0為油泵可服務(wù)若FP(i)0表示油泵 i 剛為 aut(i)加完油;若FP(i)=0表示油泵 i 已經(jīng)為 aut(i)加完油。/*-輸入操作顯示-*/printf( 請輸入到車率中 g(分鐘): );scanf(%lf,&g);printf( 請輸入每輛加油時(shí)間 d(分鐘): );scanf(%lf,&d);
6、printf( 請輸入總模擬時(shí)間長度 Time(分鐘): );scanf(%lf,&Time);printf( 請輸入采樣時(shí)間 dt(分鐘): );scanf(%lf,&dt);printf(-n); 這里時(shí)間用到的都是double型,提高模擬的準(zhǔn)確度num=0; t=0; srand(unsigned)time(NULL);while (tTime)/在模擬時(shí)間未結(jié)束 /*隨機(jī)數(shù)0-1之間產(chǎn)生*/rnd=rand( )/(double)RAND_MAX+1); /*32767,范圍不會超過 -3276832767,rnd=rand()/32767.00; */simu_aut(Queue,M
7、AX,&rear,&num,dt,g,rnd); /num,front,rear所占內(nèi)存地址simu_pump(Queue,MAX,&front,rear,dt,d,FP,aut,1); /front所占內(nèi)存地址,在此函數(shù)中rear=*rear+=1;simu_pump(Queue,MAX,&front,rear,dt,d,FP,aut,2); /front所占內(nèi)存地址,在此函數(shù)中rear=*rear+=1;print_out(Queue,MAX,front,rear,FP,aut);t=t+dt;free(Queue); /釋放循環(huán)隊(duì)列空間模塊函數(shù);p 模擬汽車排隊(duì)函數(shù)p 模擬加油泵1工作函
8、數(shù)p 模擬加油泵2工作函數(shù)/*-模擬汽車排隊(duì)-*/simu_aut(Queue,MAX,rear,num,dt,g,rnd)int Queue ,MAX,*rear,*num; /指針指向num,front,rear所占內(nèi)存地址double dt,g,rnd;if(rnd=dt/g) /滿足概率則給車編號加入循環(huán)隊(duì)列*num+=1;*rear+=1;if(*rear=MAX+1)*rear=1; /如果rear從1達(dá)到max后再前進(jìn)一個(gè)位置就自動到1; Queue*rear-1=*num; /循環(huán)隊(duì)列解決假溢出;從隊(duì)列開始位置入隊(duì)一個(gè)編號;用到了參數(shù)概率 rnd (采樣時(shí)間dt 到車率g確定概
9、率范圍)循環(huán)隊(duì)列 Queue尾指針 rear 將新元素插入隊(duì)中容量 MAX給車編號 nump編號入隊(duì)后一次判斷油泵是否可以服務(wù);判斷隊(duì)列中是否有車;有車就將排在隊(duì)首的元素給空閑的泵服務(wù);p判斷查詢一次都要在時(shí)間上減去dt;以FPi的大小可以參照還有多長時(shí)間可以加完油;/*-模擬油泵i工作-*/simu_pump(Queue,MAX,front,rear,dt,d,FP,aut,i)int Queue ,MAX,*rear,*front,FP ,aut ,i;double dt,d;if(FPi-1=0)/加油泵可以服務(wù);(沒車來 或 剛好有車來)if(*front=rear)/rear=1和隊(duì)
10、空判斷;FPi-1=0;/沒有車即空閑狀態(tài);else *front=*front+1;if(*front=MAX+1)*front=1;/解決假溢出auti-1=Queue*front-1;/第i輛車被服務(wù)FPi-1=d-dt;else FPi-1=FPi-1-dt;p每隔dt時(shí)間報(bào)告一次p經(jīng)過前兩個(gè)函數(shù)運(yùn)行后,可以得到插入隊(duì)列的編號(即排隊(duì)的車數(shù))p被服務(wù)的車的編號p加油泵1、2的工作狀態(tài)pfront比rear小 說明rear插入的多 front服務(wù)的少 從front開始遍歷到rear找到正在排隊(duì)的編號/*-模擬結(jié)果的輸出-*/print_out(Queue,MAX,front,rear,FP,aut)int Queue ,MAX,rear,front,FP ,aut ;int k; k=front; while(k!=rear) /兩臺都在忙且rear插入的比服務(wù)front的多 k=k+1;if(k=MAX+1)k=1;printf(Queue(
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 草皮種植與生態(tài)農(nóng)業(yè)園合作建設(shè)合同
- 超高層建筑卸料平臺優(yōu)化設(shè)計(jì)與應(yīng)用技術(shù)
- 書友會讀書活動方案
- 醫(yī)院抹布分色管理制度
- 黨員快遞驛站管理制度
- 醫(yī)院住院用具管理制度
- 農(nóng)村村規(guī)民約管理制度
- 公司購房補(bǔ)貼管理制度
- 國企會議制度管理制度
- 醫(yī)院分值付費(fèi)管理制度
- 工程監(jiān)理大綱監(jiān)理方案服務(wù)方案
- 《殺死一只知更鳥》讀書分享PPT
- 工業(yè)以太網(wǎng)交換機(jī)-IETH9424-安裝說明書
- GA 1801.3-2022國家戰(zhàn)略儲備庫反恐怖防范要求第3部分:成品油庫
- 血液透析患者飲食指導(dǎo)
- 脫硫塔玻璃鱗片膠泥襯里施工組織設(shè)計(jì)
- XB/T 505-2011汽油車排氣凈化催化劑載體
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 27744-2021異步起動永磁同步電動機(jī)技術(shù)條件及能效分級(機(jī)座號80~355)
- GB 8076-2008混凝土外加劑
- 寶盾轉(zhuǎn)門故障代碼
評論
0/150
提交評論