2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  數(shù)據(jù)結(jié)構(gòu)實驗課程設(shè)計報告</p><p>  題 目: 漢諾威塔 </p><p>  學(xué)生姓名: </p><p>  學(xué) 號: </p><p>  專業(yè)班級: &

2、lt;/p><p>  同組姓名: </p><p>  指導(dǎo)教師: </p><p>  設(shè)計時間: 大二上學(xué)期十七周 </p><p><b>  目錄</b></p><p>  一. 設(shè)計目的與要求……………

3、…………………………………… 02</p><p>  1.1設(shè)計目的……………………………………………… 02</p><p>  1.2設(shè)計要求……………………………………………… 02</p><p>  二. 設(shè)計分析………………………………………………………… 02</p><p>  2.1漢諾威塔問題…………………………

4、……………… 02</p><p>  2.2算法分析……………………………………………… 03</p><p>  2.3流程圖………………………………………………… 06</p><p>  2.4模塊及其功能介紹…………………………………… 07</p><p>  三. 設(shè)計實現(xiàn)…………………………………………………………

5、08</p><p>  四. 心得體會………………………………………………………… 09</p><p>  五. 參考文獻(xiàn)………………………………………………………… 10</p><p><b>  1.設(shè)計目的與要求</b></p><p><b>  1.1設(shè)計目的</b></p

6、><p>  隨著計算機(jī)技術(shù)以及外圍設(shè)備的發(fā)展,計算機(jī)在輔助設(shè)計制造,計算機(jī)教育,計算機(jī)信息化應(yīng)用中,圖形的作用和魅力愈加顯現(xiàn)。</p><p>  如何運用計算機(jī)技術(shù)、運用算法編程來優(yōu)化解決低階漢諾威塔問題對我們學(xué)生來說具有可實現(xiàn)和可操作性。本次課程設(shè)計的目的就是利用所學(xué)習(xí)到得算法知識和編程語言知識來解決、實現(xiàn)低階漢諾威塔問題。</p><p><b>  

7、1.2設(shè)計要求</b></p><p>  功能:編程序顯示n(n<=9)層漢諾威塔的調(diào)整過程。</p><p><b>  分步實施:</b></p><p>  1.初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);</p><p>  2.完成最低要求:實現(xiàn)5層漢諾威塔的調(diào)整過程;&l

8、t;/p><p>  3.進(jìn)一步要求:直至實現(xiàn)n=9時的情況。有興趣的同學(xué)可以自己擴(kuò)充系統(tǒng)功能。</p><p>  要求:1)界面友好,函數(shù)功能要劃分好</p><p>  2)總體設(shè)計應(yīng)畫一流程圖</p><p>  3)程序要加必要的注釋</p><p>  4)要提供程序測試方案</p><p&

9、gt;  5)程序一定要經(jīng)得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。</p><p><b>  2.設(shè)計分析</b></p><p><b>  2.1漢諾威塔問題</b></p><p>  n階漢諾威塔問題:有三個柱子A, B, C。A柱子上疊放有n個盤子,每個盤子都比它下面的盤子要小一點

10、,可以從上到下用1, 2, ..., n編號。要求借助柱子C,把柱子A上的所有的盤子移動到柱子B上。移動條件為:</p><p>  1、一次只能移一個盤子;</p><p>  2、移動過程中大盤子不能放在小盤子上,只能小盤子放在大盤子上</p><p>  如3階漢諾塔的移動:A→C,A→B,C→B,A→C,B→A,B→C,A→C</p><

11、p><b>  2.2算法分析</b></p><p>  為滿足題目中盤子的移動問題,必須遵循的條件是:一次僅能移動一個盤,且不允許大盤放在小盤的上面。</p><p>  設(shè)A上有n個盤子。 </p><p>  當(dāng)n=1時,則將圓盤從A直接移動到C。 </p><p>  當(dāng)n>=2時,移動的過程可分解

12、為三個步驟: </p><p>  1) 把A上的n-1個圓盤移到B上; </p><p>  2) 把A上的一個圓盤移到C上; </p><p>  3) 把B上的n-1個圓盤移到C上;其中第一步和第三步是相同的。 </p><p>  為了更清楚地描述算法,用圖示法描述如下:</p><p>  要將N個盤子從A桿

