版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 課程設(shè)計報告</b></p><p> 題 目:銀行財務(wù)實(shí)時處理系統(tǒng) </p><p> 姓 名: </p><p> 學(xué) 號: </
2、p><p> 同組姓名: </p><p> 專業(yè)班級: </p><p> 指導(dǎo)教師: </p><p><b> 目錄</b></p><p> 第一章 課程設(shè)計的目的2</p><
3、p> 第二章 課程設(shè)計題目問題描述和要求3</p><p> 2.1 題目的問題描述3</p><p> 2.2 題目的要求3</p><p> 第三章 系統(tǒng)分析與設(shè)計4</p><p> 3.1 系統(tǒng)的總體設(shè)計4</p><p> 3.2 系統(tǒng)的詳細(xì)設(shè)計5</p><
4、p> 3.3 源程序編制9</p><p> 第四章 系統(tǒng)運(yùn)行報告16</p><p><b> 第五章 總結(jié)18</b></p><p> 第六章 參考文獻(xiàn)19</p><p> 第一章 課程設(shè)計的目的</p><p> 數(shù)據(jù)結(jié)構(gòu)是計算機(jī)專業(yè)的必修、主干課程之一,它旨在
5、使我們學(xué)會分析研究數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),以及相應(yīng)的算法(操作),把現(xiàn)實(shí)世界中的問題轉(zhuǎn)化為計算機(jī)內(nèi)部的表示和處理,這是一個良好的程序設(shè)計技能訓(xùn)練的過程,本次課程設(shè)計是為更好幫助和指導(dǎo)我們更好地學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程。</p><p> 這次我們這組做的課程設(shè)計是簡單的銀行財務(wù)實(shí)時處理系統(tǒng),主要運(yùn)用二叉樹知識給銀行的賬戶的記錄號及分戶號數(shù)據(jù)整理、排序和查詢,限于我們
6、的能力,本系統(tǒng)功能比較單一而簡單,實(shí)踐證明,理解課程內(nèi)容與較好地解決實(shí)際問題之間存在明顯差距,而算法設(shè)計完成的質(zhì)量與基本的程序設(shè)計素質(zhì)的培養(yǎng)是密切相關(guān)的,通過這次設(shè)計,我們知道了自己的許多不足,我們會繼續(xù)努力的,今后數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)還要持續(xù)很長時間。</p><p> 從尋找題目到完成整個編程,從理論到實(shí)踐可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這
7、次課程設(shè)計使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在課程設(shè)計中也難免會遇到過各種各樣的問題,同時在設(shè)計的過程中也發(fā)現(xiàn)了自己的不足之處,對所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,我想這也是開設(shè)課程設(shè)計的目的——要我們在實(shí)踐中思考發(fā)現(xiàn)問題解決問題,收獲經(jīng)驗。</p><p&g
8、t; 在程序設(shè)計中,語句的語法和常量變量的定義都有嚴(yán)格的要求,有時輸錯一個標(biāo)點(diǎn)或打錯一個字母,編譯就不能通過,程序也無法正常運(yùn)行,在調(diào)試時要特別小心謹(jǐn)慎。這考驗了我們的耐心,培養(yǎng)嚴(yán)謹(jǐn)治學(xué)態(tài)度。</p><p> 總之,課程設(shè)計有效培養(yǎng)我們綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力,是對我們實(shí)際工作能力的具體訓(xùn)練和考察過程.</p><p> 第二章 課程設(shè)計題目問
9、題描述和要求</p><p> 2.1 題目的問題描述</p><p> 題目名稱:二叉樹的應(yīng)用——銀行財務(wù)實(shí)時處理系統(tǒng)</p><p> 題目內(nèi)容:銀行賬戶的賬號由科目表和分戶號組成。此系統(tǒng)要求把屬于一個科目的分戶表文件的記錄全部找出來,并按記錄中的分戶號從小到大的順序排列,以便于按順序逐戶處理信息并查找某一個分戶號的記錄??颇勘砦募總€記錄包括科目表及該科
10、目表分戶二叉樹根結(jié)點(diǎn)的指針。分戶表文件每個記錄的形式為記錄號、分戶號、左鏈和右鏈。</p><p><b> 2.2 題目的要求</b></p><p> 根據(jù)題意,本系統(tǒng)應(yīng)能夠?qū)崿F(xiàn)以下三個功能:</p><p> 構(gòu)造分戶二叉排序樹;</p><p> 中序遍歷分戶二叉排序樹;</p><p
11、> 查找某一分戶號記錄。</p><p> 第三章 系統(tǒng)分析與設(shè)計</p><p> 3.1 系統(tǒng)的總體設(shè)計</p><p> 如圖3.1,為銀行財務(wù)實(shí)時處理系統(tǒng)結(jié)構(gòu),它包括創(chuàng)建根結(jié)點(diǎn)、插入作為左孩子、插入作為右孩子、中序遍歷二叉排序樹和查詢結(jié)點(diǎn)共五個部分。</p><p> 圖3.1 銀行財務(wù)實(shí)時處理系統(tǒng)結(jié)構(gòu)圖</p&
12、gt;<p> 3.2 系統(tǒng)的詳細(xì)設(shè)計</p><p> 1. 如下圖3.2,為創(chuàng)建分戶表根結(jié)點(diǎn)的流程圖,該函數(shù)比較簡單,沒有什么復(fù)雜的循環(huán)語句,輕易地創(chuàng)建了二叉樹根結(jié)點(diǎn)。</p><p> 圖3.2 創(chuàng)建根結(jié)點(diǎn)流程圖</p><p> 2. 如下圖3.3,為分戶號插入排序二叉樹中作為左孩子的流程圖,包含了兩個if語句,其中第二個if語句是為保
13、證插入后還是排序二叉樹,由于插入作為右孩子的流程圖與此流程圖大同小異,在此便不再畫出了。</p><p> 圖3.3 插入作為左孩子流程圖</p><p> 3. 如下圖3.4,為中序遍歷二叉排序流程圖,該函數(shù)為典型的遞歸調(diào)用函數(shù),第二個和第三個if語句的后的inorder()為調(diào)用函數(shù)本身。</p><p> 圖3.4 中序遍歷二叉排序樹流程圖</p&
14、gt;<p> 4. 如下圖3.5,為根據(jù)分戶號查找結(jié)點(diǎn)的流程圖,用到了while里嵌套if,圖中“輸出找到的信息”中其實(shí)包含了好幾個if語句來區(qū)別輸出不同類信息(因為有可能結(jié)點(diǎn)無左右孩子的情況),限于紙張此處沒詳細(xì)畫出流程來,但不影響看整個函數(shù)。</p><p> 圖3.5 查找結(jié)點(diǎn)流程圖</p><p><b> 3.3 源程序編制</b>&l
15、t;/p><p> 如下所示,為所有源程序代碼,本系統(tǒng)要實(shí)現(xiàn)的簡單功能函數(shù)都詳細(xì)列于此了,一目了然。</p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #define null 0</p><p> int
16、couter=0;</p><p> typedef struct btreenode /*定義每個分戶節(jié)點(diǎn)的結(jié)構(gòu)*/</p><p><b> {</b></p><p> int recorder; /*記錄號*/</p><p> int number; /*分戶號*/</p>
17、<p> struct btreenode *lchild; /*左鏈*/</p><p> struct btreenode *rchild; /*右鏈*/</p><p><b> } bnode;</b></p><p> bnode * creat (int recorder,int number) /*創(chuàng)建
18、根結(jié)點(diǎn)*/</p><p><b> {</b></p><p><b> bnode *p;</b></p><p> p=(bnode*)malloc(sizeof(bnode));</p><p> p->recorder=recorder;</p><p&g
19、t; p->number=number;</p><p> p->lchild=null;</p><p> p->rchild=null;</p><p> return(p);</p><p><b> }</b></p><p> bnode * ins_lch
20、ild (bnode *p,int recorder,int number) /*插入作為左孩子*/</p><p><b> {</b></p><p><b> bnode *q;</b></p><p> if(p==null)</p><p> printf("非法插入!
21、");</p><p><b> else</b></p><p><b> {</b></p><p> q=(bnode *)malloc(sizeof(bnode));</p><p> q->recorder=recorder;</p><p>
22、; q->number=number;</p><p> q->lchild=null;</p><p> q->rchild=null;</p><p> if(p->lchild!=null)</p><p> q->rchild=p->lchild;</p><p>
23、 p->lchild=q;</p><p><b> }</b></p><p><b> return q;</b></p><p><b> }</b></p><p> bnode *ins_rchild(bnode *p,int recorder,int
24、 number) /*插入作為右孩子*/</p><p><b> {</b></p><p><b> bnode *q;</b></p><p> if(p==null)</p><p> printf("非法插入!");</p><p>&l
25、t;b> else</b></p><p><b> {</b></p><p> q=(bnode*)malloc(sizeof(bnode));</p><p> q->recorder=recorder;</p><p> q->number=number;</p>
26、;<p> q->lchild=null;</p><p> q->rchild=null;</p><p> if(p->rchild!=null)</p><p> q->lchild=p->rchild;p->rchild=q;</p><p><b> }</
27、b></p><p><b> return q;</b></p><p><b> }</b></p><p> int inorder(bnode *p) /*中序遍歷二叉排序樹*/</p><p><b> {</b></p><p&g
28、t; if(p==null)</p><p><b> return 0;</b></p><p> if(p->lchild!=null)</p><p> inorder(p->lchild);</p><p> printf("%d ",p->number);<
29、/p><p> if(p->rchild!=null)</p><p> inorder(p->rchild);</p><p><b> return 0;</b></p><p><b> }</b></p><p> search(bnode *p ,
30、int number) /*查找結(jié)點(diǎn)*/</p><p><b> {</b></p><p> while(p!=null)</p><p><b> {</b></p><p> if(p->number==number)</p><p><b>
31、; {</b></p><p> if(p->rchild!=null&&p->lchild!=null)</p><p><b> {</b></p><p> printf("記錄號\t分戶號\t左孩子\t右孩子\n");</p><p> pri
32、ntf("%d\t%d\t%d\t%d",p->recorder,p->number,</p><p> p->lchild->number,p->rchild->number);</p><p><b> }</b></p><p> if(p-> rchild==null&
33、amp;&p->lchild!=null)</p><p><b> {</b></p><p> printf("記錄號\t分戶號\t左孩子\n");</p><p> printf("%d\t%d\t%d",p->recorder,p->number,</p>
34、;<p> p->lchild->number);</p><p><b> }</b></p><p> if(p-> lchild==null&&p->rchild!=null)</p><p><b> {</b></p><p>
35、 printf("記錄號\t分戶號\t右孩子\n");</p><p> printf("%d\t%d\t%d",p->recorder,p->number,</p><p> p->rchild->number);</p><p><b> }</b></p>
36、<p> if(p->lchild==null&&p->rchild==null)</p><p><b> {</b></p><p> printf("記錄號\t分戶號\n");</p><p> printf("%d\t%d",p->recor
37、der,p->number);</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> if(number>p->number)</p><
38、p> p=p->rchild;</p><p><b> else</b></p><p> p=p->lchild;</p><p><b> }</b></p><p><b> return 0;</b></p><p>
39、;<b> }</b></p><p> int server()</p><p><b> {</b></p><p> system("cls");</p><p> printf("\n\n\n");</p><p>
40、 printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p> printf("\t\t※ ※\n");</p><p> printf("\t\t※ 銀行財務(wù)實(shí)時處理系統(tǒng)
41、 ※\n");</p><p> printf("\t\t※ ※\n");</p><p> printf("\t\t※ 操作步驟: ※\n");</p><p&
42、gt; printf("\t\t※ 1.建立分戶號二叉排序樹 ※\n");</p><p> printf("\t\t※ 2.中序遍歷分戶號二叉排序 ※\n");</p><p> printf("\t\t※ 3.查找分戶號
43、 ※\n");</p><p> printf("\t\t※ 4.退出系統(tǒng) ※\n");</p><p> printf("\t\t※ ※\n");</p&g
44、t;<p> printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p><b> return 0;</b></p><p><b> }</b></p><p> int main()</p><p><b&
45、gt; {</b></p><p> bnode *bt, *p,*q;</p><p> int recorder,number,a,c; </p><p><b> server();</b></p><p> printf("步驟1:請輸入記錄號,分戶號,記住以輸入-1 -1結(jié)束:\
46、n");</p><p> scanf("%d",&recorder);</p><p> scanf("%d",&number);</p><p> p=creat(recorder,number);</p><p><b> bt=p;</b>
47、</p><p> scanf("%d",&recorder);</p><p> scanf("%d",&number);</p><p> while(number!=-1&&recorder!=-1)</p><p><b> {</b>
48、;</p><p><b> p=bt;</b></p><p><b> q=p;</b></p><p> while(number!=p->number&&q!=null)</p><p><b> {</b></p><
49、p><b> p=q;</b></p><p> if(number<p->number)</p><p> q=p->lchild;</p><p><b> else</b></p><p> q=p->rchild;</p><p&g
50、t;<b> }</b></p><p> if(number==p->number)</p><p><b> {</b></p><p> printf("The data is exit.");</p><p><b> return 0;<
51、/b></p><p><b> }</b></p><p><b> else </b></p><p> if(number<p->number)</p><p> ins_lchild(p,recorder,number);</p><p>&
52、lt;b> else</b></p><p> ins_rchild(p,recorder,number);</p><p> scanf("%d",&recorder);</p><p> scanf("%d",&number);</p><p><b&
53、gt; }</b></p><p> printf("\n分戶號二叉排序樹建立成功!\n");</p><p><b> p=bt;</b></p><p> printf("\n步驟2:中序遍歷二叉排序樹(分戶號)結(jié)果:");</p><p> inorde
54、r(p);</p><p> printf("\n步驟3:請輸入要查找的分戶號:");</p><p> scanf("%d",&number);</p><p> search(p,number);</p><p> printf("\n繼續(xù)查找請輸入0:");&l
55、t;/p><p> scanf("%d",&c);</p><p><b> a=c;</b></p><p><b> while(!a)</b></p><p><b> {</b></p><p> printf(
56、"\n請輸入要查找的分戶號:");</p><p> scanf("%d",&number);</p><p> search(p,number);</p><p> printf("\n繼續(xù)查找請輸入0:");</p><p> scanf("%d&quo
57、t;,&c);</p><p><b> a=c;</b></p><p><b> }</b></p><p> printf("\n步驟4:退出\n");</p><p><b> exit(-1);</b></p><
58、;p><b> return 0;</b></p><p><b> }</b></p><p> 第四章 系統(tǒng)運(yùn)行報告</p><p> 4.1 如下圖4.1所示,為該系統(tǒng)界面(即server())的運(yùn)行截圖,由圖可知是本系統(tǒng)操作過程的說明。</p><p> 圖4.1 系統(tǒng)界面運(yùn)
59、行圖</p><p> 4.2 如下圖4.2所示,為該銀行系統(tǒng)分戶號二叉排序樹建立的運(yùn)行截圖,由圖可見,二叉樹成功建立。</p><p> 圖4.2 建立分戶號二叉排序樹運(yùn)行截圖</p><p> 4.3 如下圖4.3所示,為中序遍歷二叉排序樹、查找及退出運(yùn)行截圖,由圖可見中序遍歷結(jié)果得到銀行賬號分戶號的升序,達(dá)到本系統(tǒng)要求;查找中,輸出有好幾種情況,在圖中一
60、一清晰可見;退出較簡單,就不做解釋了。</p><p> 圖4.3 中序遍歷、查找及退出運(yùn)行截圖</p><p><b> 第五章 總結(jié)</b></p><p> 在本次數(shù)據(jù)結(jié)構(gòu)設(shè)計中,又收獲不少。自己對課本知識上的小的知識點(diǎn)把握不夠,在這次課程設(shè)計中很多錯誤都是一些小問題,只要寫程序的時候注意點(diǎn)就可以避免,以后寫程序時一定會注意。遇到了
61、困難,首先自己找,實(shí)在不能解決的話就請教老師和同學(xué)。其實(shí)很多問題都是我們自己可以解決的,只要我們用心去找,同時相信自己能解決問題。</p><p> 剛開始的時候,對做什么題目很是頭痛,在網(wǎng)上搜了很多題目,簡單的又覺得太容易,難的又不會做,找了很久后來終于在圖書館找資料書中意于這個銀行財務(wù)實(shí)時處理系統(tǒng)了,這才確定了我們的課程設(shè)計題目。其實(shí)這個系統(tǒng)還稱不上是系統(tǒng),因為功能簡單,只是二叉樹的簡單應(yīng)用,較為單一。但因
62、為要找難度適宜的有些困難,再簡單的也要回靈活運(yùn)用才是,所以最終還是決定了這個題目。后來調(diào)試程序時,發(fā)現(xiàn)越是容易越容易大意,剛開始程序不能運(yùn)行,一直找不到原因,后面耐心又細(xì)心地慢慢查看才發(fā)現(xiàn)是小問題作祟,編程細(xì)心很重要啊。</p><p> 本次課程設(shè)計中發(fā)現(xiàn),數(shù)據(jù)結(jié)構(gòu)真的很重要,熟話說編程等于算法加操作,數(shù)據(jù)結(jié)構(gòu)作為計算機(jī)程序設(shè)計的重要理論技術(shù)基礎(chǔ),它不僅是計算機(jī)科學(xué)的核心課程,我們定要重視,好好學(xué)好它。<
63、;/p><p> 通過這次課程設(shè)計使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故才行。</p>&l
64、t;p> 這次課程設(shè)計終于順利完成了,過程不是那么順利愉快,也碰到不少困難,但一切解決后,收獲不少,感到非常高興。人生的道路是曲折的,但正是因為曲折人生才光彩奪目,在人生的路上,總遇到重重困難,但正是因為困難我們才變的更堅強(qiáng)。</p><p><b> 第六章 參考文獻(xiàn)</b></p><p> [1] 嚴(yán)蔚敏 吳偉民 編著 《數(shù)據(jù)結(jié)構(gòu)》 清華大學(xué)出版社&
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---銀行模擬系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(銀行模擬系統(tǒng))
- 紅外圖像實(shí)時處理系統(tǒng)設(shè)計.pdf
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---銀行賬戶管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_銀行賬戶管理系統(tǒng)
- jtext偏振干涉儀數(shù)據(jù)采集與實(shí)時處理系統(tǒng)設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---數(shù)據(jù)結(jié)構(gòu)相關(guān)算法的演示系統(tǒng)
- c語言課程設(shè)計--銀行數(shù)據(jù)處理系統(tǒng)
評論
0/150
提交評論