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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計銀行業(yè)務(wù)模擬(編輯修改稿)

2025-07-12 01:47 本頁面
 

【文章內(nèi)容簡介】 randomTemp = rand()%(dealMaxTimedealMinTime +1)+dealMinTime。//處理時間為隨機(jī)產(chǎn)生的介于最大處理時間和最小處理時間之間的處理時間 back(eq)endTime = currentTime + randomTemp 。//客戶離開時間為當(dāng)前時間加上處理時間 currentTimeOfDeal += randomTemp。//更新交易時間 ++counter。 //更新客 戶總數(shù) totalTime += ( back(eq)endTime tempedbeginTime )。 //更新逗留時間 delete temped。 //刪除節(jié)點(diǎn) temped = NULL。 } state = 0。 } (從銀行取出一筆錢)時,我沒有特殊處理,僅是和處理第二種一樣,即是等到該顧客交易時間結(jié)束時才開始判斷,如果不夠取進(jìn)入第二隊(duì)列等候。但題目中有“ 如果屬于第一種,且申請額超出銀行現(xiàn)存資 金總額而得不到滿足,則立刻排入第 2個隊(duì)等候,直至滿足時才離開銀行,否則業(yè)務(wù)處理完后立刻離開銀行 ”。想想這也是符合實(shí)際。于是改算法的判斷為以下算法: 偽 代 碼: { if(! empry( fq) amp。amp。 money0) //如果隊(duì)列一不空,而且隊(duì)頭客戶辦理第二種業(yè)務(wù) { // ,完成離開 (即銀行現(xiàn)金足夠取 ) //,排隊(duì) 2 等候 } 12 else //存款 ,第一種業(yè)務(wù) if(!empty(fq) amp。amp。 temped= searchAndDel(sq,total))) //當(dāng)交易時間到 { //辦理該業(yè)務(wù),并開始掃描第二隊(duì)列,看是否能滿足 //第二隊(duì)列需要 } if(currentime==next_arrtime ) { //當(dāng)當(dāng)前時間等于即將到來的顧客到來時間,初始化 //該顧客節(jié)點(diǎn),并設(shè)置下一顧客到達(dá)時間 } } ,一直不成功,后經(jīng)老師指導(dǎo),平均逗留時間算法思想如下:已成功交易的客戶,逗留時間為他的離開時間和到達(dá)時間之差,直到銀行營業(yè)結(jié)束,沒有成功交易的客戶的逗留時間不算入內(nèi),總的逗留時間為每個成功交易的客戶的逗留時間之和,平 均逗留時間為總的逗留時間除以成功交易的客戶數(shù)。 用戶按任意鍵繼續(xù),則會出現(xiàn)如下主界面: 用戶選擇 1 開始模擬。按提示輸入相應(yīng)的數(shù)據(jù)設(shè)置,就能得到想要的模擬結(jié)果。退出選擇 0. 對用戶輸入要求如下: 1. 銀行開始的資金總額應(yīng)該大于零。 2. 銀行開始的資金總額應(yīng)該大于零。 3. 銀行的營業(yè)時間必須小于 1440 分鐘( 24 小時)。 4. 最大到達(dá)時間間隔必須小于營業(yè)時間。 5. 最小到達(dá)時間間隔必須介于零和最大到達(dá)時間之間。 6. 最大處理時間必須小于營業(yè)時間。 7. 最小處理時間必須介于零和最大處理時間之間。 8. 最大交易額應(yīng)該小于銀行開始時的 資金總額且小于程序設(shè)置的 50000。 如果輸入不符合上述要求,程序會提示用戶哪里輸入出錯,可以再次輸入。每個輸入數(shù)據(jù)都有 3 次機(jī)會。當(dāng)三次輸入都錯的時候,程序停止運(yùn)行,按任意鍵退出。 現(xiàn)給出最小處理時間出錯時的三種提示截圖: 13 正確輸入并開始模擬運(yùn)行: 輸入一般數(shù)據(jù): a. 銀行初始資金 total= 5000 b. 銀行營業(yè)時間 closetime= 50 c. 客戶到達(dá)時間間隔上界 arrivemaxtime= 5和arrivemintime=3 客戶交易時間上界 dealmaxtime= 8和 dealmintime=4 14 15 //銀行業(yè)務(wù)模擬系統(tǒng) include iostream include string include include using namespace std。 struct service { int num。 //客戶號 string type。 //到達(dá)或離開 int beginTime。//到達(dá)時間 int endTime。//離開時間 int money。 //正數(shù)為存款,負(fù)數(shù)為取款 service* next。//指針域 }。 struct queue //隊(duì)列 { service* head。//隊(duì)列頭指針 service* rear。//隊(duì)列尾指針 }。 int total。 //初始時銀行現(xiàn)存資金總額 int closeTime。 //營業(yè)結(jié)束時間 int arriveMaxTime。 //兩個到達(dá)事件之間的間隔上限 int arriveMinTime。 //兩個到達(dá)事件之間的間隔下限 int dealMaxTime。 //客戶之間交易的時間上限 int dealMinTime。 //客戶之間交易的時間下限 int dealMaxMoney 。 //交易額上限 int ndn=0。//需要存款的人數(shù) int nwn=0。//需要取款的人數(shù) int sdn=0。//成功存款的人數(shù) int swn=0。//成功取款的人數(shù) int currentTime = 0。 //當(dāng)前時間 int totalTime = 0。 //客戶逗留總時間 int counter = 0。 //客戶總數(shù) 16 int number = 1。 //初始客戶序列號 bool state =1。 //用于判斷是否有窗口在處理 int currentTimeOfDeal = 0。//交易時間 int thearriveMaxTime = 0。//最大到達(dá)時間 queue eq。 //事件隊(duì)列 queue fq。 //隊(duì)列一 queue sq。 //對列二 //初始化三個隊(duì)列 service* front(queue amp。q)//返回隊(duì)首元素 { return q. head。 } service* back(queue amp。q)//返回隊(duì)尾元素 { return q. rear。 } void push(queue amp。q,int d)//入隊(duì)列函數(shù),插入元素 d 為隊(duì)列 q 的新的隊(duì)尾元素 { service* temp = new service。 tempmoney = d。 tempnext = NULL。 if(==NULL)//隊(duì)列為空,初始化 { q. head = temp。 q. rear = temp。 } else//隊(duì)列不為空,插入元素 d { q. rearnext = temp。 q. rear = next。 } } void pop(queue amp。q)// 若隊(duì)列不空 ,出對列函數(shù) { service* temp。 temp = q. head。 17 if(q. headnext==NULL )//對列只有一個元素 = q. rear =NULL。 else q. head=q. headnext。 delete temp。 } void arrive()//到達(dá) 函數(shù),隨機(jī)產(chǎn)生顧客,進(jìn)入隊(duì)列一產(chǎn)生到達(dá)事件 進(jìn)入事件隊(duì)列 { push(fq,(rand()% (2*dealMaxMoney) dealMaxMoney))。 //隨機(jī)產(chǎn)生顧客加入第一隊(duì)列 back(fq)beginTime = currentTime。//當(dāng)前時間為客戶的到達(dá)時間 back(fq)num = number。//客戶號為客戶序列號 push(eq,(back(fq)money))。 //將產(chǎn)生事件加入事件隊(duì)列 back(eq)beginTime = currentTime。 back(eq)type = 到達(dá) 。 back(eq)num = number。 ++number。 } void putMoney()//存款 函數(shù) { total += front(fq)money。 //更新資金總額 push(eq,front(fq)money)。 //加入事件隊(duì)列 back(eq)type = 離開 。 back(eq)num = front(fq)num。 back(eq)endTime = (front(fq)beginTime + rand()%(dealMaxTimedealMinTime +1)+dealMinTime)。//離開時間為到達(dá)時間加上隨機(jī)產(chǎn)生的介于最大處理時間和最小處理時間的處理時間 ++counter。 //更新客戶總數(shù) totalTime += (back(eq)endTime front(fq)beginTime)。 //更新逗留時間 pop(fq)。 //刪除第一隊(duì)列第一個業(yè)務(wù) currentTimeOfDeal = back(eq)endTime。//交易時間為客戶的離開時間 state =0。//窗口沒有交易需要處理 } void getMoney()//取款 函數(shù) { if( (money) total )//資金短缺 加入第二隊(duì)列 { push( sq,front(fq)money )。 18 back(sq)beginTime = front(fq)beginTime。 back(sq)num = front(fq)num。 pop(fq)。 } else { total += back(fq)money。//更新資金總額 push(eq,front(fq)money)。 //加入事件隊(duì)列 back(eq)type = 離開 。 back(eq)num = front(fq)num。 back(eq)endTime = (front(fq)beginTime +rand()%(dealMaxTimedealMinTime +1)+dealMinTime)。//客戶的離開時間為客戶的到達(dá)時間加上隨機(jī)產(chǎn)生的介于最大處理時間和最小處理時間的處理時間 back(eq)beginTime = 0。 currentTimeOfDeal = back(eq)endTime。//交易時間為客戶的離開時間 ++counter。 //更新客戶總數(shù) totalTime += ( back(eq)endTime back(fq)beginTime )。 //更新逗留時間 pop(fq)。 //刪除第一隊(duì)列第一個業(yè)務(wù) state =0。//窗口沒有交易需要處理 } } service* searchAndDeal(queue amp。q,int m)//搜索 函數(shù),在對列中尋找可處理元素 { service* sign = q. head。 //標(biāo)記頭節(jié)點(diǎn) service* temp。 while(q. hea
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1