銀行家算法簡(jiǎn)要概述_第1頁(yè)
銀行家算法簡(jiǎn)要概述_第2頁(yè)
銀行家算法簡(jiǎn)要概述_第3頁(yè)
銀行家算法簡(jiǎn)要概述_第4頁(yè)
銀行家算法簡(jiǎn)要概述_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一 需求分析n 銀行模擬系統(tǒng)要求模擬銀行一天0closetime的營(yíng)業(yè)情況,業(yè)務(wù)總共分為兩類。存款與取款。開(kāi)始銀行擁有一定數(shù)量的總額total供運(yùn)行。程序運(yùn)行輸出銀行在處理業(yè)務(wù)后的事件表。包括時(shí)間,存款數(shù)量,取款數(shù)量,銀行余額,等待情況。n 程序輸入的形式是按以下順序輸入到屏幕中,只需按照提示操作即可:銀行總余額 銀行運(yùn)行時(shí)間-交易時(shí)間上、下界-事件時(shí)間上、下界-客戶存取金額n 程序輸出的形式是按照時(shí)間順序輸出銀行運(yùn)行期間的事件表n 程序的功能是模擬顯示銀行在整個(gè)營(yíng)業(yè)階段的運(yùn)行狀況二 概要設(shè)計(jì)本程序中用到的抽象數(shù)據(jù)類型有偽隨機(jī)數(shù)類random,隊(duì)列類bankqueue,客戶類client偽隨機(jī)數(shù)類random的定義如下:class randompublic:random();/空構(gòu)造函數(shù)random(unsigned short initialSeed);/帶參構(gòu)造unsigned short randomInterger();/種子seed產(chǎn)生函數(shù)double rabdomDouble();/雙精度數(shù)產(chǎn)生函數(shù)double between(double low ,double high);/范圍隨機(jī)數(shù)產(chǎn)生函數(shù)(double型)int between(int low,int high);/范圍隨機(jī)數(shù)產(chǎn)生函數(shù)(int型)private:unsigned short seed;客戶類client的定義如下:class Client public:int num;int money;Client *next;int Dealingtime;int Casetime;客戶隊(duì)列bankqueue定義如下:class bankqueuepublic:int n;bankqueue();/構(gòu)造bankqueue();/析構(gòu)void enqueue(Client * c);/進(jìn)隊(duì)列Client* dequeue();/出隊(duì)列int isEmpty();/判斷空否void deleteALLValues();/刪除所有元素private:Client *front,*tail;本程序利用隊(duì)列結(jié)果儲(chǔ)存客戶信息: 按提示輸入初始化銀行系統(tǒng)客戶信息隨機(jī)類產(chǎn)生客戶信息儲(chǔ)存與q1隊(duì)列里從q1中逐個(gè)彈出客戶信息,進(jìn)行交易,并顯示結(jié)果不能滿足的客戶保存在q2中等待處理時(shí)間到或者所以業(yè)務(wù)已經(jīng)完成就退出。刪除q1,q2保存的信息。 三 詳細(xì)設(shè)計(jì)隨機(jī)數(shù)類實(shí)現(xiàn):l 隨機(jī)數(shù)類構(gòu)造種子=時(shí)鐘;l 返回短整數(shù)的函數(shù)乘數(shù)=33339;加數(shù)=;種子=(乘數(shù)*種子+加數(shù))%;返回種子;l 在low和high之間產(chǎn)生整型隨機(jī)數(shù)調(diào)用 返回短整數(shù)的函數(shù)+low; 銀行節(jié)點(diǎn)和隊(duì)列類實(shí)現(xiàn):l 銀行隊(duì)列構(gòu)造函數(shù)前指針=0;尾指針=0;長(zhǎng)度=0;l 析構(gòu)函數(shù);進(jìn)隊(duì)列函數(shù)(銀行節(jié)點(diǎn)指針)節(jié)點(diǎn)指針數(shù)據(jù)復(fù)制到新節(jié)點(diǎn)指針數(shù)據(jù)如果隊(duì)列空前指針=0; 尾指針=0尾指針=0;長(zhǎng)度+1;出隊(duì)列新建指針P頭指針向前走查看隊(duì)列是否為空返回指針Pl 判斷隊(duì)列是否為空返回 頭指針是否為0;刪除所有元素長(zhǎng)度,尾指針置0;從隊(duì)列里彈出節(jié)點(diǎn)并刪除四 調(diào)試分析 銀行模擬系統(tǒng)調(diào)試過(guò)程中遇到的問(wèn)題:由于要運(yùn)用到文件輸入輸出流,無(wú)法訪問(wèn)Bank類的私有數(shù)據(jù),故將大部分程序?qū)懭隡ain函數(shù)中經(jīng)驗(yàn)和體會(huì)等:從寫完代碼到調(diào)試成功,最后不斷的改進(jìn)和完善,不僅鞏固了類定義和實(shí)現(xiàn),還極大的挑戰(zhàn)了我們編程能力。五 用戶使用說(shuō)明 銀行模擬系統(tǒng)在程序運(yùn)行時(shí)會(huì)依次顯示-歡迎使用銀行模擬系統(tǒng),請(qǐng)按提示輸入-請(qǐng)輸入銀行最初存款總額:請(qǐng)輸入銀行營(yíng)業(yè)時(shí)間:輸入客戶交易時(shí)間的上、下界,并以逗號(hào)分隔開(kāi):請(qǐng)輸入事件之間時(shí)間間隔的上、下界,并以逗號(hào)分隔開(kāi):請(qǐng)按順序輸入客戶存取款的數(shù)額(取款負(fù)在金額前增加“-”,存款直接輸入金額即可,并以空格區(qū)分)輸入0模擬結(jié)束:只需按照提示輸入數(shù)據(jù)即可得到結(jié)果六 測(cè)試數(shù)據(jù) 銀行模擬系統(tǒng):l 正確的測(cè)試數(shù)據(jù):輸入數(shù)據(jù):0 600 100,1 20,1 100 200 -300 20 0 y10000 60000 20,1 20,1 -10000 -1 10000 -50000 60000 -7000 -80000 -90000 0 n輸出:-歡迎使用銀行模擬系統(tǒng),請(qǐng)按提示輸入-請(qǐng)輸入銀行最初存款總額:請(qǐng)輸入銀行營(yíng)業(yè)時(shí)間:輸入客戶交易時(shí)間的上、下界,并以逗號(hào)分隔開(kāi):請(qǐng)輸入事件之間時(shí)間間隔的上、下界,并以逗號(hào)分隔開(kāi):請(qǐng)按順序輸入客戶存取款的數(shù)額(取款負(fù)在金額前增加“-”,存款直接輸入金額即可,并以空格區(qū)分)輸入0模擬結(jié)束:第1個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第0分鐘,來(lái)到銀行,想要存取款100當(dāng)前銀行余額為¥0第1個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第0分鐘,向銀行存款$100當(dāng)前銀行余額為¥100第1個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第53分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥100現(xiàn)在檢查第二隊(duì)列第2個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第65分鐘,來(lái)到銀行,想要存取款200當(dāng)前銀行余額為¥100第2個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第65分鐘,向銀行存款$200當(dāng)前銀行余額為¥300第2個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第72分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥300現(xiàn)在檢查第二隊(duì)列第3個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第79分鐘,來(lái)到銀行,想要存取款-300當(dāng)前銀行余額為¥300第3個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第79分鐘,向銀行存款$-300當(dāng)前銀行余額為¥0第3個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第148分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥0現(xiàn)在檢查第二隊(duì)列第4個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第155分鐘,來(lái)到銀行,想要存取款20當(dāng)前銀行余額為¥0第4個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第155分鐘,向銀行存款$20當(dāng)前銀行余額為¥20第4個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第230分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥20現(xiàn)在檢查第二隊(duì)列廣播:走過(guò)路過(guò)不要錯(cuò)過(guò),存錢取錢安全方便又實(shí)惠是否需要對(duì)次日繼續(xù)模擬(Y/N):請(qǐng)輸入銀行最初存款總額:請(qǐng)輸入銀行營(yíng)業(yè)時(shí)間:輸入客戶交易時(shí)間的上、下界,并以逗號(hào)分隔開(kāi):請(qǐng)輸入事件之間時(shí)間間隔的上、下界,并以逗號(hào)分隔開(kāi):請(qǐng)按順序輸入客戶存取款的數(shù)額(取款負(fù)在金額前增加“-”,存款直接輸入金額即可,并以空格區(qū)分)輸入0模擬結(jié)束:第1個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第0分鐘,來(lái)到銀行,想要存取款-10000當(dāng)前銀行余額為¥10000第1個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第0分鐘,向銀行存款$-10000當(dāng)前銀行余額為¥0第1個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第13分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥0現(xiàn)在檢查第二隊(duì)列第2個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第25分鐘,來(lái)到銀行,想要存取款-1當(dāng)前銀行余額為¥0銀行總額不足,第2個(gè)客戶轉(zhuǎn)入第二隊(duì)列等待當(dāng)前銀行余額為¥0第3個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第32分鐘,來(lái)到銀行,想要存取款10000當(dāng)前銀行余額為¥0第3個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第32分鐘,向銀行存款$10000當(dāng)前銀行余額為¥10000第3個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第41分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥10000現(xiàn)在檢查第二隊(duì)列在第3個(gè)客戶后,從營(yíng)業(yè)開(kāi)始的第57分鐘,有第二隊(duì)列客戶從銀行取款-1離開(kāi)第4個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第57分鐘,來(lái)到銀行,想要存取款-50000當(dāng)前銀行余額為¥9999銀行總額不足,第4個(gè)客戶轉(zhuǎn)入第二隊(duì)列等待當(dāng)前銀行余額為¥9999第5個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第72分鐘,來(lái)到銀行,想要存取款60000當(dāng)前銀行余額為¥9999第5個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第72分鐘,向銀行存款$60000當(dāng)前銀行余額為¥69999第5個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第84分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥69999現(xiàn)在檢查第二隊(duì)列在第5個(gè)客戶后,從營(yíng)業(yè)開(kāi)始的第111分鐘,有第二隊(duì)列客戶從銀行取款-50000離開(kāi)第6個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第111分鐘,來(lái)到銀行,想要存取款-7000當(dāng)前銀行余額為¥19999第6個(gè)客戶從銀行取款¥-7000當(dāng)前銀行余額為¥12999第6個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第113分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥12999第7個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第126分鐘,來(lái)到銀行,想要存取款-80000當(dāng)前銀行余額為¥12999銀行總額不足,第7個(gè)客戶轉(zhuǎn)入第二隊(duì)列等待當(dāng)前銀行余額為¥12999第8個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第130分鐘,來(lái)到銀行,想要存取款-90000當(dāng)前銀行余額為¥12999銀行總額不足,第8個(gè)客戶轉(zhuǎn)入第二隊(duì)列等待當(dāng)前銀行余額為¥12999第9個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第148分鐘,來(lái)到銀行,想要存取款當(dāng)前銀行余額為¥12999第9個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第148分鐘,向銀行存款$當(dāng)前銀行余額為¥第9個(gè)客戶,從營(yíng)業(yè)開(kāi)始的第155分鐘,離開(kāi)銀行當(dāng)前銀行余額為¥現(xiàn)在檢查第二隊(duì)列在第9個(gè)客戶后,從營(yíng)業(yè)開(kāi)始的第171分鐘,有第二隊(duì)列客戶從銀行取款-80000離開(kāi)在第9個(gè)客戶后,從營(yíng)業(yè)開(kāi)始的第178分鐘,有第二隊(duì)列客戶從銀行取款-90000離開(kāi)廣播:走過(guò)路過(guò)不要錯(cuò)過(guò),存錢取錢安全方便又實(shí)惠是否需要

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論