銀行業(yè)務(wù)模擬系統(tǒng)課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論