

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科生課程設(shè)計(jì)報(bào)告書(shū)</p><p> 題 目 銀行業(yè)務(wù)模擬系統(tǒng) </p><p> 姓 名 </p><p> 學(xué) 號(hào) </p><p> 學(xué) 院 信息工程學(xué)院 </p>&l
2、t;p> 專(zhuān) 業(yè) 計(jì)算機(jī) </p><p> 指導(dǎo)教師 </p><p> 完成日期: 2012-7-4</p><p><b> 銀行業(yè)務(wù)模擬系統(tǒng)</b></p><p><b> 1 需求分析</b><
3、/p><p><b> 1.1問(wèn)題描述:</b></p><p> 客戶(hù)業(yè)務(wù)分為兩種。第一種是申請(qǐng)從銀行得到一筆資金,即取款或借款。第二種是向銀行投入一筆資金,即存款或還款。銀行有兩個(gè)服務(wù)窗口,相應(yīng)的有兩個(gè)隊(duì)列??蛻?hù)到達(dá)銀行后先排第一個(gè)隊(duì)。處理每個(gè)客戶(hù)業(yè)務(wù)時(shí),如果屬于第一種,且申請(qǐng)額超出銀行現(xiàn)存資金總額而得不到滿(mǎn)足,則立即排入第二隊(duì)等候,直至滿(mǎn)足時(shí)才離開(kāi)銀行,否則業(yè)務(wù)
4、處理完后立即離開(kāi)銀行。每接待完一個(gè)第二種業(yè)務(wù)的客戶(hù),則順序檢查和處理(如果可能)第二個(gè)隊(duì)列的客戶(hù),對(duì)能滿(mǎn)足的申請(qǐng)者予以滿(mǎn)足,不能滿(mǎn)足者重新排到第二個(gè)隊(duì)列的隊(duì)尾。注意,在此檢查過(guò)程中,一旦銀行資金總額少于或等于剛才第一個(gè)隊(duì)列中最后一個(gè)客戶(hù)(第二種業(yè)務(wù))被接待之前的數(shù)額,或者本次已將第二個(gè)隊(duì)列檢查或處理了一遍,就停止檢查(因?yàn)榇藭r(shí)已不可能還有能滿(mǎn)足者)轉(zhuǎn)而繼續(xù)接待第一個(gè)隊(duì)列的客戶(hù)。任何時(shí)刻都只開(kāi)一個(gè)窗口。假設(shè)檢查不需要時(shí)間。營(yíng)業(yè)時(shí)間結(jié)束時(shí)所
5、有客戶(hù)立即離開(kāi)銀行。寫(xiě)一個(gè)上述銀行業(yè)務(wù)的事件驅(qū)動(dòng)模擬系統(tǒng),通過(guò)模擬方法求出客戶(hù)在銀行內(nèi)逗留的平均時(shí)間。</p><p> 1.2系統(tǒng)的輸入輸出:</p><p><b> 輸入:</b></p><p> 銀行的初始存款Total</p><p><b> 銀行的營(yíng)業(yè)時(shí)間</b></p
6、><p> 最大到達(dá)時(shí)間間隔arrive time</p><p> 最大交易時(shí)間deal time,</p><p> 到達(dá)時(shí)間和每個(gè)客戶(hù)要辦理的款額隨機(jī)產(chǎn)生。</p><p><b> 輸出:</b></p><p> 1、顧客在銀行內(nèi)平均逗留時(shí)間。</p><p&g
7、t; 2、下班時(shí)銀行剩余的資金總額。</p><p> 1.3系統(tǒng)的測(cè)試用例:</p><p> ?、佥斎耄阂惶鞝I(yíng)業(yè)開(kāi)始時(shí)銀行擁有的款額為10000(元),營(yíng)業(yè)時(shí)間為600(分鐘),最大達(dá)到時(shí)間間隔20,最大交易時(shí)間5。(到達(dá)事件的間隔時(shí)間很長(zhǎng),而客戶(hù)的交易時(shí)間很短。)客戶(hù)逗留時(shí)間,到達(dá)時(shí)間,客戶(hù)存取款金額由程序隨機(jī)產(chǎn)生。</p><p> 客戶(hù)序號(hào)
8、 事件類(lèi)型 時(shí)間 處理金額</p><p> 1 到達(dá) 9:13 4000</p><p> 1 離開(kāi) 9:17 4000</p><p&
9、gt; 2 到達(dá) 9:17 2000</p><p> 2 離開(kāi) 9:21 2000</p><p> 3 到達(dá) 9:23 -15
10、00</p><p> 3 離開(kāi) 9:25 -1500</p><p> 4 到達(dá) 9:30 10000</p><p> 4 離開(kāi) 9:35
11、 10000</p><p> 5 到達(dá) 9:36 -3000</p><p> 5 離開(kāi) 9:38 -3000</p><p> 說(shuō)明:正數(shù)代表存款金額,負(fù)數(shù)代
12、表取款金額。</p><p> ②輸出:一天內(nèi)客戶(hù)的數(shù)目為5,下班時(shí)銀行剩余資金總額為21500,顧客在銀行內(nèi)平均逗留時(shí)間為3.4。</p><p><b> 2 概要設(shè)計(jì)</b></p><p> 本題用隊(duì)列的抽象數(shù)據(jù)類(lèi)型登錄排隊(duì)等候辦理業(yè)務(wù)的顧客情況。隊(duì)列中的每個(gè)元素包括顧客進(jìn)們的時(shí)刻和辦理業(yè)務(wù)所需時(shí)間。</p><
13、;p> 1、隊(duì)列的抽象數(shù)據(jù)類(lèi)型定義為</p><p> ADT Queue{數(shù)據(jù)對(duì)象:D={ai|ai∈ElemSet, i=1,2, …,n, n≥0}數(shù)據(jù)關(guān)系:R={<ai-1,ai>|ai-1,ai∈D, i=1,2, …,n }基本操作: Initqueue0211(linkqueue &a )
14、 操作結(jié)果:構(gòu)造一個(gè)空隊(duì)列a</p><p> puch0211 ( queue &q,int d ) 初始條件:隊(duì)列q已存在 操作結(jié)果:在隊(duì)尾插入一個(gè)元素e pop0211 ( queue &q ) 初始
15、條件:隊(duì)列q已存在 操作結(jié)果:獲取隊(duì)列的隊(duì)頭</p><p> service* front0211(queue &q)</p><p> 初始條件:隊(duì)列q已存在 操作結(jié)果:返回隊(duì)首元素</p><p> service* bac
16、k0211(queue &q)</p><p> 初始條件:隊(duì)列q已存在 操作結(jié)果:返回隊(duì)尾元素</p><p> service* searchAndDel0211(queue &q)</p><p> 初始條件:隊(duì)列q已存在
17、60; 操作結(jié)果:在隊(duì)里尋找可處理元素</p><p> }ADT Queue</p><p><b> 2、自定義函數(shù):</b></p><p> void putMoney0211 ()</p><p> 操作結(jié)果:處理存款事件</p><p> void getMoney0211
18、()</p><p> 操作結(jié)果:處理取款事件</p><p> void arrive0211 ()</p><p> 初始條件:初始化操作完畢</p><p> 操作結(jié)果:處理客戶(hù)到達(dá)事件 void findAndDeal0211 ()</p><p> 操作結(jié)果:尋找可處理客戶(hù)事件</p&
19、gt;<p><b> 3、主函數(shù)設(shè)計(jì)</b></p><p> void main()</p><p><b> { </b></p><p><b> 輸出主界面;</b></p><p> 選擇操作:進(jìn)入銀行業(yè)務(wù)模擬系統(tǒng)/退出程序;</p&
20、gt;<p> While(進(jìn)入銀行業(yè)務(wù)模擬窗口)</p><p><b> ?。?lt;/b></p><p> OpenForDay();進(jìn)行初始化操作;</p><p><b> 輸出格式控制;</b></p><p> { 銀行業(yè)務(wù)模擬:</p><p&
21、gt; while(有要處理的事件時(shí)) //有事件可處理</p><p><b> { </b></p><p> DeQueue1(); //隊(duì)列1出隊(duì)列,并用en返回值 </p><p><b> if(客戶(hù)到達(dá))</b></p><p> CustomerArriv
22、ed(); //處理客戶(hù)到達(dá)事件 </p><p><b> else </b></p><p> CustomerDeparture(); //處理客戶(hù)離開(kāi)事件</p><p><b> }</b></p><p> 計(jì)算出客戶(hù)的平均逗留時(shí)間并輸出</p>
23、<p><b> }</b></p><p><b> 返回主界面:</b></p><p> 選擇操作:繼續(xù)進(jìn)行業(yè)務(wù)模擬/退出程序;</p><p> If(選擇的是退出)</p><p><b> 退出程序;</b></p><p&g
24、t;<b> }</b></p><p><b> }</b></p><p><b> 3 詳細(xì)設(shè)計(jì)</b></p><p> 提示:根據(jù)概要設(shè)計(jì),給出數(shù)據(jù)的存儲(chǔ)表示(存儲(chǔ)結(jié)構(gòu)),完成相關(guān)算法的設(shè)計(jì)。</p><p><b> 存儲(chǔ)結(jié)構(gòu):</b>
25、;</p><p><b> 1、線性表結(jié)構(gòu)體</b></p><p> typedef struct{</p><p> int arrivetime; //到達(dá)時(shí)間 </p><p> int OccurTime; //事件發(fā)生時(shí)間 </p><p> int NType; //事
26、件類(lèi)型,0表示到達(dá)事件,1表示離開(kāi)事件。同時(shí)用1表示存款,2表示取款。</p><p> int duration; //辦理業(yè)務(wù)時(shí)間</p><p> long int money;//交易金額</p><p> }Event,ElemType1;</p><p><b> 2、隊(duì)列結(jié)構(gòu)體</b></p&
27、gt;<p> typedef struct{ </p><p> int arrivetime; //到達(dá)時(shí)間</p><p> int duration; //辦理業(yè)務(wù)時(shí)間</p><p> long int money; //交易金額</p><p> }wait,ElemType2;</p>&
28、lt;p><b> 算法設(shè)計(jì):</b></p><p><b> 1、進(jìn)入隊(duì)列</b></p><p> void push0211(queue &q,int d)</p><p> {// 插入元素d為Q的新的隊(duì)尾元素</p><p> service* temp = ne
29、w service;</p><p> temp->money = d;</p><p> temp->next = NULL;</p><p> if(NULL == q.head)</p><p> {//隊(duì)列為空,初始化</p><p> q. head = temp;</p>
30、<p> q. rear = temp;</p><p><b> }//if</b></p><p><b> else </b></p><p> {//隊(duì)列不為空,插入元素d</p><p> q. rear->next = temp;</p><
31、;p> q. rear = q.rear->next;</p><p><b> }//else</b></p><p><b> }</b></p><p><b> 2、出隊(duì)列</b></p><p> void pop0211 (queue &
32、;q)</p><p> {// 若隊(duì)列不空,出對(duì)列函數(shù)</p><p> service* temp;</p><p> temp = q. head;</p><p> if(NULL ==q. head->next)</p><p> q.head = q. rear =NULL;</p
33、><p><b> else</b></p><p> q. head=q. head->next;</p><p> delete temp;</p><p><b> }</b></p><p><b> 3、返回隊(duì)首元素</b><
34、/p><p> service* front0211 (queue &q)</p><p><b> { </b></p><p> return q. head;</p><p><b> }</b></p><p><b> 4、返回隊(duì)尾元素<
35、;/b></p><p> service* back0211 (queue &q)</p><p><b> { </b></p><p> return q. rear;</p><p><b> }</b></p><p> 5、在對(duì)列中尋找可處
36、理元素</p><p> service* searchAndDel0211 (queue &q,int m)</p><p><b> { </b></p><p> service* sign = q. head; //標(biāo)記頭節(jié)點(diǎn)</p><p> service* temp;</p&g
37、t;<p> while(NULL != q. head)</p><p><b> {</b></p><p> if((-(q. head->money)) <m)</p><p> {//隊(duì)首元素可以處理</p><p> if(q. head==q.rear)</p>
38、;<p><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&
39、gt;<b> else</b></p><p><b> {//隊(duì)首元素出列</b></p><p> temp = q. head; </p><p> q. head = q. head->next; // 首節(jié)點(diǎn)后移一位,返回原首節(jié)點(diǎn)</p><p> retu
40、rn temp;</p><p><b> }//else</b></p><p><b> }//while</b></p><p><b> else</b></p><p> {//隊(duì)首元首不能被處理</p><p> if(q. hea
41、d == q. rear){}</p><p><b> else</b></p><p> {//首節(jié)點(diǎn)移到隊(duì)列尾部</p><p> q. rear->next = q. head; </p><p> q. rear = q. rear->next;</p><p
42、> q. head =q. head->next;</p><p> q. rear->next = NULL;</p><p><b> }//else</b></p><p><b> }//else</b></p><p> if(q. head == sign)/
43、/隊(duì)列循環(huán)一周時(shí)停止</p><p> return NULL;</p><p><b> }</b></p><p> return NULL;</p><p><b> }</b></p><p> bool state =1; //用于判斷是否有窗口在處理
44、</p><p> int currentTimeOfDeal = 0;</p><p> int theArriveTime = 0;</p><p> queue eq; //事件隊(duì)列</p><p> queue fq; //隊(duì)列一</p><p> queue sq; //對(duì)列二&l
45、t;/p><p><b> //初始化三個(gè)隊(duì)列</b></p><p> 6、到達(dá)"函數(shù) 隨機(jī)產(chǎn)生顧客,進(jìn)入隊(duì)列一產(chǎn)生到達(dá)事件 進(jìn)入事件隊(duì)列</p><p> void arrive0211 ()</p><p><b> {</b></p><p> pus
46、h(fq,(rand()% (2*dealMoney) -dealMoney)); //隨機(jī)產(chǎn)生顧客加入第一隊(duì)列</p><p> back(fq)->beginTime = currentTime;</p><p> back(fq)->num = number;</p><p> push(eq,(back(fq)->money));
47、 //將產(chǎn)生事件加入事件隊(duì)列</p><p> back(eq)->beginTime = currentTime;</p><p> back(eq)->type = "到達(dá)";</p><p> back(eq)->num = number;</p><p><b> ++n
48、umber;</b></p><p><b> }</b></p><p><b> 7、存款函數(shù)</b></p><p> void putMoney0211 ()</p><p><b> { </b></p><p> to
49、tal += front(fq)->money; //更新資金總額</p><p> push(eq,front(fq)->money); //加入事件隊(duì)列 離開(kāi)</p><p> back(eq)->type = "離開(kāi)";</p><p> back(eq)->num = front(fq)->
50、num;</p><p> back(eq)->endTime = (front(fq)->beginTime + rand()%dealTime +1);</p><p> ++counter; //更新客戶(hù)總數(shù)</p><p> totalTime += (back(eq)->endTime - front(fq)->begin
51、Time); //更新逗留時(shí)間</p><p> pop(fq); //刪除第一隊(duì)列第一個(gè)業(yè)務(wù)</p><p> currentTimeOfDeal = back(eq)->endTime; </p><p><b> state =0;</b></p><p><b> }</b&g
52、t;</p><p><b> 8、取款函數(shù)</b></p><p> void getMoney0211 ()</p><p><b> { </b></p><p> if( (-fq.head->money) > total ) </p><p>
53、 {//資金短缺 加入第二隊(duì)列</p><p> push( sq,front(fq)->money );</p><p> back(sq)->beginTime = front(fq)->beginTime;</p><p> back(sq)->num = front(fq)->num;</p><p&
54、gt;<b> pop(fq);</b></p><p><b> }//if</b></p><p><b> else</b></p><p><b> {</b></p><p> total += back(fq)->money;&
55、lt;/p><p> push(eq,front(fq)->money); //加入事件隊(duì)列 離開(kāi)</p><p> back(eq)->type = "離開(kāi)";</p><p> back(eq)->num = front(fq)->num;</p><p> back(eq)->
56、endTime = (front(fq)->beginTime + rand()%dealTime +1);</p><p> back(eq)->beginTime = 0;</p><p> currentTimeOfDeal = back(eq)->endTime;</p><p> ++counter; //更
57、新客戶(hù)總數(shù) </p><p> totalTime += ( back(eq)->endTime - back(fq)->beginTime ); //更新逗留時(shí)間</p><p> pop(fq); //刪除第一隊(duì)列第一個(gè)業(yè)務(wù)</p><p><b> state =0;</b></p><p>&l
58、t;b> }//else</b></p><p><b> }</b></p><p> 9、在對(duì)列中尋找可處理元素</p><p> void findAndDeal0211 ()</p><p><b> { </b></p><p> wh
59、ile( (temped= searchAndDel(sq,total))&&NULL != temped ) </p><p> {//查找可處理取款</p><p> total += temped->money; //更新資金總額</p><p> push(eq,temped->money); //加入事件隊(duì)
60、列訓(xùn) 離開(kāi)</p><p> back(eq)->type = "離開(kāi)";</p><p> back(eq)->num = temped->num;</p><p> randomTemp = rand()%dealTime +1;</p><p> back(eq)->endTime =
61、 currentTime + randomTemp ;</p><p> currentTimeOfDeal += randomTemp;</p><p> ++counter; //更新客戶(hù)總數(shù)</p><p> totalTime += ( back(eq)->endTime - temped->beginTime ); //更新逗
62、留時(shí)間 </p><p> delete temped; //刪除節(jié)點(diǎn)</p><p> temped = NULL;</p><p><b> }</b></p><p> state = 0;</p><p><b> }</b></p>
63、;<p><b> 10、菜單函數(shù)</b></p><p> void menu()</p><p><b> {</b></p><p> system("cls"); //清屏函數(shù)</p><p> printf("
64、 \n");</p><p> printf(" *****************************************************\n");</p><p> printf("* *
65、 *\n");</p><p> printf("* 歡迎進(jìn)入銀行模擬系統(tǒng) * 姓名:鄭小波 *\n");</p><p> printf("* * 學(xué)號(hào):410109030211 *\n");</p>
66、;<p> printf("* * 學(xué)院:信息工程學(xué)院 *\n");</p><p> printf("* * 專(zhuān)業(yè):計(jì)算機(jī)專(zhuān)業(yè) *\n");</p><p> printf("* 1.開(kāi)始模擬
67、0.退出 * *\n");</p><p> printf("******************************************************\n");</p><p> printf("************************************
68、******************\n");</p><p><b> }</b></p><p><b> 11、主函數(shù)</b></p><p> int main ()</p><p><b> { </b></p><p>
69、<b> int n=1;</b></p><p> while(n!=0)</p><p><b> {</b></p><p><b> menu();</b></p><p> scanf("%d",&n);</p>&
70、lt;p><b> if(n==1)</b></p><p><b> {</b></p><p> srand(time(NULL)); //初始化隨機(jī)函數(shù)</p><p> printf("輸入銀行的初始存款:\n");</p><p> scanf(&
71、quot;%d",&total);</p><p> printf("輸入銀行的營(yíng)業(yè)時(shí)間:\n");</p><p> scanf("%d",&closeTime);</p><p> printf("輸入最大到達(dá)時(shí)間間隔:\n"); </p><p
72、> scanf("%d",&arriveTime);</p><p> printf("輸入最大的處理時(shí)間:\n");</p><p> scanf("%d",&dealTime);</p><p> theArriveTime +=rand()%arriveTime + 1;
73、 //首次到達(dá)時(shí)間</p><p> while(currentTime < closeTime)</p><p><b> {</b></p><p> ++currentTime;</p><p> if( currentTimeOfDeal < currentTime ) current
74、TimeOfDeal = currentTime ;</p><p> if( currentTimeOfDeal == currentTime ) state = 1;</p><p> if( currentTime == theArriveTime ) //到達(dá)事件</p><p><b> {</b></p>
75、<p><b> arrive();</b></p><p> theArriveTime +=rand()%arriveTime +1; </p><p><b> }//if</b></p><p> if( 1 == state && NULL != fq.head)</p
76、><p><b> {</b></p><p> if(fq.head->money >= 0)</p><p><b> {</b></p><p> putMoney();</p><p> findAndDeal();</p><p
77、><b> }//if</b></p><p><b> else </b></p><p> getMoney();</p><p><b> }//if</b></p><p><b> }</b></p><p&g
78、t; printf("客戶(hù)序列\(zhòng)t事件類(lèi)型\t時(shí)間\t\t處理金額\n");</p><p> while( NULL != eq.head) //清除事件隊(duì)列</p><p><b> {</b></p><p> if(eq.head->type=="離開(kāi)")</p>
79、<p> printf("%d\t\t離開(kāi)\t\t%d\t\t%d\n",eq.head->num,eq.head->endTime,eq.head->money); if(eq.head->type=="到達(dá)")</p><p> printf("%d\t\t到達(dá)\t\t%d\t\t%d\n",
80、eq.head->num,eq.head->beginTime,eq.head->money); pop(eq);</p><p><b> }</b></p><p> printf("未處理的客戶(hù):\n");</p><p> while( NULL != fq.head)
81、//下班后未處理的客戶(hù)</p><p><b> {</b></p><p> totalTime += ( closeTime - fq.head->beginTime ); //更新結(jié)束時(shí)第一隊(duì)列中未處理的客戶(hù)</p><p> printf ("%d\n"fq.head->num ) ;</
82、p><p> ++counter;</p><p><b> pop(fq);</b></p><p> }//while </p><p> printf("客戶(hù)逗留平均時(shí)間為: " );</p><p> cout <<"客戶(hù)逗留平均時(shí)間為
83、: " << totalTime/counter <<endl;</p><p> printf("銀行當(dāng)前余額:");</p><p> printf("%d\n",total);</p><p> system("PAUSE");</p><p
84、> }//if(n==1)</p><p><b> if(n==0)</b></p><p> printf("退出該程序\n");</p><p><b> else </b></p><p> printf("輸入錯(cuò)誤,請(qǐng)重新輸入\n")
85、;</p><p> }//while(n!=0) </p><p> return 0; </p><p><b> }//main()</b></p><p><b> 4 編碼調(diào)試</b></p><p><b> 1、操作界面</b>&
86、lt;/p><p> 圖4-1系統(tǒng)操作界面</p><p><b> 2、賦值操作</b></p><p><b> 測(cè)試用例:</b></p><p><b> 輸入:0,選擇操作</b></p><p><b> 輸出:退出該程序&l
87、t;/b></p><p> 運(yùn)行結(jié)果入圖4-2所示。</p><p> 圖4-2系統(tǒng)選擇操作界面</p><p> 結(jié)果分析:輸入0退出該系統(tǒng),結(jié)果正確。</p><p> 3、賦值錯(cuò)誤操作(0,1之外的數(shù)字)。</p><p><b> 測(cè)試用例:</b></p>
88、<p><b> 輸入:5,選擇操作</b></p><p> 輸出:輸入錯(cuò)誤,請(qǐng)重新輸入</p><p> 運(yùn)行結(jié)果如圖4-3所示。</p><p> 圖4-3系統(tǒng)選擇操作界面</p><p> 結(jié)果分析:輸入5顯示“輸入錯(cuò)誤,請(qǐng)重新輸入”,結(jié)果正確。</p><p>
89、4、開(kāi)始模擬并賦值操作1。</p><p> 測(cè)試用例:(最大到達(dá)時(shí)間間隔很長(zhǎng),而最大處理時(shí)間很短)</p><p><b> 輸入:1,開(kāi)始模擬</b></p><p> 10000,銀行的初始存款</p><p> 600,銀行的營(yíng)業(yè)時(shí)間</p><p> 20,最大到達(dá)時(shí)間間隔&l
90、t;/p><p><b> 5,最大處理時(shí)間</b></p><p> 輸出:客戶(hù)平均逗留時(shí)間為3,銀行當(dāng)前余額為15783。</p><p> 運(yùn)行結(jié)果如圖4-4,4-5,4-6,4-7,4-8所示。</p><p> 圖4-4模擬操作結(jié)果界面</p><p> 圖4-5模擬操作結(jié)果界面&
91、lt;/p><p> 圖4-6模擬操作結(jié)果界面 </p><p> 圖4-7模擬操作結(jié)果界面</p><p> 圖4-8模擬操作結(jié)果界面</p><p> 結(jié)果分析:根據(jù)操作界面顯示,完成了銀行業(yè)務(wù)的模擬,共處理客戶(hù)59人,客戶(hù)平均逗留時(shí)間為3,銀行當(dāng)前余額為15783。</p><p> 5、開(kāi)始模擬并賦值操作
92、2。</p><p> 測(cè)試用例:(最大到達(dá)時(shí)間間隔很短,而最大處理時(shí)間很長(zhǎng))</p><p><b> 輸入:1,開(kāi)始模擬</b></p><p> 10000,銀行的初始存款</p><p> 600,銀行的營(yíng)業(yè)時(shí)間</p><p> 8,最大到達(dá)時(shí)間間隔</p>&l
93、t;p><b> 30,最大處理時(shí)間</b></p><p> 輸出:客戶(hù)平均逗留時(shí)間為7,銀行當(dāng)前余額為108765。</p><p> 運(yùn)行結(jié)果如圖4-9,4-10,4-11所示。</p><p> 圖4-9模擬操作結(jié)果界面</p><p> 圖4-10模擬操作結(jié)果界面</p><
94、p> ………由于數(shù)據(jù)太多所以只截取最后一張圖來(lái)顯示結(jié)果。</p><p> 圖4-11模擬操作結(jié)果界面</p><p> 結(jié)果分析:結(jié)果分析:根據(jù)操作界面顯示,完成了銀行業(yè)務(wù)的模擬,共處理客戶(hù)127人,客戶(hù)平均逗留時(shí)間為7,銀行當(dāng)前余額為108765。</p><p><b> 5 設(shè)計(jì)體會(huì)</b></p><
95、p> 1. 本次課程設(shè)計(jì)各階段所遇到的問(wèn)題有:</p><p> 需求分析階段:由于剛接觸銀行系統(tǒng)模擬問(wèn)題,所以有一些地方不是很明確,在需求分析階段的測(cè)試用類(lèi)中卡了比較長(zhǎng)的時(shí)間。在老師的指導(dǎo)下慢慢了解了需求分析的意義,并且完成了需求分析階段的設(shè)計(jì)。為以后的課程設(shè)計(jì)打下基礎(chǔ)。</p><p> 概要設(shè)計(jì)階段:概要設(shè)計(jì)屬于課程設(shè)計(jì)的前期準(zhǔn)備時(shí)期,在這個(gè)階段中,我查閱了大量的資料來(lái)理
96、請(qǐng)自己的思路,明確了解決這個(gè)問(wèn)題所需要的函數(shù)。并且畫(huà)出了銀行模擬系統(tǒng)的藍(lán)圖,再老師的指點(diǎn)下完成了概要設(shè)計(jì)的階段。</p><p> 詳細(xì)設(shè)計(jì)階段:根據(jù)需求分析和概要設(shè)計(jì)階段的設(shè)計(jì),再結(jié)合C語(yǔ)言的知識(shí)詳細(xì)設(shè)計(jì)就順理成章的出來(lái)了。在本次的課程設(shè)計(jì)中體會(huì)到了前期準(zhǔn)備的重要性,和盲目的下手寫(xiě)程序相比,一步一步來(lái)從需求分析到概要設(shè)計(jì)再到詳細(xì)的過(guò)程無(wú)疑簡(jiǎn)單許多,為以后編寫(xiě)更復(fù)雜的程序做鋪墊。</p><
97、p> 編碼調(diào)試階段:由于個(gè)人的原因,在編碼調(diào)試階段出現(xiàn)了很多錯(cuò)誤,而其中大部分都是由于不細(xì)心導(dǎo)致的,而且由于是在程序編寫(xiě)好以后一起調(diào)試的所以這個(gè)階段花了不少時(shí)間,通過(guò)編碼調(diào)試的階段讓我認(rèn)識(shí)到了細(xì)心在編寫(xiě)程序過(guò)程中的重要性,而良好的習(xí)慣更能為自己解決不少麻煩。比如在編寫(xiě)代碼過(guò)程中“{”和“}”要一起打出來(lái)以免缺少“}”而引起的錯(cuò)誤。</p><p> 2. 測(cè)試結(jié)果分析。</p><p
98、><b> 測(cè)試數(shù)據(jù):</b></p><p> ?、巽y行的初始存款10000,銀行的營(yíng)業(yè)時(shí)間600,最大到達(dá)時(shí)間間隔20,最大處理時(shí)間5(最大到達(dá)時(shí)間間隔很長(zhǎng),而最大處理時(shí)間很短)。</p><p> ?、阢y行的初始存款10000,銀行的營(yíng)業(yè)時(shí)間600,最大到達(dá)時(shí)間間隔8,最大處理時(shí)間30(最大到達(dá)時(shí)間間隔很短,而最大處理時(shí)間很長(zhǎng))。 </p>
99、<p><b> 結(jié)果分析:</b></p><p> 根據(jù)兩組數(shù)據(jù)所得到的結(jié)果顯示到達(dá)間隔時(shí)間比較大而處理時(shí)間比較小時(shí)處理的客戶(hù)人數(shù)較少,而客戶(hù)的平均逗留時(shí)間比較短。當(dāng)?shù)竭_(dá)間隔時(shí)間比較小而處理時(shí)間比較大時(shí)處理的客戶(hù)人數(shù)較多,而客戶(hù)的平均逗留時(shí)間比較長(zhǎng)。 </p><p> 3. 本次課程設(shè)計(jì)收獲:</p><p&
100、gt; 這是我第一次做課程設(shè)計(jì),當(dāng)聽(tīng)老師說(shuō)題目時(shí)就充滿(mǎn)了好奇心,以前只是一味的學(xué)習(xí)書(shū)本的知識(shí),這次要理論結(jié)合實(shí)際的去做一個(gè)系統(tǒng)程序,有壓力也有動(dòng)力。拿到自己的任務(wù)書(shū)時(shí),仔細(xì)的閱讀設(shè)計(jì)要求,腦海中開(kāi)始尋找合適的數(shù)據(jù)結(jié)構(gòu)來(lái)解決這個(gè)問(wèn)題。</p><p> 做程序時(shí)遇到很多難題,因?yàn)槌绦蚬δ艿膶?shí)現(xiàn),說(shuō)起來(lái)簡(jiǎn)單真正實(shí)現(xiàn)起來(lái)就有點(diǎn)難了。在一遍一遍的分析與調(diào)試中,逐步的解決程序中的錯(cuò)誤。這使我懂得了學(xué)習(xí)的重要性,了解到理
101、論知識(shí)與實(shí)踐相結(jié)合的重要意義,充分體會(huì)到了在程序執(zhí)行時(shí)的提示性輸出的重要性。編寫(xiě)大一點(diǎn)的程序,應(yīng)該先寫(xiě)出算法,再寫(xiě)程序,調(diào)試時(shí)一段一段調(diào)試;對(duì)于沒(méi)有實(shí)現(xiàn)在操作用空操作代替,這樣容易找出錯(cuò)誤所在。最忌諱將所有代碼寫(xiě)完后再調(diào)試,這樣錯(cuò)誤太難找。 </p><p> 通過(guò)這為期兩周的課程設(shè)計(jì),使我對(duì)編程產(chǎn)生了更濃厚的興趣,學(xué)會(huì)了堅(jiān)持,耐心和努力,也明白了怎樣把所學(xué)知識(shí)應(yīng)用到現(xiàn)實(shí)當(dāng)中,激勵(lì)了我的學(xué)習(xí)主動(dòng)性。雖然數(shù)據(jù)結(jié)構(gòu)
102、這門(mén)課已經(jīng)結(jié)束了,但是我們不會(huì)停止對(duì)這門(mén)課的研究,路漫漫其修遠(yuǎn)兮,吾將上下而求索。不斷攀登科學(xué)的最高峰。深刻體會(huì)到要成為一名好的軟件員,甚至一名出色的軟件工程師,我還有很遠(yuǎn)的路要走。</p><p><b> 6 致謝</b></p><p> 在本次課程設(shè)計(jì)過(guò)程中我遇到了很多困難,其中有對(duì)問(wèn)題理解方面的,也有編碼調(diào)試方面的。通過(guò)老師的指導(dǎo)和跟同學(xué)之間的討論最終克
103、服困難完成了銀行系統(tǒng)模擬的問(wèn)題。在此誠(chéng)心感謝幫助過(guò)我的老師:xx等,以及幫助過(guò)我的同學(xué):xx。</p><p><b> 7 參考文獻(xiàn)</b></p><p> 嚴(yán)蔚敏.?dāng)?shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].清華大學(xué)出版社 2008年11月</p><p> 嚴(yán)蔚敏.?dāng)?shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版)[M].清華大學(xué)出版社 2008年11月</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行業(yè)務(wù)模擬課程設(shè)計(jì)
- 銀行業(yè)務(wù)活動(dòng)的模擬課程設(shè)計(jì)
- 銀行業(yè)務(wù)活動(dòng)的模擬課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)銀行業(yè)務(wù)模擬
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---銀行業(yè)務(wù)模擬
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-銀行業(yè)務(wù)模擬
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---一個(gè)銀行業(yè)務(wù)模擬的程序
- 《銀行業(yè)務(wù)模擬實(shí)訓(xùn)》課程的改革方案
- 銀行業(yè)務(wù)分析報(bào)告
- 私人銀行業(yè)務(wù)淺析
- 臺(tái)州銀行電子銀行業(yè)務(wù)章程
- 2009公司銀行業(yè)務(wù)試題
- 銀行業(yè)務(wù)互聯(lián)原型系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 銀行業(yè)務(wù)外包研究.pdf
- 銀行業(yè)務(wù)技能培訓(xùn)制度
- 會(huì)計(jì)與銀行業(yè)務(wù)用語(yǔ)
- A銀行私人銀行業(yè)務(wù)發(fā)展研究.pdf
- 流程銀行業(yè)務(wù)集中處理系統(tǒng)的設(shè)計(jì).pdf
- 銀行業(yè)務(wù)運(yùn)行遠(yuǎn)程授權(quán)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 臺(tái)州銀行電子銀行業(yè)務(wù)章程(201804)
評(píng)論
0/150
提交評(píng)論