版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科生課程設(shè)計(jì)報(bào)告書</p><p> 題 目 銀行業(yè)務(wù)模擬系統(tǒng) </p><p> 姓 名 </p><p> 學(xué) 號 </p><p> 學(xué) 院 信息工程學(xué)院 </p>&l
2、t;p> ?! I(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問題描述:</b></p><p> 客戶業(yè)務(wù)分為兩種。第一種是申請從銀行得到一筆資金,即取款或借款。第二種是向銀行投入一筆資金,即存款或還款。銀行有兩個(gè)服務(wù)窗口,相應(yīng)的有兩個(gè)隊(duì)列。客戶到達(dá)銀行后先排第一個(gè)隊(duì)。處理每個(gè)客戶業(yè)務(wù)時(shí),如果屬于第一種,且申請額超出銀行現(xiàn)存資金總額而得不到滿足,則立即排入第二隊(duì)等候,直至滿足時(shí)才離開銀行,否則業(yè)務(wù)
4、處理完后立即離開銀行。每接待完一個(gè)第二種業(yè)務(wù)的客戶,則順序檢查和處理(如果可能)第二個(gè)隊(duì)列的客戶,對能滿足的申請者予以滿足,不能滿足者重新排到第二個(gè)隊(duì)列的隊(duì)尾。注意,在此檢查過程中,一旦銀行資金總額少于或等于剛才第一個(gè)隊(duì)列中最后一個(gè)客戶(第二種業(yè)務(wù))被接待之前的數(shù)額,或者本次已將第二個(gè)隊(duì)列檢查或處理了一遍,就停止檢查(因?yàn)榇藭r(shí)已不可能還有能滿足者)轉(zhuǎn)而繼續(xù)接待第一個(gè)隊(duì)列的客戶。任何時(shí)刻都只開一個(gè)窗口。假設(shè)檢查不需要時(shí)間。營業(yè)時(shí)間結(jié)束時(shí)所
5、有客戶立即離開銀行。寫一個(gè)上述銀行業(yè)務(wù)的事件驅(qū)動(dòng)模擬系統(tǒng),通過模擬方法求出客戶在銀行內(nèi)逗留的平均時(shí)間。</p><p> 1.2系統(tǒng)的輸入輸出:</p><p><b> 輸入:</b></p><p> 銀行的初始存款Total</p><p><b> 銀行的營業(yè)時(shí)間</b></p
6、><p> 最大到達(dá)時(shí)間間隔arrive time</p><p> 最大交易時(shí)間deal time,</p><p> 到達(dá)時(shí)間和每個(gè)客戶要辦理的款額隨機(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)的測試用例:</p><p> ①輸入:一天營業(yè)開始時(shí)銀行擁有的款額為10000(元),營業(yè)時(shí)間為600(分鐘),最大達(dá)到時(shí)間間隔20,最大交易時(shí)間5。(到達(dá)事件的間隔時(shí)間很長,而客戶的交易時(shí)間很短。)客戶逗留時(shí)間,到達(dá)時(shí)間,客戶存取款金額由程序隨機(jī)產(chǎn)生。</p><p> 客戶序號
8、 事件類型 時(shí)間 處理金額</p><p> 1 到達(dá) 9:13 4000</p><p> 1 離開 9:17 4000</p><p&
9、gt; 2 到達(dá) 9:17 2000</p><p> 2 離開 9:21 2000</p><p> 3 到達(dá) 9:23 -15
10、00</p><p> 3 離開 9:25 -1500</p><p> 4 到達(dá) 9:30 10000</p><p> 4 離開 9:35
11、 10000</p><p> 5 到達(dá) 9:36 -3000</p><p> 5 離開 9:38 -3000</p><p> 說明:正數(shù)代表存款金額,負(fù)數(shù)代
12、表取款金額。</p><p> ?、谳敵觯阂惶靸?nèi)客戶的數(shù)目為5,下班時(shí)銀行剩余資金總額為21500,顧客在銀行內(nèi)平均逗留時(shí)間為3.4。</p><p><b> 2 概要設(shè)計(jì)</b></p><p> 本題用隊(duì)列的抽象數(shù)據(jù)類型登錄排隊(duì)等候辦理業(yè)務(wù)的顧客情況。隊(duì)列中的每個(gè)元素包括顧客進(jìn)們的時(shí)刻和辦理業(yè)務(wù)所需時(shí)間。</p><
13、;p> 1、隊(duì)列的抽象數(shù)據(jù)類型定義為</p><p> ADT Queue{數(shù)據(jù)對象: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é)果:處理客戶到達(dá)事件 void findAndDeal0211 ()</p><p> 操作結(jié)果:尋找可處理客戶事件</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(客戶到達(dá))</b></p><p> CustomerArriv
22、ed(); //處理客戶到達(dá)事件 </p><p><b> else </b></p><p> CustomerDeparture(); //處理客戶離開事件</p><p><b> }</b></p><p> 計(jì)算出客戶的平均逗留時(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> ?。?lt;/b></p><p><b> }</b></p><p><b> 3 詳細(xì)設(shè)計(jì)</b></p><p> 提示:根據(jù)概要設(shè)計(jì),給出數(shù)據(jù)的存儲表示(存儲結(jié)構(gòu)),完成相關(guān)算法的設(shè)計(jì)。</p><p><b> 存儲結(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、件類型,0表示到達(dá)事件,1表示離開事件。同時(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ì)列不空,出對列函數(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、在對列中尋找可處
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; //對列二&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ì)列 離開</p><p> back(eq)->type = "離開";</p><p> back(eq)->num = front(fq)->
50、num;</p><p> back(eq)->endTime = (front(fq)->beginTime + rand()%dealTime +1);</p><p> ++counter; //更新客戶總數(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ì)列 離開</p><p> back(eq)->type = "離開";</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、新客戶總數(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、在對列中尋找可處理元素</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) 離開</p><p> back(eq)->type = "離開";</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; //更新客戶總數(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é)號:410109030211 *\n");</p>
66、;<p> printf("* * 學(xué)院:信息工程學(xué)院 *\n");</p><p> printf("* * 專業(yè):計(jì)算機(jī)專業(yè) *\n");</p><p> printf("* 1.開始模擬
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è)時(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("客戶序列\(zhòng)t事件類型\t時(shí)間\t\t處理金額\n");</p><p> while( NULL != eq.head) //清除事件隊(duì)列</p><p><b> {</b></p><p> if(eq.head->type=="離開")</p>
79、<p> printf("%d\t\t離開\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("未處理的客戶:\n");</p><p> while( NULL != fq.head)
81、//下班后未處理的客戶</p><p><b> {</b></p><p> totalTime += ( closeTime - fq.head->beginTime ); //更新結(jié)束時(shí)第一隊(duì)列中未處理的客戶</p><p> printf ("%d\n"fq.head->num ) ;</
82、p><p> ++counter;</p><p><b> pop(fq);</b></p><p> }//while </p><p> printf("客戶逗留平均時(shí)間為: " );</p><p> cout <<"客戶逗留平均時(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ò)誤,請重新輸入\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> 測試用例:</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> 測試用例:</b></p>
88、<p><b> 輸入:5,選擇操作</b></p><p> 輸出:輸入錯(cuò)誤,請重新輸入</p><p> 運(yùn)行結(jié)果如圖4-3所示。</p><p> 圖4-3系統(tǒng)選擇操作界面</p><p> 結(jié)果分析:輸入5顯示“輸入錯(cuò)誤,請重新輸入”,結(jié)果正確。</p><p>
89、4、開始模擬并賦值操作1。</p><p> 測試用例:(最大到達(dá)時(shí)間間隔很長,而最大處理時(shí)間很短)</p><p><b> 輸入:1,開始模擬</b></p><p> 10000,銀行的初始存款</p><p> 600,銀行的營業(yè)時(shí)間</p><p> 20,最大到達(dá)時(shí)間間隔&l
90、t;/p><p><b> 5,最大處理時(shí)間</b></p><p> 輸出:客戶平均逗留時(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ù)的模擬,共處理客戶59人,客戶平均逗留時(shí)間為3,銀行當(dāng)前余額為15783。</p><p> 5、開始模擬并賦值操作
92、2。</p><p> 測試用例:(最大到達(dá)時(shí)間間隔很短,而最大處理時(shí)間很長)</p><p><b> 輸入:1,開始模擬</b></p><p> 10000,銀行的初始存款</p><p> 600,銀行的營業(yè)時(shí)間</p><p> 8,最大到達(dá)時(shí)間間隔</p>&l
93、t;p><b> 30,最大處理時(shí)間</b></p><p> 輸出:客戶平均逗留時(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ù)太多所以只截取最后一張圖來顯示結(jié)果。</p><p> 圖4-11模擬操作結(jié)果界面</p><p> 結(jié)果分析:結(jié)果分析:根據(jù)操作界面顯示,完成了銀行業(yè)務(wù)的模擬,共處理客戶127人,客戶平均逗留時(shí)間為7,銀行當(dāng)前余額為108765。</p><p><b> 5 設(shè)計(jì)體會</b></p><
95、p> 1. 本次課程設(shè)計(jì)各階段所遇到的問題有:</p><p> 需求分析階段:由于剛接觸銀行系統(tǒng)模擬問題,所以有一些地方不是很明確,在需求分析階段的測試用類中卡了比較長的時(shí)間。在老師的指導(dǎo)下慢慢了解了需求分析的意義,并且完成了需求分析階段的設(shè)計(jì)。為以后的課程設(shè)計(jì)打下基礎(chǔ)。</p><p> 概要設(shè)計(jì)階段:概要設(shè)計(jì)屬于課程設(shè)計(jì)的前期準(zhǔn)備時(shí)期,在這個(gè)階段中,我查閱了大量的資料來理
96、請自己的思路,明確了解決這個(gè)問題所需要的函數(shù)。并且畫出了銀行模擬系統(tǒng)的藍(lán)圖,再老師的指點(diǎn)下完成了概要設(shè)計(jì)的階段。</p><p> 詳細(xì)設(shè)計(jì)階段:根據(jù)需求分析和概要設(shè)計(jì)階段的設(shè)計(jì),再結(jié)合C語言的知識詳細(xì)設(shè)計(jì)就順理成章的出來了。在本次的課程設(shè)計(jì)中體會到了前期準(zhǔn)備的重要性,和盲目的下手寫程序相比,一步一步來從需求分析到概要設(shè)計(jì)再到詳細(xì)的過程無疑簡單許多,為以后編寫更復(fù)雜的程序做鋪墊。</p><
97、p> 編碼調(diào)試階段:由于個(gè)人的原因,在編碼調(diào)試階段出現(xiàn)了很多錯(cuò)誤,而其中大部分都是由于不細(xì)心導(dǎo)致的,而且由于是在程序編寫好以后一起調(diào)試的所以這個(gè)階段花了不少時(shí)間,通過編碼調(diào)試的階段讓我認(rèn)識到了細(xì)心在編寫程序過程中的重要性,而良好的習(xí)慣更能為自己解決不少麻煩。比如在編寫代碼過程中“{”和“}”要一起打出來以免缺少“}”而引起的錯(cuò)誤。</p><p> 2. 測試結(jié)果分析。</p><p
98、><b> 測試數(shù)據(jù):</b></p><p> ?、巽y行的初始存款10000,銀行的營業(yè)時(shí)間600,最大到達(dá)時(shí)間間隔20,最大處理時(shí)間5(最大到達(dá)時(shí)間間隔很長,而最大處理時(shí)間很短)。</p><p> ?、阢y行的初始存款10000,銀行的營業(yè)時(shí)間600,最大到達(dá)時(shí)間間隔8,最大處理時(shí)間30(最大到達(dá)時(shí)間間隔很短,而最大處理時(shí)間很長)。 </p>
99、<p><b> 結(jié)果分析:</b></p><p> 根據(jù)兩組數(shù)據(jù)所得到的結(jié)果顯示到達(dá)間隔時(shí)間比較大而處理時(shí)間比較小時(shí)處理的客戶人數(shù)較少,而客戶的平均逗留時(shí)間比較短。當(dāng)?shù)竭_(dá)間隔時(shí)間比較小而處理時(shí)間比較大時(shí)處理的客戶人數(shù)較多,而客戶的平均逗留時(shí)間比較長。 </p><p> 3. 本次課程設(shè)計(jì)收獲:</p><p&
100、gt; 這是我第一次做課程設(shè)計(jì),當(dāng)聽老師說題目時(shí)就充滿了好奇心,以前只是一味的學(xué)習(xí)書本的知識,這次要理論結(jié)合實(shí)際的去做一個(gè)系統(tǒng)程序,有壓力也有動(dòng)力。拿到自己的任務(wù)書時(shí),仔細(xì)的閱讀設(shè)計(jì)要求,腦海中開始尋找合適的數(shù)據(jù)結(jié)構(gòu)來解決這個(gè)問題。</p><p> 做程序時(shí)遇到很多難題,因?yàn)槌绦蚬δ艿膶?shí)現(xiàn),說起來簡單真正實(shí)現(xiàn)起來就有點(diǎn)難了。在一遍一遍的分析與調(diào)試中,逐步的解決程序中的錯(cuò)誤。這使我懂得了學(xué)習(xí)的重要性,了解到理
101、論知識與實(shí)踐相結(jié)合的重要意義,充分體會到了在程序執(zhí)行時(shí)的提示性輸出的重要性。編寫大一點(diǎn)的程序,應(yīng)該先寫出算法,再寫程序,調(diào)試時(shí)一段一段調(diào)試;對于沒有實(shí)現(xiàn)在操作用空操作代替,這樣容易找出錯(cuò)誤所在。最忌諱將所有代碼寫完后再調(diào)試,這樣錯(cuò)誤太難找。 </p><p> 通過這為期兩周的課程設(shè)計(jì),使我對編程產(chǎn)生了更濃厚的興趣,學(xué)會了堅(jiān)持,耐心和努力,也明白了怎樣把所學(xué)知識應(yīng)用到現(xiàn)實(shí)當(dāng)中,激勵(lì)了我的學(xué)習(xí)主動(dòng)性。雖然數(shù)據(jù)結(jié)構(gòu)
102、這門課已經(jīng)結(jié)束了,但是我們不會停止對這門課的研究,路漫漫其修遠(yuǎn)兮,吾將上下而求索。不斷攀登科學(xué)的最高峰。深刻體會到要成為一名好的軟件員,甚至一名出色的軟件工程師,我還有很遠(yuǎn)的路要走。</p><p><b> 6 致謝</b></p><p> 在本次課程設(shè)計(jì)過程中我遇到了很多困難,其中有對問題理解方面的,也有編碼調(diào)試方面的。通過老師的指導(dǎo)和跟同學(xué)之間的討論最終克
103、服困難完成了銀行系統(tǒng)模擬的問題。在此誠心感謝幫助過我的老師:xx等,以及幫助過我的同學(xué):xx。</p><p><b> 7 參考文獻(xiàn)</b></p><p> 嚴(yán)蔚敏.?dāng)?shù)據(jù)結(jié)構(gòu)(C語言版)[M].清華大學(xué)出版社 2008年11月</p><p> 嚴(yán)蔚敏.?dāng)?shù)據(jù)結(jié)構(gòu)題集(C語言版)[M].清華大學(xué)出版社 2008年11月</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行業(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ù)淺析
- 臺州銀行電子銀行業(yè)務(wù)章程
- 2009公司銀行業(yè)務(wù)試題
- 銀行業(yè)務(wù)互聯(lián)原型系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 銀行業(yè)務(wù)外包研究.pdf
- 銀行業(yè)務(wù)技能培訓(xùn)制度
- 會計(jì)與銀行業(yè)務(wù)用語
- 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
- 臺州銀行電子銀行業(yè)務(wù)章程(201804)
評論
0/150
提交評論