版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課程名稱: 計算機技術綜合課程設計 </p><p> 題 目: 銀行業(yè)務模擬 </p><p> 學 院: 信息工程 系: * </p><p> 專 業(yè): * </p>&l
2、t;p> 班 級: 0* </p><p> 學 號: * </p><p> 學生姓名: * </p><p> 時 間: * </p><p><b> 問題
3、描述:</b></p><p> 客戶業(yè)務分為兩種。第一種是申請從銀行得到一筆資金,即取款或借款;第二種是向銀行中投入一筆資金,即存款或還款。銀行有兩個服務窗口,相應地有兩個隊列。客戶到達銀行后先排第一個隊。處理每個客戶業(yè)務時,如果屬于第一種,且申請額超出銀行現(xiàn)存資金總額而得不到滿足,則立刻排入第二個隊等候,直到滿足時才離開銀行;否則業(yè)務處理完后立刻離開銀行。每接待完一個第二種業(yè)務的客戶,則順序檢查
4、和處理(如果可能)第二個隊列中的客戶,對滿足的申請者予以滿足,不能滿足者重新排到第二個隊列的隊尾。注意,在此檢查過程中,一旦銀行資金總額少于或等于剛才第一個隊列中最后一個客戶(第二種業(yè)務)被接待之前的數(shù)額,或者本次已將第二個隊列檢查或處理了一遍,就停止檢查(因為此時已不可能還有能滿足者)轉而繼續(xù)接待第一個隊列的客戶。任何時刻都只開一個窗口。假設檢查不需要時間。營業(yè)時間結束時所有客戶立即離開銀行。</p><p>
5、 寫一個銀行業(yè)務的事件驅動模擬系統(tǒng),通過模擬方法求出客戶在銀行內逗留的平均時間。</p><p><b> 分析與設計</b></p><p><b> 問題分析:</b></p><p> 本問題主要需要處理兩個隊列(fq,sq)和一個事件表(eq)。一個隊列(fq)表示第一種業(yè)務(存款或還款),另一個隊列(sq
6、)表示第二種業(yè)務(取款或借款)。事件有兩類:到達銀行和離開銀行。到達事件發(fā)生時隨機地設置此用戶的交易時間和距下一到達事件之間的時間間隔。每個客戶要辦理的款額也應該是隨機確定的。初始時銀行現(xiàn)存資金總額為total。開始營業(yè)后的第一個事件是客戶到達,營業(yè)時間從0到closetime。Total和closetime以及隨機產生的時間和款項的上下界都是交互地從讓用戶從輸入,作為模擬參數(shù)。要得到相關的結果:由于下班時間到而沒能辦理的顧客數(shù);分別
7、列出需要辦理兩種業(yè)務的顧客數(shù);分別列出已成功辦理兩種業(yè)務的顧客數(shù);分別列出兩種業(yè)務的成功辦理率;客戶在銀行內的平均逗留時間;下班時銀行所剩余的資金總額。</p><p> 測試數(shù)據(jù)及期望結果:</p><p><b> 輸入:</b></p><p> 用戶需要在程序運行開始時輸入以下數(shù)據(jù):</p><p> 銀
8、行初始資金total(測試數(shù)據(jù)為10000)</p><p> 銀行營業(yè)時間closetime(測試數(shù)據(jù)為600)</p><p> 客戶交易時間上下界dealmaxtime和dealmintime,用于給隨機數(shù)產生函數(shù)傳遞參數(shù),產生一個介于這兩個值之間的值。</p><p> 客戶到達時間間隔上界arrivemaxtime arrivemintime,用于給
9、隨機數(shù)產生函數(shù)傳遞參數(shù),產生一個介于這兩個值之間的值。</p><p> 交易額的最大上限dealMaxMoney.用于給隨機函產生函數(shù)參數(shù),產生一個介于-dealMaxMoney和dealMaxMoney之間的值,作為顧客到銀行辦理業(yè)務的交易額。</p><p><b> 輸出:</b></p><p> 本程序用dos界面模擬輸出整個
10、銀行業(yè)務辦理及排隊的結果,最后給出一下數(shù)據(jù):</p><p> 由于下班時間到而沒能辦理的顧客數(shù)</p><p> 分別列出需要辦理兩種業(yè)務的顧客數(shù)</p><p> 分別列出已成功辦理兩種業(yè)務的顧客數(shù)</p><p> 分別列出兩種業(yè)務的成功辦理率。</p><p> 客戶在銀行內的平均逗留時間</p
11、><p> 下班時銀行所剩余的資金總額</p><p> 所有數(shù)據(jù)均要正確輸入,并對輸入合法性進行檢測,如只能輸入數(shù)字,且上界必須不小于下界。</p><p><b> 預計實現(xiàn)結果截圖:</b></p><p> 用戶打開運行程序以后會出現(xiàn)如下的首界面:</p><p> 用戶按任意鍵
12、繼續(xù),則會出現(xiàn)如下主界面:</p><p> 用戶選擇1開始模擬。按提示輸入相應的數(shù)據(jù)設置,就能得到想要的模擬結果。退出選擇0.</p><p> 對用戶輸入要求如下:</p><p> 銀行開始的資金總額應該大于零。</p><p> 銀行的營業(yè)時間必須小于1440分鐘(24小時)。</p><p> 最大
13、到達時間間隔必須小于營業(yè)時間。</p><p> 最小到達時間間隔必須介于零和最大到達時間之間。</p><p> 最大處理時間必須小于營業(yè)時間。</p><p> 最小處理時間必須介于零和最大處理時間之間。</p><p> 最大交易額應該小于銀行開始時的資金總額且小于程序設置的50000。</p><p>
14、 如果輸入不符合上述要求,程序會提示用戶哪里輸入出錯,可以再次輸入。每個輸入數(shù)據(jù)都有3次機會。當三次輸入都錯的時候,程序停止運行,按任意鍵退出。</p><p> 現(xiàn)給出最小處理時間出錯時的三種提示截圖:</p><p> 模塊結果及各個模塊的實現(xiàn)方法描述:</p><p><b> 概要設計</b></p><p&
15、gt;<b> 結構體的定義如下:</b></p><p> struct service</p><p><b> {</b></p><p> int num; //客戶號</p><p> string type; //到達或離開</p><p> int
16、beginTime;//到達時間</p><p> int endTime;//離開時間</p><p> int money; //正數(shù)為存款,負數(shù)為取款</p><p> service* next;//指針域</p><p><b> };</b></p><p> 隊列的抽象數(shù)據(jù)
17、類型定義如下:</p><p> ADT Queue{</p><p> 數(shù)據(jù)對象:D={ ai | ai∈ElemSet, i=1,2,...,n, n≥0 }</p><p> 數(shù)據(jù)關系:R1={ <ai-1, ai>|ai-1, ai∈D, i=2,...,n }</p><p><b> 基本操作:&l
18、t;/b></p><p> void init_Q(Queue &Q);</p><p> 操作結果:構造空隊列Q</p><p> int Q_empty(Queue Q);</p><p> 初始條件:隊列Q存在</p><p> 操作結果:若Q為空隊列,則返回TRUE,否則FALSE&l
19、t;/p><p> int Q_length(Queue Q);</p><p> 初始條件:隊列Q存在</p><p> 操作結果:返回隊列Q的元素個數(shù),即隊列長度</p><p> int gethead_Q(Queue Q);</p><p> 初始條件:隊列Q存在</p><p>
20、 操作結果:返回隊列Q的隊頭元素</p><p> void en_Q(Queue &Q,int e);</p><p> 初始條件:隊列Q存在</p><p> 操作結果:插入元素e為Q的新的隊尾元素。</p><p> void de_Q(Queue &Q,int &e);</p><
21、p> 初始條件:隊列Q存在</p><p> 操作結果:刪除Q的隊頭元素。</p><p> }ADT Queue</p><p><b> 模塊及相互調用關系</b></p><p> 本程序包含3個模塊:</p><p><b> 主程序模塊</b>&l
22、t;/p><p> 隊列模塊--實現(xiàn)隊列抽象數(shù)據(jù)類型</p><p> 各模塊相互調用關系如下:</p><p><b> 主程序模塊</b></p><p><b> 隊列模塊</b></p><p><b> 算法設計</b></p>
23、;<p><b> 隊列類型</b></p><p> typedef struct QNode</p><p> {//隊列節(jié)點類型 </p><p> int data;</p><p> struct QNode *next;</p><p> }Q
24、Node,*PQNode;</p><p> typedef struct {</p><p> PQNode front;//隊頭指針</p><p> PQNode rear;//隊尾指針</p><p><b> }Queue;</b></p><p> 隊列的基本操作設
25、置如下:</p><p> void init_Q(Queue &Q);</p><p> //初始化,構造空隊列Q(Q.front=Q.rear)</p><p> int Q_empty(Queue Q);</p><p><b> //若隊列Q存在</b></p><p>
26、 //若Q為空隊列,則返回TRUE,否則FALSE</p><p> int Q_length(Queue Q);</p><p><b> //若隊列Q存在</b></p><p> //返回隊列Q的元素個數(shù),即隊列長度</p><p> int gethead_Q(Queue Q);</p>&
27、lt;p><b> //若隊列Q存在</b></p><p> //返回隊列Q的隊頭元素</p><p> void en_Q(Queue &Q,int e);</p><p><b> //若隊列Q存在</b></p><p> //插入元素e為Q的新的隊尾元素。</
28、p><p> void de_Q(Queue &Q,int &e);</p><p><b> //若隊列Q存在</b></p><p> //刪除Q的隊頭元素。</p><p><b> 其中操作算法:</b></p><p> void init_Q
29、(Queue &Q)</p><p><b> {</b></p><p> //初始化,構造空隊列Q(Q.front=Q.rear)</p><p> Q.front=Q.rear=(PQNode)malloc(sizeof(QNode));</p><p> if(!Q.front)exit(-1);
30、</p><p><b> } </b></p><p> int Q_empty(Queue Q)</p><p><b> {</b></p><p><b> //若隊列Q存在</b></p><p> //若Q為空隊列,則返回TRUE,
31、否則FALSE</p><p> if(Q.front==Q.rear)return 1;</p><p> else return 0;</p><p><b> }</b></p><p> int gethead_Q(Queue Q)</p><p><b> {<
32、/b></p><p><b> //若隊列Q存在</b></p><p> //返回隊列Q的隊頭元素</p><p> if(!Q_empty(Q))return Q.front->next->data;</p><p> else return 0;</p><p>
33、<b> }</b></p><p> int Q_length(Queue Q)</p><p><b> {</b></p><p><b> //若隊列Q存在</b></p><p> //返回隊列Q的元素個數(shù),即隊列長度</p><p>
34、; int count=0;</p><p> PQNode p=Q.front;</p><p> while(p!=Q.rear)</p><p><b> {</b></p><p><b> count++;</b></p><p> p=p->ne
35、xt;</p><p><b> }</b></p><p> return count;</p><p><b> }</b></p><p> void en_Q(Queue &Q,int e)</p><p><b> {</b>
36、</p><p><b> //若隊列Q存在</b></p><p> //插入元素e為Q的新的隊尾元素。</p><p> PQNode p=(PQNode)malloc(sizeof(QNode));</p><p> if(!p)exit(-1);</p><p> p->d
37、ata=e;p->next=NULL;</p><p> Q.rear->next=p;</p><p><b> Q.rear=p;</b></p><p><b> }</b></p><p> void de_Q(Queue &Q,int &e)</
38、p><p><b> {</b></p><p><b> //若隊列Q存在</b></p><p> //刪除Q的隊頭元素</p><p><b> PQNode p;</b></p><p> if(Q.front==Q.rear)return
39、 ;</p><p> p=Q.front->next;</p><p> e=p->data;</p><p> Q.front->next=p->next;</p><p> if(Q.rear==p)Q.rear=Q.front;</p><p><b> free(p
40、);</b></p><p><b> }</b></p><p><b> 隊列掃描算法</b></p><p><b> 偽碼:</b></p><p><b> {</b></p><p> if(!em
41、pry(fq)&& fq.head->money<0)</p><p> //如果隊列一不空,而且隊頭客戶辦理第二種業(yè)務</p><p><b> {</b></p><p> //1.可以辦,完成離開(即銀行現(xiàn)金足夠取)</p><p> //2.不可以辦,排隊2等候</p&g
42、t;<p><b> }</b></p><p><b> else </b></p><p> //存款 ,第一種業(yè)務 </p><p> if(!empty(fq) && temped= searchAndDel(sq,total)))</p><p>
43、;<b> //當交易時間到</b></p><p><b> {</b></p><p> //辦理該業(yè)務,并開始掃描第二隊列,看是否能滿足//第二隊列需要</p><p><b> }</b></p><p> if(currentime==next_arrti
44、me )</p><p><b> {</b></p><p> //當當前時間等于即將到來的顧客到來時間,初始化//該顧客節(jié)點,并設置下一顧客到達時間</p><p><b> }</b></p><p><b> }</b></p><p&g
45、t;<b> 其他函數(shù)算法</b></p><p> int rand_num(int max,int min)//隨機數(shù)生成</p><p><b> {</b></p><p> //根據(jù)傳進的max和min,生成介于max和min的一個//整數(shù)</p><p> random
46、ize();</p><p> RandSeed=Now();</p><p> return ( random(100000) % (max - min + 1) +min );</p><p><b> } </b></p><p><b> 源代碼:</b></p>&l
47、t;p> //銀行業(yè)務模擬系統(tǒng)</p><p> #include <iostream></p><p> #include <string></p><p> #include <conio.h></p><p> #include <time.h></p>&l
48、t;p> using namespace std;</p><p> struct service</p><p><b> {</b></p><p> int num; //客戶號</p><p> string type; //到達或離開</p><p> int begi
49、nTime;//到達時間</p><p> int endTime;//離開時間</p><p> int money; //正數(shù)為存款,負數(shù)為取款</p><p> service* next;//指針域</p><p><b> };</b></p><p> struct queu
50、e</p><p><b> { //隊列</b></p><p> service* head;//隊列頭指針</p><p> service* rear;//隊列尾指針</p><p><b> };</b></p><p> int total; //初始時
51、銀行現(xiàn)存資金總額</p><p> int closeTime; //營業(yè)結束時間</p><p> int arriveMaxTime; //兩個到達事件之間的間隔上限</p><p> int arriveMinTime; //兩個到達事件之間的間隔下限</p><p> int dealMaxTime; //客戶之間交易的時間上
52、限</p><p> int dealMinTime; //客戶之間交易的時間下限</p><p> int dealMaxMoney ; //交易額上限</p><p> int ndn=0;//需要存款的人數(shù)</p><p> int nwn=0;//需要取款的人數(shù)</p><p> int sdn=0;
53、//成功存款的人數(shù)</p><p> int swn=0;//成功取款的人數(shù)</p><p> int currentTime = 0; //當前時間</p><p> int totalTime = 0; //客戶逗留總時間</p><p> int counter = 0; //客戶總數(shù)</p><p>
54、 int number = 1; //初始客戶序列號</p><p> bool state =1; //用于判斷是否有窗口在處理</p><p> int currentTimeOfDeal = 0;</p><p> int thearriveMaxTime = 0;</p><p> queue eq; //事件隊列</p
55、><p> queue fq; //隊列一</p><p> queue sq; //對列二</p><p><b> //初始化三個隊列</b></p><p> service* front(queue &q)</p><p><b> {//返回隊首元素</b&
56、gt;</p><p> return q. head;</p><p><b> }</b></p><p> service* back(queue &q)</p><p><b> {//返回隊尾元素</b></p><p> return q. re
57、ar;</p><p><b> }</b></p><p> void push(queue &q,int d)</p><p> {// 插入元素d為Q的新的隊尾元素</p><p> service* temp = new service;</p><p> temp-&g
58、t;money = d;</p><p> temp->next = NULL;</p><p> if(q.head==NULL)</p><p> {//隊列為空,初始化</p><p> q. head = temp;</p><p> q. rear = temp;</p><
59、;p><b> }//if</b></p><p><b> else </b></p><p> {//隊列不為空,插入元素d</p><p> q. rear->next = temp;</p><p> q. rear = q.rear->next;</p&g
60、t;<p><b> }//else</b></p><p><b> }</b></p><p> void pop(queue &q)</p><p> {// 若隊列不空,出對列函數(shù)</p><p> service* temp;</p><
61、p> temp = q. head;</p><p> if(q. head->next==NULL )</p><p> q.head = q. rear =NULL;</p><p><b> else</b></p><p> q. head=q. head->next;</p&g
62、t;<p> delete temp;</p><p><b> }</b></p><p> void arrive()</p><p> {//"到達"函數(shù),隨機產生顧客,進入隊列一產生到達事件 進入事件隊列</p><p> push(fq,(rand()% (2*dea
63、lMaxMoney) -dealMaxMoney)); //隨機產生顧客加入第一隊列</p><p> back(fq)->beginTime = currentTime;</p><p> back(fq)->num = number;</p><p> push(eq,(back(fq)->money)); //將產生事件加入事件隊列&
64、lt;/p><p> back(eq)->beginTime = currentTime;</p><p> back(eq)->type = "到達";</p><p> back(eq)->num = number;</p><p><b> ++number;</b><
65、;/p><p><b> }</b></p><p> void putMoney()</p><p> { //"存款"函數(shù)</p><p> total += front(fq)->money; //更新資金總額</p><p> push(eq,front(f
66、q)->money); //加入事件隊列 離開</p><p> back(eq)->type = "離開";</p><p> back(eq)->num = front(fq)->num;</p><p> back(eq)->endTime = (front(fq)->beginTime + ran
67、d()%(dealMaxTime-dealMinTime +1)+dealMinTime);</p><p> ++counter; //更新客戶總數(shù)</p><p> totalTime += (back(eq)->endTime - front(fq)->beginTime); //更新逗留時間</p><p> pop(fq); //刪除第一
68、隊列第一個業(yè)務</p><p> currentTimeOfDeal = back(eq)->endTime; </p><p><b> state =0;</b></p><p><b> }</b></p><p> void getMoney()</p><
69、p><b> {//"取款"函數(shù)</b></p><p> if( (-fq.head->money) > total ) </p><p> {//資金短缺 加入第二隊列</p><p> push( sq,front(fq)->money );</p><p>
70、back(sq)->beginTime = front(fq)->beginTime;</p><p> back(sq)->num = front(fq)->num;</p><p><b> pop(fq);</b></p><p><b> }//if</b></p>&l
71、t;p><b> else</b></p><p><b> {</b></p><p> total += back(fq)->money;</p><p> push(eq,front(fq)->money); //加入事件隊列 離開</p><p> back(eq
72、)->type = "離開";</p><p> back(eq)->num = front(fq)->num;</p><p> back(eq)->endTime = (front(fq)->beginTime +rand()%(dealMaxTime-dealMinTime +1)+dealMinTime);</p>
73、<p> back(eq)->beginTime = 0;</p><p> currentTimeOfDeal = back(eq)->endTime;</p><p> ++counter; //更新客戶總數(shù) </p><p> totalTime += ( back(eq)->endTime - back(fq)->
74、beginTime ); //更新逗留時間</p><p> pop(fq); //刪除第一隊列第一個業(yè)務</p><p><b> state =0;</b></p><p><b> }//else</b></p><p><b> }</b></p>
75、<p> service* searchAndDel(queue &q,int m)</p><p> {//"搜索"函數(shù),在對列中尋找可處理元素</p><p> service* sign = q. head; //標記頭節(jié)點</p><p> service* temp;</p><p>
76、 while(q. head!=NULL )</p><p><b> {</b></p><p> if((-(q. head->money)) <m)</p><p> {//隊首元素可以處理</p><p> if(q. head==q.rear)</p><p>&
77、lt;b> {</b></p><p> temp = q. head;</p><p> q. head = q. rear = NULL;</p><p> return temp;</p><p><b> }//if</b></p><p><b>
78、 else</b></p><p><b> {//隊首元素出列</b></p><p> temp = q. head; </p><p> q. head = q. head->next; // 首節(jié)點后移一位,返回原首節(jié)點</p><p> return temp;</p>
79、<p><b> }//else</b></p><p><b> }//while</b></p><p><b> else</b></p><p> {//隊首元首不能被處理</p><p> if(q. head == q. rear){}</
80、p><p><b> else</b></p><p> {//首節(jié)點移到隊列尾部</p><p> q. rear->next = q. head; </p><p> q. rear = q. rear->next;</p><p> q. head =q. head->
81、;next;</p><p> q. rear->next = NULL;</p><p><b> }//else</b></p><p><b> }//else</b></p><p> if(q. head == sign)//隊列循環(huán)一周時停止</p><
82、p> return NULL;</p><p><b> }</b></p><p> return NULL;</p><p><b> }</b></p><p> service* temped ;</p><p> int randomTemp;&l
83、t;/p><p> void findAndDeal()</p><p> {//"處理"函數(shù) 在對列中尋找可處理元素,對其進行處理</p><p> while( (temped= searchAndDel(sq,total))&&temped!=NULL ) </p><p>
84、{//查找可處理取款</p><p> total += temped->money; //更新資金總額</p><p> push(eq,temped->money); //加入事件隊列 離開</p><p> back(eq)->type = "離開";</p><p> back(eq)-&
85、gt;num = temped->num;</p><p> randomTemp = rand()%(dealMaxTime-dealMinTime +1)+dealMinTime;</p><p> back(eq)->endTime = currentTime + randomTemp ;</p><p> currentTimeOfDeal
86、 += randomTemp;</p><p> ++counter; //更新客戶總數(shù)</p><p> totalTime += ( back(eq)->endTime - temped->beginTime ); //更新逗留時間 </p><p> delete temped; //刪除節(jié)點</p><p> te
87、mped = NULL;</p><p><b> }</b></p><p> state = 0;</p><p><b> }</b></p><p> int main()</p><p><b> { </b></p>
88、<p> printf(" ********************************************\n");</p><p> printf(" ********************************************\n");</p><p> printf(" *************
89、*******************************\n");</p><p> printf(" *** *** 學院:信息工程學院\n");</p><p> printf(" ***
90、 ***\n");</p><p> printf(" *** ***\n");</p><p> printf(" *** *** 專業(yè):計算機科學與技術\
91、n");</p><p> printf(" *** ***\n");</p><p> printf(" *** ***\n");</p><p> printf
92、(" *** 歡迎進入銀行模擬系統(tǒng) *** 班級:061\n");</p><p> printf(" *** ***\n");</p><p> printf(" ***
93、 ***\n");</p><p> printf(" *** *** 姓名:邱雨田\n");</p><p> printf(" *** *
94、**\n");</p><p> printf(" *** ***\n");</p><p> printf(" *** *** 學號:6103106020\n");
95、 </p><p> printf(" ********************************************\n");</p><p> printf(" ********************************************\n");</p><p> prin
96、tf(" ********************************************\n");</p><p> printf("\n");</p><p> printf("\n");</p><p> printf("\n");</p><p&
97、gt; printf("請按任意鍵繼續(xù)......\n");</p><p><b> getch();</b></p><p><b> int i;</b></p><p> for(i=0;i<=14;i++)</p><p> printf("\
98、n");</p><p> printf(" ********************************************\n");</p><p> printf(" ********************************************\n");</p><p> printf
99、(" ********************************************\n");</p><p> printf(" *** 1.開始模擬 ***\n");</p><p> printf(" *** 0.退出
100、 ***\n");</p><p> printf(" ********************************************\n");</p><p> printf(" ********************************************\n");</p><p>
101、; printf(" ********************************************\n");</p><p> int n,t1=0,t2=0,t3=0,t4=0,m=0;</p><p> scanf("%d",&n);</p><p> while(n==1)</p>
102、<p><b> {</b></p><p> srand(time(NULL)); //初始化隨機函數(shù)</p><p> printf("請輸入銀行的初始存款:\n");</p><p> scanf("%d",&total); </p><p>
103、 if(total<0) </p><p><b> {</b></p><p> printf("輸入錯誤!初始存款不能小于0!請再次輸入!\n"); </p><p> printf("請輸入銀行的初始存款:\n");</p>&l
104、t;p> scanf("%d",&total); </p><p> if(total<0) </p><p><b> {</b></p><p> printf("輸入錯誤!初始存款不能小于0!請最后一次輸入!\n");</p><p>
105、printf("請輸入銀行的初始存款:\n");</p><p> scanf("%d",&total); </p><p> if(total<0)</p><p><b> {</b></p><p> printf("三次輸入都錯誤!請按任意鍵
106、退出!\n");</p><p><b> getch();</b></p><p> printf("請按任意鍵退出!\n");</p><p> goto end; </p><p><b> }</b></p><p><b&
107、gt; }</b></p><p><b> }</b></p><p> printf("請輸入銀行的營業(yè)時間:\n");</p><p> scanf("%d",&closeTime);</p><p> if(closeTime>=1440
108、) </p><p><b> {</b></p><p> printf("輸入錯誤!一天的營業(yè)時間不能超過1440分鐘(24個小時)!請再次輸入!\n");</p><p> printf("請輸入銀行的營業(yè)時間:\n");</p><p>
109、 scanf("%d",&closeTime);</p><p> if(closeTime>=1440) </p><p><b> {</b></p><p> printf("輸入錯誤!一天的營業(yè)時間不能超過1440分鐘(24個小時)!請最后一次輸入!\n");</p>
110、;<p> printf("請輸入銀行的營業(yè)時間:\n");</p><p> scanf("%d",&closeTime);</p><p> if(closeTime>=1440) </p><p><b> {</b></p><p>
111、printf("三次輸入都錯誤!請按任意鍵退出!\n");</p><p><b> getch();</b></p><p> printf("請按任意鍵退出!\n");</p><p><b> goto end;</b></p><p><b
112、> }</b></p><p><b> }</b></p><p><b> } </b></p><p> printf("請輸入最大到達時間間隔:\n"); </p><p> scanf("%d",&arriveM
113、axTime);</p><p> if(arriveMaxTime>closeTime) </p><p><b> {</b></p><p> printf("輸入錯誤!最大到達時間間隔必須小于營業(yè)時間!請再次輸入!\n");</p><p> printf("
114、;請輸入最大到達時間間隔:\n"); </p><p> scanf("%d",&arriveMaxTime);</p><p> if(arriveMaxTime>closeTime) </p><p><b> {</b></p><p> printf("
115、;輸入錯誤!最大到達時間間隔必須小于營業(yè)時間!請最后一次輸入!\n");</p><p> printf("請輸入最大到達時間間隔:\n"); </p><p> scanf("%d",&arriveMaxTime);</p><p> if(arriveMaxTime>closeTime)<
116、;/p><p><b> {</b></p><p> printf("三次輸入都錯誤!請按任意鍵退出!\n");</p><p><b> getch(); </b></p><p> printf("請按任意鍵退出!\n");</p>&
117、lt;p><b> goto end;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> printf("請輸入最小到達時間間隔:\n&q
118、uot;); </p><p> scanf("%d",&arriveMinTime);</p><p> if(arriveMinTime<=0 || arriveMinTime>=arriveMaxTime) </p><p><b> {</b></p><p>
119、; printf("輸入錯誤!最小到達時間間隔必須介于零和最大到達時間之間!請再次輸入!\n"); </p><p> printf("請輸入最小到達時間間隔:\n"); </p><p> scanf("%d",&arriveMinTime);</p><p> if(arriveMinT
120、ime<=0 || arriveMinTime>=arriveMaxTime) </p><p><b> {</b></p><p> printf("輸入錯誤!最小到達時間間隔必須介于零和最大到達時間之間!請最后一次輸入!\n"); </p><p> printf("請輸入最小到達時間間隔:
121、\n"); </p><p> scanf("%d",&arriveMinTime);</p><p> if(arriveMinTime<=0 || arriveMinTime>=arriveMaxTime)</p><p><b> {</b></p><p>
122、 printf("三次輸入都錯誤!請按任意鍵退出!\n");</p><p><b> getch();</b></p><p> printf("請按任意鍵退出!\n");</p><p><b> goto end;</b></p><p><
123、;b> } </b></p><p><b> }</b></p><p><b> } </b></p><p> printf("請輸入最大的處理時間:\n");</p><p> scanf("%d",&dealMax
124、Time);</p><p> if(dealMaxTime>closeTime) </p><p><b> {</b></p><p> printf("輸入錯誤!最大處理時間必須小于營業(yè)時間!請再次輸入!\n"); </p><p> printf("請輸入
125、最大的處理時間:\n");</p><p> scanf("%d",&dealMaxTime);</p><p> if(dealMaxTime>closeTime) </p><p><b> {</b></p><p> printf("輸入錯誤!最
126、大處理時間必須小于營業(yè)時間!請最后一次輸入!\n"); </p><p> printf("請輸入最大的處理時間:\n");</p><p> scanf("%d",&dealMaxTime);</p><p> if(dealMaxTime>closeTime)</p><p
127、><b> {</b></p><p> printf("三次輸入都錯誤!請按任意鍵退出!\n");</p><p><b> getch(); </b></p><p> printf("請按任意鍵退出!\n");</p><p><b&
128、gt; goto end;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("請輸入最小的處理時間:\n");</p>
129、<p> scanf("%d",&dealMinTime); </p><p> if(dealMinTime<=0 || dealMinTime>=dealMaxTime) </p><p><b> {</b></p><p> printf(&q
130、uot;輸入錯誤!最小處理時間必須介于零和最大處理時間之間!請再次輸入!\n");</p><p> printf("請輸入最小的處理時間:\n");</p><p> scanf("%d",&dealMinTime); </p><p> if(dealMinTime<=0 || dealM
131、inTime>=dealMaxTime) </p><p><b> {</b></p><p> printf("輸入錯誤!最小處理時間必須介于零和最大處理時間之間!請最后一次輸入!\n");</p><p> printf("請輸入最小的處理時間:\n");</p>
132、<p> scanf("%d",&dealMinTime); </p><p> if(dealMinTime<=0 || dealMinTime>=dealMaxTime)</p><p><b> { </b></p><p> printf("三次輸入都錯誤!請按任意
133、鍵退出!\n");</p><p><b> getch();</b></p><p> printf("請按任意鍵退出!\n");</p><p><b> goto end;</b></p><p><b> }</b></p&g
134、t;<p><b> }</b></p><p><b> }</b></p><p> printf("請輸入交易額的最大上限:\n");</p><p> scanf("%d",&dealMaxMoney);</p><p>
135、 if(dealMaxMoney>=total || dealMaxMoney>50000)</p><p><b> { </b></p><p> printf("輸入錯誤!超出本銀行的服務范圍!最大交易額應低于銀行開始營業(yè)時的資金總額且小于50000!請再次輸入!\n");</p><p> pri
136、ntf("請輸入交易額的最大上限:\n");</p><p> scanf("%d",&dealMaxMoney);</p><p> if(dealMaxMoney>=total || dealMaxMoney>50000)</p><p><b> {</b></p&g
137、t;<p> printf("輸入錯誤!超出本銀行的服務范圍!最大交易額應低于銀行開始營業(yè)時的資金總額且小于50000!請最后一次輸入!\n");</p><p> printf("請輸入交易額的最大上限:\n");</p><p> scanf("%d",&dealMaxMoney);</p&g
138、t;<p> if(dealMaxMoney>=total || dealMaxMoney>50000)</p><p><b> {</b></p><p> printf("三次輸入都錯誤!請按任意鍵退出!\n");</p><p><b> getch();</b>
139、;</p><p> printf("請按任意鍵退出!\n");</p><p><b> goto end;</b></p><p><b> }</b></p><p><b> }</b></p><p><b&g
140、t; }</b></p><p> thearriveMaxTime +=rand()%(arriveMaxTime-arriveMinTime + 1)+arriveMinTime; //首次到達時間</p><p> while(currentTime < closeTime)</p><p><b> {</b>
141、</p><p> ++currentTime;</p><p> if( currentTimeOfDeal < currentTime ) currentTimeOfDeal = currentTime ;</p><p> if( currentTimeOfDeal == currentTime ) state = 1;</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行業(yè)務模擬系統(tǒng)課程設計
- 銀行業(yè)務活動的模擬課程設計
- 銀行業(yè)務活動的模擬課程設計
- 數(shù)據(jù)結構課程設計銀行業(yè)務模擬
- 數(shù)據(jù)結構課程設計報告---銀行業(yè)務模擬
- 數(shù)據(jù)結構課程設計報告-銀行業(yè)務模擬
- 數(shù)據(jù)結構課程設計---一個銀行業(yè)務模擬的程序
- 《銀行業(yè)務模擬實訓》課程的改革方案
- 銀行業(yè)務分析報告
- 私人銀行業(yè)務淺析
- 臺州銀行電子銀行業(yè)務章程
- 2009公司銀行業(yè)務試題
- 銀行業(yè)務外包研究.pdf
- 銀行業(yè)務技能培訓制度
- 會計與銀行業(yè)務用語
- A銀行私人銀行業(yè)務發(fā)展研究.pdf
- 臺州銀行電子銀行業(yè)務章程(201804)
- 商業(yè)銀行投資銀行業(yè)務
- 銀行業(yè)務軟件測試研究.pdf
- 我國私人銀行業(yè)務風險研究
評論
0/150
提交評論