版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《漢諾塔》</b></p><p><b> 課程設(shè)計(jì)說(shuō)明書</b></p><p> 學(xué)生姓名 </p><p> 學(xué) 號(hào) </p><p> 所屬學(xué)院 信息工程學(xué)院 <
2、;/p><p> 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 級(jí) </p><p> 指導(dǎo)教師 </p><p> 教師職稱 講師 </p><p><b> 目錄</b><
3、/p><p><b> 前言1</b></p><p> 1. 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介1</p><p> 2. 應(yīng)用技術(shù)領(lǐng)域及范圍1</p><p> 3.設(shè)計(jì)的原理、方法和主要內(nèi)容1</p><p><b> 正文2</b></p><p>
4、<b> 1. 設(shè)計(jì)目的2</b></p><p><b> 2. 設(shè)計(jì)要求2</b></p><p><b> 3.需求分析2</b></p><p> 3.1 漢諾塔的由來(lái):2</p><p> 3.2漢諾塔與宇宙壽命:3</p><
5、p> 4. 問(wèn)題分析:4</p><p><b> 5. 概要設(shè)計(jì)5</b></p><p><b> 5.1設(shè)計(jì)思想5</b></p><p> 5.2 實(shí)現(xiàn)方法5</p><p> 5.3 主要模塊5</p><p> 5.4 模塊關(guān)系5&l
6、t;/p><p><b> 6. 詳細(xì)設(shè)計(jì)5</b></p><p> 6.1 功能設(shè)計(jì)5</p><p> 6.2 算法分析6</p><p> 6.3 編寫程序如下:6</p><p> 6.4 程序執(zhí)行過(guò)程分析:7</p><p> 7. 調(diào)試分析:
7、7</p><p><b> 8.小結(jié)10</b></p><p><b> 致謝11</b></p><p><b> 參考文獻(xiàn)11</b></p><p><b> 前言</b></p><p><b>
8、; 1. 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介</b></p><p> 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)程序設(shè)計(jì)的重要理論設(shè)計(jì)基礎(chǔ),它不僅是計(jì)算機(jī)學(xué)科的核心課程,而且成為其他理工專業(yè)的熱門選修課。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來(lái)更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。在計(jì)算機(jī)科學(xué)中,數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象
9、(數(shù)據(jù)元素)以及它們之間的關(guān)系和運(yùn)算等的學(xué)科,而且確保經(jīng)過(guò)這些運(yùn)算后所得到的新結(jié)構(gòu)仍然是原來(lái)的結(jié)構(gòu)類型。“數(shù)據(jù)結(jié)構(gòu)”在計(jì)算機(jī)科學(xué)中是一門綜合性的專業(yè)基礎(chǔ)課。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件三者之間的一門核心課程。數(shù)據(jù)結(jié)構(gòu)這一門課的內(nèi)容不僅是一般程序設(shè)計(jì)(特別是非數(shù)值性程序設(shè)計(jì))的基礎(chǔ),而且是設(shè)計(jì)和實(shí)現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)及其他系統(tǒng)程序的重要基礎(chǔ)。</p><p> 2. 應(yīng)用技術(shù)領(lǐng)域及范圍&
10、lt;/p><p> 漢諾塔的應(yīng)用技術(shù)是來(lái)自于我們所學(xué)的數(shù)據(jù)知識(shí)和數(shù)學(xué)方面的學(xué)科,其中用到了數(shù)學(xué)遞歸,函數(shù)和數(shù)據(jù)的函數(shù)以及C語(yǔ)言等方面的知識(shí)。</p><p> 漢諾塔的領(lǐng)域是在我的日常生活中的每一個(gè)細(xì)節(jié)中,反復(fù)的運(yùn)用是我的數(shù)學(xué)知識(shí)在生活的體現(xiàn),如做歸一問(wèn)題,循環(huán)問(wèn)題,倒排問(wèn)題,邏輯思維的相關(guān)問(wèn)題等都要運(yùn)用到我悶得漢諾塔原理。</p><p> 漢諾塔的范圍來(lái)自每
11、一個(gè)知識(shí)的指導(dǎo),和生活中的運(yùn)用。在我們的世界不是一成不變的,而是時(shí)時(shí)刻刻都在發(fā)生著變化,但一切的變化都沒(méi)有脫離我們這個(gè)世界的規(guī)則。</p><p> 3.設(shè)計(jì)的原理、方法和主要內(nèi)容 </p><p> 漢諾塔的設(shè)計(jì)原理是我們所學(xué)的數(shù)據(jù)結(jié)構(gòu)與遞歸原理的應(yīng)用,并且是在數(shù)據(jù)老師的指導(dǎo)下編寫的源程序。得到了自己所設(shè)計(jì)的結(jié)果。漢諾塔的方法是把n個(gè)盤子從柱子1移到柱子3(利用柱子2),第一步,把n
12、-1個(gè)盤子從柱子1移到柱子2(利用柱子3),第二步,把柱子1剩下的最大的盤子移到柱子3,第三步,把n-1個(gè)盤子從柱子2移到柱子3(利用柱子1)。每一個(gè)的移動(dòng)都是所有的東西動(dòng),一個(gè)動(dòng)就會(huì)把所有的邏輯打亂并且得不到所要測(cè)得結(jié)果。偏離我這此所設(shè)計(jì)的初終。漢諾塔的主要內(nèi)容是經(jīng)過(guò)不斷地移動(dòng)來(lái)挪去所有的盤子到指定的位置,遞歸原理的應(yīng)用來(lái)解釋了我所用的數(shù)據(jù)的知識(shí)。一個(gè)一個(gè)的去組織去協(xié)調(diào),所有的設(shè)計(jì)不斷地在循環(huán)到達(dá)一定的次數(shù)的到我這次所設(shè)計(jì)結(jié)果。<
13、;/p><p><b> 正文</b></p><p><b> 1. 設(shè)計(jì)目的</b></p><p> 課程設(shè)計(jì)是《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)必不可缺的一個(gè)重要環(huán)節(jié),它可加深學(xué)生對(duì)該課程所學(xué)內(nèi)容的進(jìn)一步的理解與鞏固,是將計(jì)算機(jī)課程與實(shí)際問(wèn)題相聯(lián)接的關(guān)鍵步驟。通過(guò)課程設(shè)計(jì),能夠提高學(xué)生分析問(wèn)題、解決問(wèn)題,從而運(yùn)用所學(xué)知識(shí)解決實(shí)
14、際問(wèn)題的能力,因而必須給予足夠的重視。</p><p><b> 2. 設(shè)計(jì)要求</b></p><p> 1.明確課設(shè)任務(wù),復(fù)習(xí)與查閱有關(guān)資料。</p><p> 2.按要求完成課設(shè)內(nèi)容,課設(shè)報(bào)告要求文字和圖工整、思路清楚、正確。</p><p> 3.一至四名同學(xué)分為一組,完成一個(gè)應(yīng)用問(wèn)題的程序的編寫工作。&
15、lt;/p><p> 4.應(yīng)用程序應(yīng)具有一定的可用性:</p><p> ?。?)凡等候用戶輸入時(shí),給出足夠的提示信息,如“Please Select(1—3):”提示用戶選擇。</p><p> ?。?)格式明顯易懂,配上適當(dāng)?shù)念伾⒙曇舻容o助效果,能方便地改正輸入時(shí)的錯(cuò)誤,使用戶感到方便、好用。</p><p> ?。?)有聯(lián)機(jī)求助功能。用
16、戶能直接從系統(tǒng)得到必要的提示,不查手冊(cè)也能解決一些疑難。</p><p> 5.程序具有一定的健壯性,不會(huì)因?yàn)橛脩舻妮斎脲e(cuò)誤引起程序運(yùn)行錯(cuò)誤而中斷執(zhí)行:</p><p> ?。?)對(duì)輸入值的類型、大小范圍、字符串的長(zhǎng)度等,進(jìn)行正確性檢查,對(duì)不合法的輸入值給出出錯(cuò)信息,指出錯(cuò)誤類型,等待重新輸入。</p><p> ?。?)當(dāng)可能的回答有多種時(shí),應(yīng)允許輸入任何一種回
17、答。</p><p> (3)對(duì)刪除數(shù)據(jù)應(yīng)給出警告。</p><p><b> 3.需求分析</b></p><p> 3.1 漢諾塔的由來(lái):</p><p> 漢諾塔是源自印度神話里的玩具。如下圖:</p><p> 在印度,有這么一個(gè)古老的傳說(shuō):在世界中心貝拿勒斯(在印度北部)的圣廟
18、里,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創(chuàng)造世界的時(shí)候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有一個(gè)僧侶在按照下面的法則移動(dòng)這些金片:一次只移動(dòng)一片,不管在哪根針上,小片必須在大片上面。僧侶們預(yù)言,當(dāng)所有的金片都從梵天穿好的那根針上移到另外一根針上時(shí),世界就將在一聲霹靂中消滅,而梵塔、廟宇和眾生也都將同歸于盡。</p><p> 上帝創(chuàng)造世界的時(shí)候做了
19、三根金剛石柱子,在一根柱子上從下往上安大小順序摞著64片黃金圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動(dòng)一個(gè)圓盤。</p><p> 有預(yù)言說(shuō),這件事完成時(shí)宇宙會(huì)在一瞬間閃電式毀滅。也有人相信婆羅門至今還在一刻不停地搬動(dòng)著圓盤。</p><p> 3.2漢諾塔與宇宙壽命:</p><
20、;p> 如果移動(dòng)一個(gè)圓盤需要1秒鐘的話,等到64個(gè)圓盤全部重新落在一起,宇宙被毀滅是什么時(shí)候呢?</p><p> 讓我們來(lái)考慮一下64個(gè)圓盤重新摞好需要移動(dòng)多少次吧。1個(gè)的時(shí)候當(dāng)然是1次,2個(gè)的時(shí)候是3次,3個(gè)的時(shí)候就用了7次......這實(shí)在是太累了</p><p> 因此讓我們邏輯性的思考一下吧。</p><p> 4個(gè)的時(shí)候能夠移動(dòng)最大的4盤時(shí)
21、如圖所示。</p><p><b> 到此為止用了7次。</b></p><p> 接下來(lái)如下圖時(shí)用1次,在上面再放上3個(gè)圓盤時(shí)還要用7次(把3個(gè)圓盤重新放在一起需要的次數(shù))。</p><p><b> 因此,4個(gè)的時(shí)候是</b></p><p> “3個(gè)圓盤重新摞在一起的次數(shù)”+1次+“3
22、個(gè)圓盤重新摞在一起需要的次數(shù)”</p><p> =2x“3個(gè)圓盤重新摞在一起的次數(shù)”+1次</p><p><b> =15次。</b></p><p><b> 那么,n個(gè)的時(shí)候是</b></p><p> 2x“(n-1)個(gè)圓盤重新摞在一起的次數(shù)”+1次。</p><
23、;p> 由于1 個(gè)的時(shí)候是1次,結(jié)果n個(gè)的時(shí)候?yàn)椋?的n次方減1)次。</p><p> 1個(gè)圓盤的時(shí)候 2的1次方減1</p><p> 2個(gè)圓盤的時(shí)候 2的2次方減1 </p><p> 3個(gè)圓盤的時(shí)候 2的3次方減1</p><p> 4個(gè)圓盤的時(shí)候 2的4次方減1 </p><p> 5個(gè)圓盤
24、的時(shí)候 2的5次方減1 </p><p><b> ........</b></p><p> n個(gè)圓盤的時(shí)候 2的n次方減1</p><p> 假設(shè)有n片,移動(dòng)次數(shù)是f(n).顯然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。此后不難證明f(n)=2^n-1。n=64時(shí), f(64)= 2^64-1=1
25、8446744073709551615 假如每秒鐘一次,共需多長(zhǎng)時(shí)間呢?一個(gè)平年365天有 31536000 秒,閏年366天有31622400</p><p> 秒,平均每年31556952秒,計(jì)算一下, </p><p> 18446744073709551615/31556952=584554049253.855年,這表明移完這些金片需要5845億年以上,而地球存在至今不過(guò)
26、45億年,太陽(yáng)系的預(yù)期壽命據(jù)說(shuō)也就是數(shù)百億年。真的過(guò)了5845億年,不說(shuō)太陽(yáng)系和銀河系,至少地球上的一切生命,連同梵塔、廟宇等,都早已經(jīng)灰飛煙滅。</p><p> 也就是說(shuō),n=64的時(shí)候是(2的64次方減1)次。因此,如果移動(dòng)一個(gè)圓盤需要1秒的話,宇宙的壽命=2的64次方減1(秒)用一年=60秒x60分x24小時(shí)x365天來(lái)算的話,大約有5800億年吧。據(jù)說(shuō),現(xiàn)在的宇宙年齡大約是150億年,還差得遠(yuǎn)呢。&l
27、t;/p><p> 言而總之,漢諾塔問(wèn)題在數(shù)學(xué)界有很高的研究?jī)r(jià)值,而且至今還在被一些數(shù)學(xué)家們所研究也是我們所喜歡玩的一種益智游戲,它可以幫助開發(fā)智力,激發(fā)我們的思維。對(duì)漢諾塔還可以有進(jìn)一步的研究。</p><p><b> 4. 問(wèn)題分析:</b></p><p> 對(duì)于這樣一個(gè)問(wèn)題,任何人都不可能直接寫出移動(dòng)盤子的每一步,但我們可以利用下面
28、的方法來(lái)解決:設(shè)移動(dòng)盤子數(shù)為n,為了將這n個(gè)盤子從A桿移動(dòng)到C桿,可以做以下三步:</p><p> ?。?)以C盤為中介,從A桿將1至n-1號(hào)盤移至B桿;</p><p> (2)將A桿中剩下的第n號(hào)盤移至C桿;</p><p> (3)以A桿為中介,從B桿將1至n-1號(hào)盤移至C桿;</p><p> 這樣,問(wèn)題解決了,但實(shí)際操作中,
29、只有第二步可直接完成,而第一、三步又成為移動(dòng)的新問(wèn)題。以上操作的實(shí)質(zhì)是把移動(dòng)n個(gè)盤子的問(wèn)題轉(zhuǎn)化為移動(dòng)n-1個(gè)盤。那一、三步如何解決?事實(shí)上,上述方法:設(shè)盤子數(shù)為n,n可為任意數(shù),該法同樣適用于移動(dòng)n-1個(gè)盤。因此,依據(jù)上法,可解決n-1個(gè)盤子從A桿移到B桿(第一步)或從B桿移到C桿(第三步)問(wèn)題?,F(xiàn)在,問(wèn)題由移動(dòng)n個(gè)盤子的操作轉(zhuǎn)化為移動(dòng)n-2個(gè)盤子的操作。依據(jù)該原理,層層遞推,即可將原問(wèn)題轉(zhuǎn)化為解決移動(dòng)n-2、n-3……3、2直到移動(dòng)1
30、個(gè)盤的操作,而移動(dòng)一個(gè)盤的操作是可以直接完成的。至此,我們的任務(wù)算作是真正完成了。而這種由繁化簡(jiǎn),用簡(jiǎn)單的問(wèn)題和已知的操作運(yùn)算來(lái)解決復(fù)雜問(wèn)題的方法,就是遞歸法。在計(jì)算機(jī)設(shè)計(jì)語(yǔ)言中,用遞歸法編寫的程序就是遞歸程序。</p><p><b> 5. 概要設(shè)計(jì)</b></p><p><b> 5.1設(shè)計(jì)思想</b></p><
31、p> 如果盤子為1,則將這個(gè)盤子從塔座A移動(dòng)到塔座C; 如果不為1,則采用遞歸思想。</p><p> 將塔座A的前n-1個(gè)盤子借助C盤(即目的盤)移到塔座B,移后,此時(shí)C為空座,那我們就可以將塔座A的第n個(gè)盤子移到塔座C了。接下來(lái)就將塔座B的n-1個(gè)盤子借助A移到塔座C,從而完成盤子的移動(dòng)。</p><p><b> 5.2 實(shí)現(xiàn)方法</b>
32、</p><p> 通過(guò)數(shù)學(xué)函數(shù)的遞歸方法調(diào)用來(lái)實(shí)現(xiàn)。</p><p><b> 5.3 主要模塊</b></p><p> Main函數(shù)實(shí)現(xiàn)函數(shù)的調(diào)用,move函數(shù)實(shí)現(xiàn)輸出,hanoi函數(shù)調(diào)用move函數(shù)實(shí)現(xiàn)移動(dòng)和最終輸出。</p><p><b> 5.4 模塊關(guān)系</b></p&
33、gt;<p> 程序從Main函數(shù)開始,到main函數(shù)結(jié)束。Main函數(shù)通過(guò)調(diào)用hanoi函數(shù)來(lái)實(shí)現(xiàn)盤子的移動(dòng),然后由move函數(shù)輸出在屏幕上。</p><p><b> 6. 詳細(xì)設(shè)計(jì)</b></p><p><b> 6.1 功能設(shè)計(jì)</b></p><p> 如果n=1,則將圓盤從A直接移動(dòng)到C
34、。</p><p> 如果n=2,則:(1)將A上的n-1(等于1)個(gè)圓盤移到B上;(2)再將A上的一個(gè)圓盤移到C上;(3)最后將B上的n-1(等于1)個(gè)圓盤移到C上。 如果n=3,則:A)將A上的n-1(等于2,令其為n`)個(gè)圓盤移到B(借助于C),步驟如下:(1)將A上的n`-1(等于1)個(gè)圓盤移到C上。(2)將A上的一個(gè)圓盤移到B。(3)將C上的n`-1(等于1)個(gè)圓盤移到B。B)
35、將A上的一個(gè)圓盤移到C。C)將B上的n-1(等于2,令其為n`)個(gè)圓盤移到C(借助A),步驟如下:(1)將B上的n`-1(等于1)個(gè)圓盤移到A。(2)將B上的一個(gè)盤子移到C。(3)將A上的n`-1(等于1)個(gè)圓盤移到C。到此,完成了三個(gè)圓盤的移動(dòng)過(guò)程。 從上面分析可以看出,當(dāng)n大于等于2時(shí), 移動(dòng)的過(guò)程可分解為三個(gè)步驟:第一步 把A上的n-1個(gè)圓盤移到B上;第二步 把A上的一個(gè)圓盤移到C上;第三步 把B上的n-1個(gè)圓盤移
36、到C上;其中第一步和第三步是類同的。 當(dāng)n=3時(shí),第一步和第三步又分解為類同的三步,即把n`-1個(gè)圓盤從一個(gè)針移到另一個(gè)針上,這里的n`=n-1。</p><p><b> 6.2 算法分析</b></p><p> 本程序的主要算法是利用函數(shù)的遞歸調(diào)用算法。首先,想辦法將A座上的前n-1個(gè)盤借助C座移動(dòng)到B座上,然后將A組上的第n個(gè)盤移動(dòng)到C座上。然后再將B座上
37、的n-1個(gè)盤借助A座移動(dòng)到C座上,此次移動(dòng)也和第一次移動(dòng)一樣,重復(fù)遞歸,直到最后一個(gè)盤為止。</p><p> 6.3 編寫程序如下:</p><p> #include <stdio.h></p><p> void main()</p><p><b> {</b></p><
38、p> void hanoi(int n,char one,char two,char three );/*對(duì)hanoi函數(shù)進(jìn)行生聲明*/</p><p><b> int m;</b></p><p> printf("Please input the number of diskes:\n");</p><p>
39、; scanf("%d",&m);</p><p> printf("The step to moving %d diskes :\n",m);</p><p> hanoi(m,'A','B','C');</p><p><b> getch();&l
40、t;/b></p><p><b> }</b></p><p> void hanoi(int n,char one,char two,char three) /*定義hanoi函數(shù)*/</p><p> /*將n個(gè)盤從one座借助two座移到three座*/</p><p><b> {&l
41、t;/b></p><p> void move(char x,char y); /*對(duì)move函數(shù)的聲明*/</p><p><b> if(n==1)</b></p><p> move(one ,three);</p><p><b> else</b><
42、;/p><p><b> {</b></p><p> hanoi(n-1,one,three,two);</p><p> move(one,three);</p><p> hanoi(n-1,two,one,three);</p><p><b> }</b>&l
43、t;/p><p><b> }</b></p><p> void move(char x,char y) /*定義move函數(shù)*/</p><p><b> {</b></p><p> printf("%c-->%c\n",x,y);</p>&l
44、t;p><b> getch();</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> 6.4 程序執(zhí)行過(guò)程分析:</p><p><b> 如圖分析</b></p&g
45、t;<p><b> 7. 調(diào)試分析:</b></p><p> 代碼敲完后,先進(jìn)行調(diào)試分析,找出程序中是否有錯(cuò)。</p><p> 結(jié)果顯示當(dāng)前程序出錯(cuò),需要返回檢查。認(rèn)真分析,可以看到,main函數(shù)在調(diào)用hanoi函數(shù)之前沒(méi)有對(duì)hanoi函數(shù)進(jìn)行聲明,所以編譯顯示出錯(cuò)。</p><p> 接下來(lái)就是修改,對(duì)hanoi函
46、數(shù)先進(jìn)行聲明:</p><p> 加上這行聲明后再進(jìn)行調(diào)試</p><p> 程序敲完了,發(fā)現(xiàn)運(yùn)行后速度很快,還沒(méi)看清結(jié)果就結(jié)束了。因此,要在main函數(shù)最后加一個(gè)getch()函數(shù),此函數(shù)的功能是停留運(yùn)行時(shí)間,按任意鍵繼續(xù),使用戶能夠看到運(yùn)行結(jié)果。因?yàn)镃PU的運(yùn)算速度太快了,如果沒(méi)有這個(gè)函數(shù),則會(huì)在運(yùn)行的時(shí)候還沒(méi)能看到結(jié)果就退出程序了。</p><p> 加
47、上getch函數(shù)之后,好了,編譯成功了,現(xiàn)在就可以測(cè)試一下結(jié)果是否滿足要求了。</p><p> 可以看到,結(jié)果顯示在屏幕上是正確的,設(shè)計(jì)完成。</p><p><b> 8.小結(jié)</b></p><p> 通過(guò)這次課程設(shè)計(jì),增加了我學(xué)習(xí)軟件技術(shù)的興趣,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從C語(yǔ)言這門課程開始,到數(shù)據(jù)結(jié)構(gòu),研究算法的特性
48、,已發(fā)現(xiàn)程序設(shè)計(jì)的樂(lè)趣,在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過(guò)程中也學(xué)到了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)大體的了解。 </p><p> 這次課程設(shè)計(jì)是通過(guò)我們一個(gè)小組的努力所實(shí)現(xiàn)的要求。在實(shí)際操作過(guò)程中犯的一些錯(cuò)誤還會(huì)有意外的收獲,感覺(jué)很有意思。在具體操作中對(duì)這學(xué)期所學(xué)的數(shù)據(jù)結(jié)構(gòu)的理論知識(shí)得到鞏固,達(dá)到設(shè)計(jì)的基本目的,也發(fā)現(xiàn)自己的不足之處,在以后的上機(jī)中應(yīng)更加注意,同時(shí)體會(huì)到算法應(yīng)具有的語(yǔ)句簡(jiǎn)潔,簡(jiǎn)單易懂,可讀
49、性高,使用靈活,執(zhí)行效率高等特點(diǎn)。發(fā)現(xiàn)上機(jī)實(shí)訓(xùn)的重要作用,特別是對(duì)函數(shù)的遞歸調(diào)用有了深刻的理解。 </p><p> 通過(guò)實(shí)際操作,學(xué)會(huì)分析問(wèn)題,解決問(wèn)題,開發(fā)了自己的邏輯思維能力。深刻體會(huì)到“沒(méi)有做不到的,只有想不到的”,“團(tuán)結(jié)就是力量”,“實(shí)踐是檢驗(yàn)真理的標(biāo)準(zhǔn)”,“不恥下問(wèn)”……的寓意。這次選取的題目比較簡(jiǎn)單,程序量也比較小,所以完成起來(lái)相對(duì)容易一些,程序使自己敲進(jìn)去的,通過(guò)一次一次的調(diào)試修正,感覺(jué)自己也進(jìn)
50、步了不少。 </p><p> 在此希望以后能多進(jìn)行這樣的訓(xùn)練,培養(yǎng)我們獨(dú)立思考問(wèn)題的能力,提高實(shí)際操作水平。</p><p><b> 致謝</b></p><p> 首先感謝我的指導(dǎo)老師**老師,他在我的課程設(shè)計(jì)過(guò)程中提出了指導(dǎo)性的方案和架構(gòu),并指引我閱讀相關(guān)的資料和書籍,使我在不熟悉的領(lǐng)域中仍能迅速掌握新的技術(shù).感謝我的數(shù)據(jù)結(jié)構(gòu)老
51、師**老師和C語(yǔ)言老師**老師在以往的基礎(chǔ)課學(xué)習(xí)中為我打下良好的基礎(chǔ),這是我這次課程設(shè)計(jì)能夠順利完成的前提。 我的同學(xué)在設(shè)計(jì)完成后對(duì)程序的測(cè)試,沒(méi)有他們,也許就難以發(fā)現(xiàn)一些潛在的錯(cuò)誤,在此一并表示感謝。</p><p><b> 參考文獻(xiàn)</b></p><p> [1].嚴(yán)蔚敏. 《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》. 清華大學(xué)出版社. 2002</p>
52、<p> [2].熊小兵.蘇光奎漢諾塔問(wèn)題的非遞歸新解法 -三峽大學(xué)學(xué)報(bào)(自然科學(xué)版)2004,26(4)</p><p> [3].崔金玲.段新濤漢諾塔問(wèn)題新解 -河南機(jī)電高等??茖W(xué)校學(xué)報(bào)2006,14(1)</p><p> [4]. 文盧建華 用PC匯編語(yǔ)言編程解決漢諾塔問(wèn)題 -信息技術(shù)2003,27(6)</p><p> [5].陳純
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 漢諾塔課程設(shè)計(jì)--漢諾塔演示程序設(shè)計(jì)
- 漢諾塔問(wèn)題課程設(shè)計(jì)
- 漢諾塔課程設(shè)計(jì)--基于vc++的漢諾塔游戲設(shè)計(jì)
- mfc課程設(shè)計(jì)報(bào)告—漢諾塔演示系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--漢諾塔游戲
- 漢諾塔java課程設(shè)計(jì)說(shuō)明書
- 漢諾塔程序設(shè)計(jì)
- 漢諾塔演示
- 漢諾塔hanoi問(wèn)題
- 3done實(shí)體設(shè)計(jì)案例漢諾塔
- 基于java漢諾塔游戲設(shè)計(jì)與實(shí)現(xiàn)
- 3done實(shí)體設(shè)計(jì)案例漢諾塔
- 漢諾塔圖性質(zhì)研究.pdf
- 數(shù)據(jù)結(jié)構(gòu)編程-漢諾塔
- 數(shù)據(jù)結(jié)構(gòu)編程-漢諾塔
- 填料塔課程設(shè)計(jì)
- 板式塔設(shè)計(jì)課程設(shè)計(jì)
- 漢諾塔問(wèn)題的非遞歸新解法
- 填料塔課程設(shè)計(jì)1
- 天塔之光課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論