




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計理發(fā)館仿真模擬(基于隊列)問題描述(或者需求分析)理發(fā)館一天的工作過程如下:
1)理發(fā)館有N把理發(fā)椅,可同時為N位顧客進(jìn)行理發(fā)。
2)理發(fā)師分三個等級(一級、二級、三級),對應(yīng)不同的服務(wù)收費(fèi)。
3)當(dāng)顧客進(jìn)門時,需選擇某級別理發(fā)師,只要該級別的理發(fā)師有空椅,則可立即坐下理發(fā),否則需排隊等候。
4)一旦該級別的理發(fā)師有顧客理發(fā)完離去,排在隊頭的顧客便可開始理發(fā)。
5)若理發(fā)館每天連續(xù)營業(yè)T分鐘,求
(1)一天內(nèi)顧客在理發(fā)館內(nèi)的平均逗留時間;
(2)顧客排隊等候理發(fā)的隊列長度平均值;
(3)營業(yè)時間到點(diǎn)后仍需完成服務(wù)的收尾工作時間;
(4)統(tǒng)計每天的營業(yè)額;
(5)統(tǒng)計每天不同級別理發(fā)師的創(chuàng)收?;疽螅?)模擬理發(fā)館一天的工作過程:必須采用事件驅(qū)動的離散模型(參考教科書3.5節(jié)離散事件模擬p65);
2)每個顧客到達(dá)和下一顧客到達(dá)時間的間隔應(yīng)是隨機(jī)的;
3)理發(fā)師編號、理發(fā)師級別和每天的營業(yè)時間由用戶輸入;
4)某顧客挑選某一個級別的理發(fā)師而不得時,選第一個隊列排隊等待;
5)每個顧客進(jìn)門時將生成三個隨機(jī)數(shù):
(1)durtime:進(jìn)門顧客理發(fā)所需服務(wù)時間(簡稱:理發(fā)時間);
(2)intertime:下一顧客將到達(dá)的時間間隔(簡稱:間隔時間);
(3)select:服務(wù)選項。
6)服務(wù)收費(fèi):應(yīng)包含服務(wù)時間和理發(fā)師級別兩個因素。
7)除了輸出統(tǒng)計的數(shù)據(jù)外,還需要顯示理發(fā)館的狀態(tài),可以采用文本方式(橫向顯示每張椅編號、理發(fā)師級別??v向表示等待該理發(fā)師理發(fā)的排隊長度)。算法設(shè)計思想:在實(shí)現(xiàn)技術(shù)上,假設(shè)當(dāng)前temp每次將它加一表示過了一分鐘,然后判斷在這個時間單位中判斷是否有人理發(fā)完畢,如果有將此座位上的num置為-1。然后判斷是否有人可以接受服務(wù),如果有判斷是否有空椅子,如果有,則進(jìn)入理發(fā),否則將他入隊。重復(fù)執(zhí)行上面的過程,直到temp加到了其關(guān)門時間。顧客進(jìn)門和出門這兩個時刻發(fā)生的事情稱“事件”,按事件的先后次序逐個處理事件的工作方式稱“事件驅(qū)動模擬”。離散事件驅(qū)動模型的特點(diǎn)是只關(guān)注和刻畫事物的狀態(tài)變化(即事件),不關(guān)心變化的過渡過程。模型靠每一個事件引發(fā)其它事件的方式來維持運(yùn)轉(zhuǎn)。每個事件都有發(fā)生時間,模型的運(yùn)轉(zhuǎn)實(shí)際就是按事件發(fā)生時間順序逐個處理事件,'處理'將產(chǎn)生新的事件。因此,建模的關(guān)鍵就是全面分析事物的主要特點(diǎn),抽象出幾種能反映本質(zhì)的事件和它們之間的驅(qū)動關(guān)系。系統(tǒng)時間就是當(dāng)前事件的事件發(fā)生時間,它不是等間隔變化而是跳躍變化的。程序中的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)說明:顧客結(jié)構(gòu):typedefstruct{intnum;intcometime;intdurtime;intwaittime;}cutpeople;理發(fā)椅結(jié)構(gòu)體:typedefstructcutnode{intnum;/*顧客編號*/intcometime;/*顧客到達(dá)時間*/structcutnode*next;}cutnode;/*隊列的結(jié)點(diǎn)定義*/隊列結(jié)構(gòu)體:typedefstruct{cutnode*front;cutnode*rear;}cutqueue;/*隊列的鏈?zhǔn)蕉x*/流程圖:部分圖示(程序運(yùn)行截圖)程序代碼:#defineNUM100#defineERROR0#defineKONG-1#include<stdio.h>#include<math.h>#include<conio.h>typedefstruct{intnum;intcometime;intdurtime;intwaittime;}cutpeople;/*顧客信息結(jié)點(diǎn)的定義*/typedefstructcutnode{intnum;/*顧客編號*/intcometime;/*顧客到達(dá)時間*/structcutnode*next;}cutnode;/*隊列的結(jié)點(diǎn)定義*/typedefstruct{cutnode*front;cutnode*rear;}cutqueue;/*隊列的鏈?zhǔn)蕉x*/intinitqueue(cutqueue*d1){d1->front=(cutnode*)malloc(sizeof(cutnode));if(d1->front){d1->front->next=NULL;d1->rear=d1->front;}elsereturn(OVERFLOW);}/*初始化隊列*/intenterqueue(cutqueue*d2,intcometime,intnum){cutnode*q;q=(cutnode*)malloc(sizeof(cutnode));if(q){q->cometime=cometime;q->num=num;q->next=NULL;d2->rear->next=q;d2->rear=q;}elsereturn(OVERFLOW);}/*入隊列*/cutnodedeleted(cutqueue*d3){cutnode*a;cutnodep;a=d3->front->next;d3->front->next=a->next;etime=a->cometime;p.num=a->num;if(d3->rear==a)d3->rear=d3->front;free(a);return(p);}/*出隊列*/intpdkong1(cutqueue*d4)/*判斷隊列是否為空*/{if(d4->front!=d4->rear)return(1);elsereturn(0);}voidinitundercut(cutpeople*undercut,intd5)/*數(shù)組undercut指的是理發(fā)店內(nèi)的位子*/{inti;for(i=0;i<d5;i++){undercut[i].num=-1;/*若位子上沒有人,則其num取值為-1*/undercut[i].cometime=-1;undercut[i].durtime=-1;undercut[i].waittime=-1;}}/*初始化理發(fā)店內(nèi)的位子情況*/intpdkong2(cutpeople*undercut,intd6){intk=0;while(k<d6){if(undercut[k].num==-1)break;elsek++;}if(k>=d6)return(-1);elsereturn(k);}/*判斷店內(nèi)是否有空位子,若有,返回位置,否則返回0*/intpdtime(cutpeople*undercut,intd7,inttime,intv[20]){intb=0,i=0,j;for(j=0;j<20;j++)v[j]=-1;/*數(shù)組v裝的是在此時刻同時理發(fā)完畢的人*/while(b<d7){if(undercut[b].cometime+undercut[b].waittime+undercut[b].durtime==time)v[i++]=b;b++;}}/*判斷在time時刻是否有人已經(jīng)理發(fā)完畢*/main(){intN,T,R;/*椅子數(shù).總時間.隨機(jī)數(shù)*/cutqueues;/*等待隊列*/inttemp=0;/*時間計數(shù)器*/intnumber_custeromer=1;/*顧客總數(shù)*/intintertime;/*記錄下一個顧客來的時間間隔*/intu[20],r,i,a;inttotallenth=0;cutnodez;cutpeople*undercut;floataverage_time,average_queuelength;undercut=(cutpeople*)malloc(N*sizeof(cutpeople));initundercut(undercut,N);initqueue(&s);printf("Pleaseshuruthechairs:");scanf("%d",&N);printf("Pleaseshuruyingyeshijian:");scanf("%d",&T);undercut[0].num=number_custeromer++;undercut[0].cometime=0;undercut[0].waittime=0;R=fabs(srand((unsigned)time(NULL)));/*產(chǎn)生隨機(jī)數(shù)*/undercut[0].durtime=15+R%50;intertime=2+R%10;clrscr();/*清屏*/printf("numcometimedurtime\n");while(temp<=T||pdkong1(&s)){intertime--;temp++;pdtime(undercut,N,temp,u);if(u[0]!=-1)/*判斷是否有理發(fā)完畢的人*/{for(r=0;r<20&&u[r]!=-1;r++){printf("%4d%4d%4d\n",undercut[u[r]].num,undercut[u[r]].cometime+undercut[u[r]].waittime,undercut[u[r]].durtime);undercut[u[r]].num=-1;if(pdkong1(&s)){z=deleted(&s);R=fabs(srand((unsigned)time(NULL)+temp));undercut[u[r]].durtime=15+R%50;undercut[u[r]].num=z.num;undercut[u[r]].cometime=etime;undercut[u[r]].waittime=etime;intertime=2+R%10;}}/*如果有理發(fā)完畢的人,并且隊列不空,就出隊*/}if(intertime==0)/*如果有人來理發(fā)了*/{R=fabs(srand((unsigned)time(NULL)+temp));intertime=2+R%10;if(T-temp>=intertime){i=pdkong2(undercut,N);/*判斷是否有空位子*/if(i>=0){undercut[i].durtime=15+R%50;if(T-temp>=undercut[i].durtime)/*判斷是否符合進(jìn)入條件*/{undercut[i].num=number_custeromer++;
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年計算機(jī)網(wǎng)絡(luò)基礎(chǔ)中國石油大學(xué)繼續(xù)教育試題及答案
- 未成年工協(xié)議書范本
- 原始資金轉(zhuǎn)讓協(xié)議書范本
- 2025年中學(xué)生安全知識競賽題庫及答案
- 業(yè)主水電安裝協(xié)議書范本
- 2025至2030中國金屬旋開蓋行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 2025年公需科目人工智能與健康試題及答案
- 2025年采制樣操規(guī)試卷及答案
- 2025年醫(yī)院醫(yī)療衛(wèi)生法律法規(guī)考試題庫及參考答案
- 2025年鐵路軌道施工與維護(hù)考試題及答案
- 桌游吧商業(yè)實(shí)施計劃書
- 江蘇省蘇州市吳中、吳江、相城區(qū)2024-2025學(xué)年七年級下學(xué)期期末考試英語試卷(含答案無聽力原文及音頻)
- 農(nóng)村戶廁衛(wèi)生標(biāo)準(zhǔn)
- 公司人事財務(wù)管理制度
- 生產(chǎn)保密文件管理制度
- 2025-2030中國小分子肽市場供需調(diào)查及發(fā)展趨勢預(yù)測報告
- 《無人機(jī)概論》高職無人機(jī)應(yīng)用技術(shù)專業(yè)全套教學(xué)課件
- 2025年湖北聯(lián)投招聘筆試沖刺題(帶答案解析)
- 動靜能設(shè)備管理制度
- 投資款退回協(xié)議書
- 外墻仿石漆合同協(xié)議書
評論
0/150
提交評論