13、上借助C桿移動到B桿上。這樣移動N個盤子的工作就可以按照以下過程進(jìn)行:</p><p><b>  第一次調(diào)用遞歸 </b></p><p> ?、趯⒁粋€盤子從A移動到B上;</p><p><b> ?、鄣诙握{(diào)用遞歸</b></p><p>  重復(fù)以上過程,直到將全部的盤子移動到位時為止。&l

14、t;/p><p>  由遞歸算法我們可以得到遞推關(guān)系:</p><p>  移動n個圓盤需要步,如:移動4個圓盤需要15步,移動64個圓盤需要264-1</p><p><b>  示意圖:</b></p><p>  當(dāng)N=3時的遞歸調(diào)用樹狀圖,可以使我們更清楚的了解遞歸的調(diào)用過程。</p><p>

15、;<b>  2.3流程圖</b></p><p>  實現(xiàn)遞歸的部分如下:</p><p>  2.4模塊及其功能介紹</p><p>  首先定義隊列的結(jié)構(gòu)體和的函數(shù),void Init(Queue &que);void Clear(Queue &que);bool Empty(Queue que);void Pop(Que

16、ue &que);Node *Front(Queue &que);void Push(Queue &que,Node e);然后定義隊列變量que,用來存放移動時開始和終止的盤子,并且記下相應(yīng)的步驟,;調(diào)用遞歸函數(shù),當(dāng)遞歸函數(shù)運行結(jié)束之后,就輸出隊列中所有的步驟。</p><p><b>  3. 設(shè)計實現(xiàn)</b></p><p>  3.1系

17、統(tǒng)運行界面:當(dāng)n=5時,</p><p>  當(dāng)n=9時,結(jié)果如下:</p><p><b>  4. 心得體會</b></p><p>  程序的算法設(shè)計與分析,是我在本階段學(xué)完理論課程之后對自己該方面的能力的一次很好的檢驗,從開始的算法思路到運行調(diào)試后的運行結(jié)果以及另人興奮的可用程序,都是一個很好的學(xué)習(xí)和鍛煉的過程。</p>

18、<p>  通過這次課程設(shè)計,讓我對數(shù)據(jù)結(jié)構(gòu)有了新一層的了解,讓我明白各種函數(shù)以及類的應(yīng)用,明白了算法對程序的重要性。通過這次課程設(shè)計,使我認(rèn)識到,僅僅是學(xué)會書面知識是不行的,一方面,對程序設(shè)計語言本身的理解不夠透徹,另一方面,由于對數(shù)據(jù)結(jié)構(gòu)及常用算法的理解上的欠缺,再加上我自己在這方面的練習(xí)相當(dāng)少,這些都不同程度地添加了我完成這個題目的困難度。</p><p>  要做算法的設(shè)計首先是對程序設(shè)計語言的

19、相當(dāng)?shù)氖煜?,而且能夠?qū)嶋H熟練地運用,要能夠把自己的想法,轉(zhuǎn)換為由程序設(shè)計語言來表達(dá)。這就要求自己不僅僅要會解決實際問題,而且要有能夠?qū)嶋H問題抽象化,數(shù)學(xué)建模,以及能用計算機(jī)程序設(shè)計語言來表達(dá)實現(xiàn)。這對我們的程序設(shè)計水平和對程序語言代碼的敏感度以及專業(yè)修養(yǎng)是一個很好的挑戰(zhàn)。</p><p>  算法設(shè)計的要求也不僅僅是程序設(shè)計語言,前面講到了由實際具體問題抽象建模,由于計算機(jī)內(nèi)部是由二進(jìn)制來表示和存儲數(shù)據(jù),程序設(shè)

20、計語言實現(xiàn)了計算機(jī)內(nèi)部表示和程序員和計算機(jī)交流的語言斷層,而程序設(shè)計語言和自然語言之間又有一個斷層,這個斷層就需要靠程序員的集體或個人腦力勞動來彌補(bǔ)。軟件總體質(zhì)量的好壞除了對軟件工程的設(shè)計者相關(guān),程序設(shè)計者的水平至關(guān)重要。從自然語言到計算機(jī)能夠讀懂的程序設(shè)計語言,是對程序設(shè)計能力的考驗。</p><p>  經(jīng)過反復(fù)的測試比較,還能找出這個設(shè)計的很多不足甚至于錯誤,也就是說,我現(xiàn)在所做的設(shè)計并不是那么盡善盡美的。

21、最后,感謝指導(dǎo)老師悉心指導(dǎo),感謝同學(xué)們無私的幫助。</p><p><b>  5. 參考文獻(xiàn)</b></p><p>  [1] 嚴(yán)蔚敏 吳偉民 . 數(shù)據(jù)結(jié)構(gòu)(C語言版): 清華大學(xué)出版社 ,2007.</p><p>  [2] 譚浩強(qiáng)等著. C語言程序設(shè)計 : 清華大學(xué)出版社 2008</p><p>  [3]

溫馨提示

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

評論

0/150

提交評論