【數(shù)據(jù)結構】銀行業(yè)務模擬報告_第1頁
【數(shù)據(jù)結構】銀行業(yè)務模擬報告_第2頁
【數(shù)據(jù)結構】銀行業(yè)務模擬報告_第3頁
【數(shù)據(jù)結構】銀行業(yè)務模擬報告_第4頁
【數(shù)據(jù)結構】銀行業(yè)務模擬報告_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

【數(shù)據(jù)結構】銀行業(yè)務模擬報告*;東北大學信息科學與工程學院數(shù)據(jù)結構課程設計報告題目銀行業(yè)務模擬課題組長侯永躍課題組成員林浩成李博然韓碩專業(yè)名稱計算機科學與技術班級計1307指導教師楊雷 2015年1月【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第1頁。

【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第1頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第2頁。課程設計任務書【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第2頁。題目:銀行業(yè)務模擬問題描述:銀行有N個窗口對外接待客戶。從早晨銀行營業(yè)開始到晚間營業(yè)終止不斷有客戶辦理業(yè)務。銀行門口設有取號機,分為一般業(yè)務和特殊業(yè)務,設每個一般業(yè)務不超過5分鐘,每個特殊業(yè)務不超過15分鐘??蛻粼诘群騾^(qū)內(nèi)等候叫號。設計要求:設計銀行客戶業(yè)務的模擬程序。(1)采用有序鏈表、隊列等數(shù)據(jù)結構。(2)分類統(tǒng)計一天內(nèi)客戶在銀行逗留的平均時間和人數(shù)。(3)若特殊業(yè)務窗口空閑,可辦理一般業(yè)務。(4)可以隨機或人工輸入客戶到達銀行的時間。(5)其它完善性功能。指導教師簽字:年月日目錄1課題概述 41.1課題任務 41.2課題原理 41.3相關知識 52需求分析 52.1課題調(diào)研 52.2用戶需求分析 63方案設計 63.1總體功能設計 63.2數(shù)據(jù)結構設計 93.3函數(shù)原型設計 103.4主算法設計 113.5用戶界面設計 14【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第3頁。4方案實現(xiàn) 15【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第3頁。4.1開發(fā)環(huán)境與工具 154.2程序設計關鍵技術 164.3個人設計實現(xiàn)(按組員分工)4.3.1侯永躍設計實現(xiàn) 164.3.2李博然設計實現(xiàn) 234.3.3林浩成設計實現(xiàn) 284.3.4韓碩設計實現(xiàn) 325測試與調(diào)試 355.1個人測試 355.1.1侯永躍測試 355.2組裝與系統(tǒng)測試 385.3系統(tǒng)運行 416課題總結 436.1課題評價 436.2團隊協(xié)作 446.3下一步工作 446.4個人設計小結(按組員分工) 446.4.1侯永躍設計小結 44【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第4頁。6.4.2李博然設計小結 45【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第4頁。6.4.3林浩成設計小結 456.4.4韓碩設計小結 467附錄A課題任務分工 46A-1課題程序設計分工 46A-2課題報告分工 49附錄B課題設計文檔(光盤) 49B-1課程設計報告(電子版) 49B-2源程序代碼(*.H,*.CPP) 49B-3工程與可執(zhí)行文件) 49B-4屏幕演示錄像文件(可選) 49附錄C用戶操作手冊(可選) 49C.1運行環(huán)境說明 49C.2操作說明 49【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第5頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第5頁。1課題概述1.1課題任務銀行業(yè)務模擬【問題描述】銀行有N個窗口對外接待客戶。從早晨銀行營業(yè)開始到晚間營業(yè)終止不斷有客戶辦理業(yè)務。銀行門口設有取號機,分為一般業(yè)務和特殊業(yè)務,設每個一般業(yè)務不超過5分鐘,每個特殊業(yè)務不超過15分鐘??蛻粼诘群騾^(qū)內(nèi)等候叫號?!驹O計要求】設計銀行客戶業(yè)務的模擬程序。(1)采用有序鏈表、隊列等數(shù)據(jù)結構。(2)分類統(tǒng)計一天內(nèi)客戶在銀行逗留的平均時間和人數(shù)。(3)若特殊業(yè)務窗口空閑,可辦理一般業(yè)務。(4)可以隨機或人工輸入客戶到達銀行的時間。(5)其它完善性功能。通過本實驗理解并掌握數(shù)據(jù)結構及其應用,鞏固程序設計基礎知識,初步學習軟件工程、可視化程序設計的知識,提高編程水平和分析問題、解決問題的能力,增強學習能力和合作能力。1.2課題原理【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第6頁。 本程序主要采用鏈表、隊列等數(shù)據(jù)結構,鏈表定義為有序鏈表,實現(xiàn)了事件之間的聯(lián)系。本設計關鍵在于對事件的處理,將銀行業(yè)務模擬分為客戶到達銀行辦理業(yè)務事件、辦理業(yè)務結束離開銀行事件??蛻舻竭_銀行、離開銀行等事件的信息都存入鏈表中,對鏈表可以進行插入、寫入文件等操作。【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第6頁。 另外我們將銀行辦理業(yè)務的不同窗口定義為不同的數(shù)組,客戶在各自窗口前排隊成為隊列,銀行有N個窗口,各自為不同的數(shù)組,在各個窗口前,每個隊列的隊頭是正在窗口辦理業(yè)務的客戶,隊頭出隊的時刻就是客戶離開銀行的時刻,也即客戶離開事件的發(fā)生,此時可以利用對有序表的處理引入下一名客戶到達事件。 程序主要通過模擬銀行一天從早到晚客戶到達、客戶入隊、客戶離開的事件來完成程序的功能。通過合理的隨機模擬,模擬出一天內(nèi)銀行的總客戶數(shù)、客戶累計逗留時間、客戶平均逗留的時間、一般業(yè)務與特殊業(yè)務的辦理次數(shù)等。這些信息寫入到文件中,便于查找和統(tǒng)計。1.3相關知識對有序鏈表的構造和處理。對離散事件的模擬,理解動態(tài)規(guī)劃的有關概念。對隊列中元素的插入,刪除等操作。對文件的操作。一定的MFC有關知識。2需求分析 2.1課題調(diào)研調(diào)研結果:在實際生活中,人們經(jīng)常去銀行辦理業(yè)務,如何能夠正確有效地安排客戶的順序成為關鍵。所以程序應注重高效性。【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第7頁。另外,銀行大多有辦理不同種業(yè)務的窗口。銀行開設的窗口有一般業(yè)務窗口和特殊業(yè)務窗口,特殊業(yè)務窗口往往較少?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第7頁??蛻艮k理業(yè)務時的情況分為兩種,一種是客戶到來時恰好有合適的辦理業(yè)務的窗口,另一種是客戶不全在辦理業(yè)務(即等待)。銀行辦理一般業(yè)務與特殊業(yè)務的客戶數(shù)量肯定會相差很多,一般業(yè)務往往比特殊業(yè)務的客戶數(shù)多。因此,如果特殊窗口無人辦理業(yè)務,可以讓辦理一般業(yè)務的客戶去特殊窗口辦理。另外,客戶叫號后幾乎沒有在等待過程中離開的,因此程序中忽略客戶叫號后離開不辦理業(yè)務的情形。2.2用戶需求分析 用戶分為兩類:銀行客戶和銀行職員。程序的用戶操作端分為客戶端和銀行端,客戶端由銀行客戶操作,銀行客戶通過客戶端叫號,等待或者去窗口辦理業(yè)務(程序中的客戶到達時間由此決定,這些操作通過隨機模擬實現(xiàn));銀行端由銀行窗口的職員操作,主要辦理業(yè)務、設置業(yè)務窗口數(shù)(程序中的客戶離開時間由此決定,這些操作也通過模擬實現(xiàn))。銀行端還可以對當日的業(yè)務人數(shù)以及辦理的時間等信息進行統(tǒng)計和分析,將其與之前模擬的信息比較,得出有關的業(yè)務情況?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第8頁。3方案設計【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第8頁。3.1總體功能設計經(jīng)過討論,我們決定程序總體可以實現(xiàn)以下功能:能夠模擬銀行一天內(nèi)的客戶辦理業(yè)務的事件。統(tǒng)計銀行業(yè)務的客戶數(shù)、辦理業(yè)務的時間等信息。可以查詢以往模擬的信息??梢詫崿F(xiàn)數(shù)據(jù)的輸入來更改其中的信息。當前窗口的人員分布情況動態(tài)顯示。界面要求達到有合理的提示,根據(jù)提示可以完成相關功能要求。具體分析:程序主要通過模擬銀行一天從早到晚客戶到達事件、離開的時刻、逗留時間,可通過保存、查詢、打印以上信息,來完成程序的功能。通過合理的隨機模擬,模擬出一天內(nèi)銀行的總客戶數(shù)、客戶累計逗留時間、客戶平均逗留的時間、一般業(yè)務與特殊業(yè)務的辦理次數(shù),一般業(yè)務與特殊業(yè)務的辦理人數(shù)和逗留時間。這些信息寫入到文件中,用戶可以再次查詢、打印、統(tǒng)計。并且,在應用MFC之后,這些有關數(shù)據(jù)可以在界面中得以直觀顯示。以下是可視化UML圖:【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第9頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第9頁?;贛FC可視化的UML類圖以下是銀行業(yè)務模擬的相應流程圖:【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第10頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第10頁。【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第11頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第11頁。3.2數(shù)據(jù)結構設計程序的數(shù)據(jù)結構包括鏈表、隊列和有關的數(shù)組等。事件鏈表記錄客戶的事件,窗口隊列記錄客戶排隊的信息,記錄信息鏈表將所有的客戶信息按照不同的類別保存到鏈表中。銀行窗口q[5]是一個數(shù)組,保存窗口隊列頭結點。//事件結構體typedefstructEvent_Node{intOccurTime;//事件發(fā)生時刻intNType;//事件類型,-1表示到達,0-4代表在那個窗口離開inttype;//0-4Event_Node*next;//指向下一個}Event_Node,*Event;//事件類型,有序鏈表LinkList的數(shù)據(jù)元素類型//隊列結構體typedefstructQueue_Node{intArrivalTime;//到達時刻intDuration;//辦業(yè)務持續(xù)時間inttype;//客戶的真實業(yè)務類型0-4Queue_Node*next;//指向下一個結點}Queue_Node,*Queue,LinkList_Node,*LinkList;//隊列的數(shù)據(jù)元素類型【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第12頁。//客戶信息記錄鏈表【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第12頁。typedefstructEndLinkList_node{intOrderNum;//編號intArrivalHour;//到達小時數(shù)intArrivalMin;//到達分鐘數(shù)intDepartureHour;//離開小時數(shù)intDepartureMin;//離開分鐘數(shù)EndLinkList_node*next;}EndLinkList_Node,*EndLinkList;3.3函數(shù)原型設計事件結點類成員函數(shù)原型:OrderInsertEv(Event_Node*e);//按序插入事件表中EmptyEve();//判斷事件表是否為空DeletefirEve();//刪除事件表的第一個結點隊列結點類成員函數(shù)原型:OutQueue();//出隊列函數(shù)EnQueue(Queue_Node*p);//入隊列函數(shù)EmptyQue();//判斷隊列是否為空Queue_Node*Getfirnode();//獲取隊列第一個結點QueueLength();//隊列的長度【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第13頁。信息記錄結點類成員函數(shù)原型:【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第13頁。Record_Linklist();事件類成員函數(shù)原型:Simulate();CustomArrived();//客戶到達事件函數(shù)CustomerDeparture();//處理客戶離開事件,en.NType>0Bank_Simulation();//銀行業(yè)務模擬函數(shù)OpenForDay();//準備函數(shù)InitAll();//初始化函數(shù)Random(int&durtime,int&intertime,int&type);//隨機函數(shù)Minimum();//查找最小隊列RecordLinkList(inti,intj);//記錄客戶的信息鏈表,分別記錄不同窗口的信息ChangeForm();//客戶信息轉(zhuǎn)化函數(shù)Output();//輸出模擬完的結果Print_former();//輸出以前信息菜單函數(shù)Print_current();//輸出當前信息菜單函數(shù)StoreFile();//永久保存到文件中StoreTotempfile();//保存到臨時文件中3.4主算法設計【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第14頁。//初始化函數(shù)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第14頁。voidInitAll(){TotalTime=0;//總時間CustomerNum=0;//總?cè)藬?shù)spetotaltime=0;//辦理特殊業(yè)務的總逗留時間comtotaltime=0;//辦理一般業(yè)務的總逗留時間EV=newEvent_Node;//事件表創(chuàng)建頭結點//初始化三種鏈表以及隊列InitQueue(q[i]);//i=0,1,2,3,4a[j]=newLinkList_Node;b[k]=newEndLinkList_Node;//k=0,1,2,3,4,5}//客戶到達事件函數(shù)voidCustomArrived(){intdurtime;//逗留時間intintertime;//下一個客戶到達的時間inttype;//窗口類型intt;//記錄下一個客戶到達的時刻【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第15頁。Evente;//事件變量【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第15頁。Eventtemp=newEvent_Node;Queues=newQueue_Node;//隊列結點變量inti;//最小的隊列的下標Random(durtime,intertime,type);//產(chǎn)生隨機值:逗留時間,下一個客戶到達時間,以及下一個客戶的業(yè)務類型t=en->OccurTime+intertime;//下一個客戶到達的具體時間if(t<CloseTime){++CustomerNum;//號數(shù)增加TotalTime+=durtime;e=CreateEvNode(t,-1,type);//構造下一個客戶的事件OrderInsert(e);//插入到事件鏈表中s->ArrivalTime=en->OccurTime;//當前事件的到達時間s->Duration=durtime;//當前事件的逗留時間s->next=NULL;s->type=en->type;if(en->type==0){i=0;spe++;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第16頁。spetotaltime+=durtime;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第16頁。EnQueue(q[i],s);}//如果當前結點的業(yè)務類型是特殊業(yè)務,則入到第0個隊列里else{i=Minimum();//否則查找最小的隊列com++;comtotaltime+=durtime;EnQueue(q[i],s);//將其插入到隊列中}if(QueueLength(q[i])==1){temp->NType=i;temp->OccurTime=s->ArrivalTime+s->Duration;temp->type=en->type;temp->next=NULL;OrderInsert(temp);}}}//處理客戶離開事件,en.NType>-1【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第17頁。voidCustomerDeparture()【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第17頁。{ inti=en->NType,j=en->type; Queuep=newQueue_Node; Evente=newEvent_Node; RecordLinkList(a[j],q[i]);//記錄客戶事件outQueue(q[i]); if(!(QueueEmpty(q[i])))//判斷事件表是否為空 { p=GetHead(q[i]); e->OccurTime=p->ArrivalTime+p->Duration; e->NType=i; e->type=p->type; OrderInsert(e); }}//銀行業(yè)務模擬函數(shù)voidBank_Simulation(){ OpenForDay(); inti=6; while(!EmptyEventList())【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第18頁。 {【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第18頁。 en=EV->next;DelFirstNode(); if(en->NType==-1)//判斷事件類型 CustomArrived(); else CustomerDeparture(); } ChangeForm();StoreTofile();//將模擬的信息保存到文件中 Output();}3.5用戶界面設計概要設計原理:【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第19頁。本實驗基于MFC的界面的設計,是通過創(chuàng)建對話框類來實現(xiàn),在窗口的控件中定義一些事件對象,來調(diào)用其成員函數(shù)模擬,信息查詢需要創(chuàng)建一個子窗口,在此窗口中,需要使用MFC中的文件類來打開文件,然后將相應的模擬信息輸出。最后回到主窗口,退出或者模擬。此件需要用到按鈕控件,編輯框控件,還有顯示框控件等控件?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第19頁。4方案實現(xiàn)4.1開發(fā)環(huán)境與工具開發(fā)環(huán)境:windows7開發(fā)工具:VC++6.04.2程序設計關鍵技術根據(jù)我們的理解,本實驗主要有以下要點:(一)如何對客戶發(fā)生的事件處理。我們采用了將這些事件記錄在有序的鏈表當中,將客戶的到達,離開這些事件定義為結點,然后插入事件表中,構建事件表,然后對每一個事件進行處理,要么到達,要么入隊列,要么離開。通過這種方式,我們不需要在產(chǎn)生客戶事件的時候去不停的判斷窗口的狀態(tài)。這是一個動態(tài)的過程?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第20頁。(二)如何產(chǎn)生隨機的事件,比如隨機時間,隨機逗留時間,隨機窗口類型。我們在隨機函數(shù)中設置了一個sleep()函數(shù),用來暫停一段時間,讓函數(shù)產(chǎn)生的隨機數(shù)更準確,不重復。我們也設置了每兩個客戶之間的時間間隔。這些數(shù)據(jù)設置對產(chǎn)生的隨機數(shù)有很大的影響。比如,如果我們將暫停時間設置得非常小,那么產(chǎn)生的隨機數(shù)重復的概率就會大大的增加,以此我們不停的模擬,然后設置,還有是兩個客戶之間的時間間隔也會影響窗口的客戶數(shù)量,我們模擬然后設置后發(fā)現(xiàn)將此間隔時間設置為10-15分鐘之間時,客戶在每個窗口的數(shù)量會比較均勻?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第20頁。4.3個人設計實現(xiàn)(按組員分工)4.3.3侯永躍程序設計實現(xiàn)main(){menu();return0;}//輸出當前信息函數(shù)voidPrint_current(){inti;system("cls");system("color8a");cout<<"\t\t\t\t輸出本次模擬的客戶信息\n\n\n"<<endl;cout<<"0.輸出本次模擬的特殊窗口的客戶信息"<<endl;cout<<"1.輸出本次模擬的1號一般窗口的客戶信息"<<endl;cout<<"2.輸出本次模擬的2號一般窗口的客戶信息"<<endl;cout<<"3.輸出本次模擬的3號一般窗口的客戶信息"<<endl;cout<<"4.輸出本次模擬的4號一般窗口的客戶信息"<<endl;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第21頁。cout<<"5.輸出本次模擬的一整天的客戶信息(客戶編號,客戶到達時間,客戶離開時間)\n\n\n"<<endl;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第21頁。cin>>i;while(1){if(i>=0&&i<=5){switch(i){case0:Print_file(0);break;case1:Print_file(1);break;case2:Print_file(2);break;case3:Print_file(3);break;case4:Print_file(4);break;case5:Print_file(5);break;}break;}else{cout<<"你的輸入有問題,請重新輸入!"<<endl;cin>>i;}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第22頁。}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第22頁。}//輸出信息菜單voidPrint_fun(){inti;//選擇system("cls");system("color9a");cout<<"\t\t\t\t模擬的信息輸出\n\n\n\n";cout<<"\t\t\t1.以前模擬客戶信息輸出\t2.當前模擬客戶信息輸出\n\n\n";cin>>i;while(1){if(i==1){//Print_former();break;}elseif(i==2){Print_current();【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第23頁。break;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第23頁。}else{cout<<"\t\t\t你的選擇有誤,請重新輸入!"<<endl;cin>>i;}}}//打印文件信息voidPrint_file(intnum)//打印文件信息,num代表文件的編號{FILE*fp;charch;switch(num){case0:fp=fopen("0本次模擬特殊窗口客戶信息文件.txt","r");break;case1:fp=fopen("1本次模擬1號一般窗口客戶信息文件.txt","r");break;case2:fp=fopen("2本次模擬2號一般窗口客戶信息文件.txt","r");break;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第24頁。case3:fp=fopen("3本次模擬3號一般窗口客戶信息文件.txt","r");break;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第24頁。case4:fp=fopen("4本次模擬4號一般窗口客戶信息文件.txt","r");break;case5:fp=fopen("5本次模擬客戶所有信息文件.txt","r");break;default:cout<<"\n\n\t\t\t你的的輸入有問題,請重新輸入!";fclose(fp);return;}if(fp==NULL){cout<<"\t\t\t\t文件內(nèi)容為空!"<<endl;fclose(fp);return;}while(!feof(fp)){//cin.sync();fscanf(fp,"%c",&ch);putchar(ch);}fclose(fp);}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第25頁。//菜單顯示【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第25頁。voidmenu(){system("cls");system("color9a");inti;cout<<"\t\t\t***********銀行模擬系統(tǒng)***********\n\n\n\n\n";cout<<"\t\t\t1.銀行模擬"<<"\t\t2.打印信息"<<endl;cin>>i;switch(i){case1:Bank_Simulation();//模擬函數(shù)Sleep(3000);menu();break;case2:Print_fun();Sleep(3000);menu();break;default:【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第26頁。cout<<"您的輸入有誤!請重新輸入:"<<endl;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第26頁。Sleep(1000);menu();break;}}//輸出模擬完的結果voidOutput(){system("cls");system("coloraa");cout<<"\t\t\t\t模擬的結果顯示如下:\n\n\n";cout<<"*銀行這一天7:00--19:00,客戶逗留時間和是:"<<TotalTime<<"分鐘"<<endl; cout<<"*這一天總的客戶人數(shù)是:"<<CustomerNum<<endl; cout<<"*平均每個客戶逗留的時間是:"<<(double)TotalTime/CustomerNum<<"分鐘"<<endl; cout<<"*辦理特殊業(yè)務的總?cè)藬?shù)是:"<<spe<<endl; cout<<"zongshijian:"<<spetotaltime<<endl; cout<<"*辦理普通業(yè)務的總?cè)藬?shù)是:"<<com<<endl<<"zongshinjian:"<<comtotaltime<<endl<<endl; system("pause");【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第27頁。}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第27頁。//初始化函數(shù)voidInitAll(){TotalTime=0;CustomerNum=0;spetotaltime=0;//辦理特殊業(yè)務的總逗留時間comtotaltime=0;//辦理一般業(yè)務的總逗留時間EV=newEvent_Node;EV->next=NULL;//初始化三種鏈表以及隊列for(inti=0;i<5;i++){InitQueue(q[i]);}for(intj=0;j<6;j++){a[j]=newLinkList_Node;a[j]->next=NULL;}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第28頁。for(intk=0;k<6;k++)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第28頁。{b[k]=newEndLinkList_Node;b[k]->next=NULL;}}//創(chuàng)建事件結點EventCreateEvNode(intOccurTime,intNType,inttype)//創(chuàng)建結點{Evente;e=newEvent_Node;if(!e)return0;e->next=NULL;e->OccurTime=OccurTime;e->NType=NType;e->type=type;returne;}//初始化隊列voidInitQueue(Queue&q){【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第29頁。q=newQueue_Node;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第29頁。q->next=NULL;q->ArrivalTime=0;q->Duration=0;}4.3.2李博然程序設計實現(xiàn)//讀取文件信息intreadFilec(har*filename){intx=0,y=0;charline[szLINE];intlines=0;FILE*f=fopen(filename,"r");while(!feof(f)){memset(line,0,szLINE);fgets(line,szLINE-1,f);sscanf(line,"%d|%d",&x,&y);//這里取到了x和y,用SetWindowText輸出即可printf("%d#\t=%d\n",x,y);lines++;}//endwhilefclose(f);【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第30頁。returnlines;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第30頁。}//endreadFile:voidCustomArrived();//客戶到達事件函數(shù)voidRandom(int&durtime,int&intertime,int&type);//隨機函數(shù)voidStoreTofile();//保存到文件中//客戶到達事件函數(shù)voidCustomArrived(){intdurtime;//逗留時間intintertime;//下一個客戶到達的時間inttype;//窗口類型intt;//記錄下一個客戶到達的時刻Evente;//事件變量Eventtemp=newEvent_Node;Queues=newQueue_Node;//隊列結點變量inti;//最小的隊列的下標Random(durtime,intertime,type);//產(chǎn)生隨機值:逗留時間,下一個客戶到達時間,以及下一個客戶的業(yè)務類型t=en->OccurTime+intertime;//下一個客戶到達的具體時間if(t<CloseTime)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第31頁。{【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第31頁。++CustomerNum;//號數(shù)增加TotalTime+=durtime;e=CreateEvNode(t,-1,type);//構造下一個客戶的事件OrderInsert(e);//插入到事件鏈表中s->ArrivalTime=en->OccurTime;//當前事件的到達時間s->Duration=durtime;//當前事件的逗留時間s->next=NULL;s->type=en->type;if(en->type==0){i=0;spe++;spetotaltime+=durtime;EnQueue(q[i],s);}//如果當前結點的業(yè)務類型是特殊業(yè)務,則入到第0個隊列里else{i=Minimum();//否則查找最小的隊列com++;comtotaltime+=durtime;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第32頁。//s->truetype=;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第32頁。EnQueue(q[i],s);//將其插入到隊列中}if(QueueLength(q[i])==1){temp->NType=i;temp->OccurTime=s->ArrivalTime+s->Duration;temp->type=en->type;temp->next=NULL;OrderInsert(temp);}}}//隨機函數(shù)voidRandom(int&durtime,int&intertime,int&type)//產(chǎn)生逗留時間,產(chǎn)生下一個客戶時間間隔,產(chǎn)生業(yè)務類型{//限制逗留時間一般業(yè)務為5分鐘,特殊業(yè)務15分鐘。都不低于1分鐘,下一個客戶到達時間不低于1分鐘,不超過15分鐘。Sleep(100);inti;srand((unsigned)time(NULL));【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第33頁。type=rand()%5;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第33頁。if(type==0){durtime=rand()%15+1;intertime=rand()%15+1;}else{durtime=rand()%5+1;intertime=rand()%15+1;}}//入事件鏈表函數(shù)voidOrderInsert(Evente){Eventp=EV;if(!p->next){p->next=e;return;}if(p->next->OccurTime<e->OccurTime)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第34頁。p=p->next;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第34頁。e->next=p->next;p->next=e;}///查找最小隊列intMinimum(){inti=1,t=3;Queuetemp;intre[5];for(intw=1;w<5;++w)re[w]=0;if(q[0]->next==NULL)//特殊窗口無人return0;else{for(intj=1;j<5;++j){temp=q[j]->next;while(temp){temp=temp->next;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第35頁。re[j]++;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第35頁。}}}if(re[1]>re[2])i=2;if(re[3]>re[4])t=4;if(re[i]>re[t])returnt;elsereturni;}intQueueLength(Queueq){inti=0;Queuetemp=q;while(temp->next){i++;temp=temp->next;}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第36頁。returni;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第36頁。}4.3.3林浩成程序設計實現(xiàn)//開始準備模擬voidOpenForDay(){InitAll();Eventp=newEvent_Node;p->NType=-1;p->OccurTime=0;p->type=0;p->next=NULL;EV->next=p;spe=com=0;}//銀行業(yè)務模擬函數(shù)voidBank_Simulation(){system("cls");【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第37頁。system("color9b");【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第37頁。 OpenForDay(); inti=6; while(!EmptyEventList()) { en=EV->next;DelFirstNode(); if(en->NType==-1) CustomArrived(); else CustomerDeparture(); } ChangeForm();StoreTofile();//將模擬的信息保存到文件中 Output();}//客戶信息格式轉(zhuǎn)化,保存在鏈表。voidCForm(inti){intj=0;LinkListp;EndLinkListq;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第38頁。EndLinkListm;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第38頁。p=a[i];q=b[i];while(p->next){j++;p=p->next;m=newEndLinkList_Node;m->OrderNum=j;m->ArrivalHour=p->ArrivalTime/60+7;m->ArrivalMin=p->ArrivalTime%60;m->DepartureHour=(p->ArrivalTime+p->Duration)/60+7;m->DepartureMin=(p->ArrivalTime+p->Duration)%60;m->next=NULL;q->next=m;q=q->next;}q->next=NULL;}voidChangeForm(){inti;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第39頁。for(i=0;i<6;i++)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第39頁。CForm(i);}//判斷事件鏈表是否為空intEmptyEventList(){if(EV->next==NULL)return1;elsereturn0;}//入隊列函數(shù)voidEnQueue(Queueq,Queuee){Queuep;p=q;while(p->next)p=p->next;p->next=e;}//出隊列函數(shù)voidoutQueue(Queueq)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第40頁。{【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第40頁。 Queuep;p=q->next; q->next=p->next; deletep;} //保存到文件中,num代表文件的編號voidStoreTofile(){FILE*fp[6];fp[0]=fopen("0本次模擬特殊窗口客戶信息文件.txt","w");fp[1]=fopen("1本次模擬1號一般窗口客戶信息文件.txt","w");fp[2]=fopen("2本次模擬2號一般窗口客戶信息文件.txt","w");fp[3]=fopen("3本次模擬3號一般窗口客戶信息文件.txt","w");fp[4]=fopen("4本次模擬4號一般窗口客戶信息文件.txt","w");fp[5]=fopen("5本次模擬客戶所有信息文件.txt","w");//寫入第一個文件EndLinkListtemp;for(inti=0;i<6;++i){temp=b[i]->next;while(temp)【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第41頁。{【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第41頁。fprintf(fp[i],"%d\t到達時間:%d:%d\t離開時間:%d:%d\n",temp->OrderNum,temp->ArrivalHour,temp->ArrivalMin,temp->DepartureHour,temp->DepartureMin);temp=temp->next;}}for(intt=0;t<6;t++){fclose(fp[t]);//關閉文件}}//獲取隊列的頭結點QueueGetHead(Queuep){Queueq=newQueue_Node;q=p->next;returnq;}//刪除(當前)第一個結點voidDelFirstNode(){【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第42頁。Eventp;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第42頁。p=EV->next;EV->next=p->next;}4.3.4韓碩程序設計實現(xiàn)//處理客戶離開事件,en.NType>-1voidCustomerDeparture(){ inti,j; Queuep; Evente; p=newQueue_Node; e=newEvent_Node; i=en->NType; j=en->type; RecordLinkList(a[j],q[i]);outQueue(q[i]); if(!(QueueEmpty(q[i]))) { p=GetHead(q[i]); e->OccurTime=p->ArrivalTime+p->Duration;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第43頁。 e->NType=i;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第43頁。 e->type=p->type; OrderInsert(e); }}//記錄客戶的信息鏈表,分別記錄不同窗口的信息voidRecordLinkList(LinkListp,Queueq){LinkListm=newLinkList_Node;LinkListm2=newLinkList_Node;LinkListtemp=a[5];LinkListtemp1=p;while(temp1->next)temp1=temp1->next;m2->ArrivalTime=m->ArrivalTime=q->next->ArrivalTime;m2->Duration=m->Duration=q->next->Duration;m2->next=m->next=NULL;m2->type=m->type=q->next->type;temp1->next=m;while(temp->next)temp=temp->next;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第44頁。temp->next=m2;【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第44頁。}//出隊列voidoutQueue(Queueq){ Queuep;p=q->next; q->next=p->next; deletep;}//判斷隊列是否為空intQueueEmpty(Queueq){ if(!(q->next)) return1; else return0;}【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第45頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第45頁。5測試與調(diào)試5.1個人測試組長測試:主對話框顯示基于DOS界面下的測試:模擬之前:在此處選擇進行模擬或是輸出信息圖5.1.2.1模擬前截圖2.選擇銀行模擬之后的運行結果:圖5.1.2.1模擬結果截圖【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第46頁。運行結果:在銀行模擬過程中,通過對以上函數(shù)的調(diào)用,將客戶信息以如下格式保存在了鏈表里?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第46頁。模擬信息(部分)截圖菜單界面(menu()函數(shù))如圖,銀行業(yè)務模擬結果,是輸出模擬結果函數(shù)Output()的直接運行結果。【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第47頁。事件創(chuàng)建函數(shù)CreateEvNode(intOccurTime,intNtype,inttype)、初始化隊列函數(shù)InitQueue(Queue&q)、初始化函數(shù)InitAll()、銀行開業(yè)(準備)函數(shù)OpenForDay()都是程序總體的初始化操作?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第47頁。刪除第一個結點函數(shù)DelFirstNode()使用在銀行模擬、發(fā)生客戶到達赫爾離開事件之前,用于刪除全局變量事件EV的第一個結點。若不刪除,則無法顯示模擬結果。如果判斷空隊列的函數(shù):QueueEmpty(Queueq)、獲取隊列頭結點函數(shù):GetHead(Queuep)、獲取隊列長度函數(shù):QueueLength(Queueq)這三個函數(shù)無法運行或運行有誤,則模擬過程中會因客戶隊列有問題而無法得出模擬結果。銀行業(yè)務模擬結果 如下圖所示為輸出本次模擬的客戶信息菜單運行結果,是輸出菜單函數(shù)Print_current()的運行結果?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第48頁。查找最小隊列函數(shù)Minimum()如果運行有誤或無法運行,則無法使客戶安排到窗口最小隊列,最終導致客戶整天集中在第一個窗口辦理業(yè)務。則圖中顯示功能2至4選項對應的窗口客戶信息為空?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第48頁。輸出本次模擬的客戶信息菜單(Print_current()函數(shù)) 如下圖所示,是在圖5.1.3.3的基礎上選擇了“3”的結果,是函數(shù)Print_current()和Print_file(intnum)的運行結果。該窗口的客戶信息5.2組裝與系統(tǒng)測試將所有的函數(shù),寫好以后,我們先是在VC++6.0下運行測試。然后將所有的函數(shù)作為結點類的成員函數(shù),或者事件類的成員函數(shù)。在MFC可視化測試運行。【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第49頁。系統(tǒng)測試包括兩部分,一部分是DOS界面的銀行模擬系統(tǒng)的測試記錄,另一部分是可視化界面的銀行模擬系統(tǒng)的測試記錄?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第49頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第50頁。表5.2.1銀行業(yè)務模擬系統(tǒng)測試記錄【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第50頁。操作名稱具體操作操作結果和輸出運行程序點擊文件運行程序銀行模擬系統(tǒng)顯示主菜單。進行銀行業(yè)務模擬輸入數(shù)字“1”,按下回車。顯示了當前銀行業(yè)務模擬結果,其中包括銀行客戶逗留時間和、總客戶數(shù)、客戶平均逗留時間、辦理特殊業(yè)務的總?cè)藬?shù)、特殊業(yè)務辦理總時間、一般業(yè)務總?cè)藬?shù)、一般業(yè)務辦理總時間等信息,并提示按任意鍵繼續(xù)。進入打印信息按任意鍵繼續(xù)后,在主菜單界面輸入數(shù)字“2”,按下回車顯示“模擬信息輸出”界面,提醒進入當前模擬客戶信息輸出。進入輸出客戶信息的菜單按下回車。顯示輸出本次模擬的客戶信息的主菜單,提醒用戶根據(jù)選項進行操作。輸出本次模擬特殊窗口的客戶信息輸入數(shù)字“0”,按下回車按列表顯示特殊窗口的客戶編號、到達時間、離開時間,并提示“按Enter繼續(xù)”。輸出本次模擬1號一般窗口的客戶信息再次進入輸出客戶菜單,輸入數(shù)字“1”,按下回車按列表顯示1號一般窗口的客戶編號、到達時間、離開時間,并提示“按Enter繼續(xù)”。輸出本次模擬2號一般窗口的客戶信息再次進入輸出客戶菜單,輸入數(shù)字“2”,按下回車按列表顯示2號一般窗口的客戶編號、到達時間、離開時間,并提示“按Enter繼續(xù)”。輸出本次模擬3號一般窗口的客戶信息再次進入輸出客戶菜單,輸入數(shù)字“3”,按回車按列表顯示3號一般窗口的客戶編號、到達時間、離開時間,并提示“按Enter繼續(xù)”。輸出本次模擬4號一般窗口的客戶信息再次進入輸出客戶菜單,輸入數(shù)字“4”,按回車按列表顯示4號一般窗口的客戶編號、到達時間、離開時間,并提示“按Enter繼續(xù)”?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第51頁。輸出本次模擬的整天的客戶信息【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第51頁。再次進入輸出客戶菜單,輸入數(shù)字“5”,按下回車按列表顯示銀行一整天所有的客戶編號、到達時間、離開時間,并提示“按Enter繼續(xù)”。返回主菜單再次進入輸出客戶菜單,輸入數(shù)字“6”,按回車程序顯示主菜單輸入非法值在各菜單下輸入除選項數(shù)字以外的非法值。主菜單提示“您的輸入有誤!請重新輸入!”,并可以重新輸入。表5.2.2銀行業(yè)務模擬系統(tǒng)(MFC可視化界面)測試記錄操作名稱具體操作操作結果與輸出打開程序鼠標點擊編譯器運行按鈕顯示主對話框界面。界面上包含“計算”,“退出”兩個按鈕。銀行業(yè)務模擬鼠標點擊“計算”按鈕過一段時間(具體視隨機函數(shù)設置的sleep時間和客戶間隔時間值為情況),每一個框里面顯示本次模擬的基本信息。退出程序鼠標點擊“退出”按鈕退出程序測試結束5.3系統(tǒng)運行【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第52頁。以下是windows界面下和MFC可視化界面下的運行,可以對照:【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第52頁。界面主菜單截圖界面隨機模擬結果顯示截圖【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第53頁?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第53頁。可視化界面人數(shù)模擬結果顯示截圖【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第54頁。具體到達與離開模擬信息顯示截圖【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第54頁。6課題總結6.1課題評價 該課題與實際聯(lián)系緊密,通過對銀行在一天內(nèi)從開業(yè)到關門的一段時間中客戶到達與客戶離開的事件進行模擬,可以估算出每個銀行的工作窗口的業(yè)務量進行估算,并且同時得到銀行營業(yè)一天內(nèi),辦理特殊業(yè)務與一般業(yè)務的人數(shù)情況進行分析,從而為銀行的人員工作分配提供具有參考價值的數(shù)據(jù)。另外,本程序的基本思路是對離散事件的模擬,從對程序稍加修改,還可以對其他離散事件進行有效模擬,例如十字路口的車流量問題,電梯的上下過程中用戶的數(shù)量等等,進而使本課題不僅僅局限在對銀行的模擬。還有,本程序采用MFC可視化界面,加入對文件的操作使得程序應用起來方便靈活。6.2團隊協(xié)作在本次實驗的編寫過程中,首先組長本人出現(xiàn)了理解性的錯誤,后來在組員的提示和老師的幫助下得以解決。程序需要學習可視化的知識,并且本程序需要兩個非常重要的處理函數(shù),一個是處理事件到達函數(shù),一個是處理事件離開函數(shù)。這兩個函數(shù)是本程序的核心,實際過程中在這兩點上面出的問題也是最多的。所以在理解了要點之后,組長分配了相應的任務。兩個核心的函數(shù)由兩個隊員編寫,第三名成員負責對整個事件的模擬。最后我們討論界面的問題,界面的設計,在困難的時候通過討論解決了許多的問題。6.3下一步工作【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第55頁。 整理并保存此次實驗過程的問題記錄,保存程序設計的源代碼、工程文件等?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第55頁。繼續(xù)加深MFC的有關知識。繼續(xù)測試運行,不停的改變隨機函數(shù)暫停的時間值,以及改變客戶之間的時間間隔,然后統(tǒng)計信息,與以往的模擬記錄進行比較,或者作出曲線圖。通過數(shù)學知識,計算出最佳的暫停時間值和客戶間隔值。進一步將程序優(yōu)化。6.4個人設計心得(按組員分工)6.4.1侯永躍設計心得我覺得有兩點值得我去注意:要盡快理解題意。要真正理解動態(tài)規(guī)劃。在剛開始閱讀A類題目時,沒有很好地理解題意,總以為應該以時間作為入隊列的條件,然而始終無從下手。我一直認為必須要計算該窗口當前需要等待的時間,用來處理窗口的隊列的長度和出隊,入隊的事件,并以此選擇最佳的窗口。后來在詢問指導老師之后,我了解到對隊列的處理應當以實際人數(shù)作為判斷條件。解決了這個問題以后,開始編寫程序。在編寫隨機函數(shù)的時候,發(fā)現(xiàn)產(chǎn)生的時間有很多的重復的地方。最后改變了暫停的時間值,運行以后發(fā)現(xiàn),重復的變得少了。然后一步一步的測試,最后找到了一個相對比較合適的暫停時間值。6.4.2李博然設計心得【數(shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第56頁。本次課程設計我主要負責可視化的設計,以及編寫客戶到達事件。通過查資料,自學了一點MFC知識。學會了文件類cfile的一部分使用,學會了對話框的控件的設置,學會了自己在里面編寫類,類數(shù)據(jù)成員,類成員函數(shù),學會了子窗口創(chuàng)建以及和主窗口的連接,學會了一部分控件的使用,以及怎么在上面顯示信息,學會了怎么將文件的內(nèi)容顯示在編輯框里,學會了MFC里面字符與數(shù)字的轉(zhuǎn)換等等?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第56頁。最后,我終于將本程序的基本可視化界面實現(xiàn)了。雖然感覺確實很累,但是也感覺非常值得,因為我的自學為我打開了學習windows程序設計的大門。我已經(jīng)了解了windows的一部分知識了,了解了它的基本運作,這是非常值得的,非常重要的。感謝這次課程設計,它讓我看到了自己的不足,也讓我學到了很多的新的知識。6.4.3林浩成設計心得 作為一名轉(zhuǎn)專業(yè)的同學,我自身基礎比較薄弱。首先說在專業(yè)知識方面的收獲:通過本次編程,是我對c/c++等基礎編程語言有了更加深刻的理解。對于在原來學習過程中存在的知識盲區(qū)、漏洞等進行了很好地彌補。在知識方面的收獲太多了,不能一一列舉,就以此為例,例如,在程序分工中,我負責對整個離散事件進行模擬,這對于我來說是很難的。因為需要用到客戶到達和客戶離開事件的情況,可是我總是不知道如何把它們聯(lián)系起來,最后導致耗費了大量時間去調(diào)試,另外再本程序編寫過程中,要對鏈表,隊列不斷進行操作,反復用到指針,在這個過程中就涉及到如何運用全局變量與局部變量才能使程序編寫過程不易出錯且運用方便,使我對這塊知識有了更深的認識以及對指針在函數(shù)應用過程中得到充分的理解?!緮?shù)據(jù)結構】銀行業(yè)務模擬報告全文共62頁,當前為第57頁。還有,就是對團隊合作有了更深的認識。團隊合作不僅僅是對一個課題的分工執(zhí)行那么簡單,對于一個課題,每一部分內(nèi)容都是環(huán)環(huán)相扣緊密聯(lián)系的,不可能僅僅通過一個人就能完成,必須建立在其他團隊成員的工作的基礎之上。作為一個團隊,就應該互幫互助,及時不是自己分內(nèi)的事,作為一個團隊,也應該在必要的時候伸出援助之手。還

溫馨提示

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

評論

0/150

提交評論