版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——C語言課程設(shè)計(jì)漢諾塔C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
漢諾塔動(dòng)態(tài)演示
一課題分析
1.1設(shè)計(jì)要求
在Visualc++環(huán)境下編寫漢諾塔的程序并運(yùn)行出漢諾塔游戲。能夠改變漢諾塔塔盤的數(shù)量??梢噪娔X演示移動(dòng)過程,也可以人為移動(dòng),并且能夠控制塔盤移動(dòng)速度。實(shí)現(xiàn)漢諾塔的簡(jiǎn)單動(dòng)態(tài)演示。
1.1.1目的
了解在開發(fā)環(huán)境中如何編輯,編譯,連接和運(yùn)行一個(gè)C語言程序。通過運(yùn)行漢諾塔的
程序,初步了解C語言程序的結(jié)構(gòu)特點(diǎn)。把握C語言數(shù)據(jù)類型的概念,學(xué)會(huì)使用C語言的相關(guān)運(yùn)算符構(gòu)成表達(dá)式。
1.1.2背景
世界范圍內(nèi)信息技術(shù)迅猛發(fā)展,新的技術(shù)和方法層出不窮。C語言在計(jì)算機(jī)應(yīng)用中發(fā)
揮著重要作用,并且在全世界普及推廣。作為當(dāng)代大學(xué)生,有必要把握和會(huì)運(yùn)用C語言。
1.1.3意義
這次課程設(shè)計(jì),可以培養(yǎng)我們獨(dú)立自主的學(xué)習(xí)能力,實(shí)事求是的學(xué)習(xí)態(tài)度,嚴(yán)謹(jǐn)治學(xué)
的學(xué)習(xí)作風(fēng),通過實(shí)踐,建立系統(tǒng)設(shè)計(jì)的整體思想,鍛煉編寫程序、調(diào)試程序的能力,學(xué)習(xí)文檔編寫規(guī)范,吸取他人經(jīng)驗(yàn)、摸索前言知識(shí)的習(xí)慣,樹立團(tuán)隊(duì)協(xié)作精神。同時(shí)課程設(shè)計(jì)還可以彌補(bǔ)我們自身在實(shí)踐時(shí)所缺少的經(jīng)驗(yàn)。這次對(duì)于漢諾塔這個(gè)問題的研究是我在C語言課程學(xué)習(xí)中遞歸函數(shù)的一次實(shí)際運(yùn)用,對(duì)我的遞歸函數(shù)的理解會(huì)有更多的幫助。
1.2實(shí)現(xiàn)功能
運(yùn)用數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),利用一定的算法制作出漢諾塔程序。能輸入塔盤的數(shù)量(10
以內(nèi))和塔盤移動(dòng)速度,支持人和電腦操作,并且顯示移動(dòng)過程和移動(dòng)次數(shù),實(shí)現(xiàn)漢諾塔的動(dòng)態(tài)演示。
第1頁共10頁
C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
漢諾塔游戲塔盤數(shù)量設(shè)置
2.1框架設(shè)計(jì)移操動(dòng)作速對(duì)度象調(diào)選節(jié)擇圖1漢諾塔功能結(jié)構(gòu)圖
二整體設(shè)計(jì)
第2頁共10頁
移動(dòng)過程顯示
C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
圖2漢諾塔流程圖
游戲終止輸出移動(dòng)次數(shù)塔盤全部在C座移動(dòng)塔盤輸入移動(dòng)速度是否小盤在大盤上是否為人調(diào)用while()進(jìn)入主循環(huán)2≤n≤10游戲開始輸入塔盤數(shù)量n
第3頁共10頁
C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
三詳細(xì)設(shè)計(jì)
3.1問題描述
假設(shè)有三個(gè)分別命名為A,B和C的塔座,在塔座B上插有n個(gè)直徑大小各不一致、從小到大編號(hào)為1,2,…,n的圓盤?,F(xiàn)要求將塔座B上的n個(gè)圓盤移至塔座A上并仍按同樣順序疊排,圓盤移動(dòng)時(shí)必需遵守以下規(guī)則:(1)每次只能移動(dòng)一個(gè)圓盤;
(2)圓盤可以插在A,B和C中任一塔上;
(3)任何時(shí)刻都不能將一個(gè)較大的圓盤壓在較小的圓盤之上。
要求:用程序模擬上述問題解決方法,并輸出移動(dòng)的總次數(shù),圓盤的個(gè)數(shù)從鍵盤輸入;并想方法計(jì)算出程序運(yùn)行的時(shí)間。
3.2算法思路3.2.1建立數(shù)學(xué)模型
這個(gè)問題可用遞歸法解決,并用數(shù)學(xué)歸納法又個(gè)別得出普遍解法:假設(shè)塔座B上有3個(gè)圓盤移動(dòng)到塔座A上:
(1)將塔座B上2個(gè)圓盤借助塔座A移動(dòng)到塔座C上;(2)將塔座B上1個(gè)圓盤移動(dòng)到塔座A上;
(3)將塔座C上2個(gè)圓盤借助塔座B移動(dòng)到塔座A上。其中第2步可以直接實(shí)現(xiàn)。第1步又可用遞歸方法分解為:1.1\將塔座B上1個(gè)圓盤從塔座X移動(dòng)到塔座A;1.2\將塔座B上1個(gè)圓盤從塔座X移動(dòng)到塔座C;1.3\將塔座A上1個(gè)圓盤從塔座Z移動(dòng)到塔座C。第3步可以分解為:
將塔座C上1個(gè)圓盤從塔座Y移動(dòng)到塔座B;將塔座C上1個(gè)圓盤從塔座Y移動(dòng)到塔座A;將塔座B上1個(gè)圓盤從塔座X移動(dòng)到塔座A。綜上所述:可得到移動(dòng)3個(gè)圓盤的步驟為B->A,B->C,A->C,B->A,C->B,C->A,B->A,
3.2.2算法設(shè)計(jì)
將n個(gè)圓盤由B依次移到A,C作為輔助塔座。當(dāng)n=1時(shí),可以直接完成。否則,將塔座B頂上的n-1個(gè)圓盤借助塔座A移動(dòng)到塔座C上;然后將圓盤B上第n個(gè)圓盤移到塔座A上;最終將塔座C上的n-1個(gè)圓盤移到塔座A上,并用塔座B作為輔助塔座。
第4頁共10頁
C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
3.2運(yùn)用類的介紹
主類Tower
成員變量描述漢諾塔對(duì)象塔名數(shù)組盤子數(shù)目p盤子大小自動(dòng)演示線程自動(dòng)演示文字顯示搬運(yùn)過程菜單條菜單菜單項(xiàng)顯示時(shí)間變量類型HannoiTowerChar[]intfloatIntThreadTextAreaJMenuBarJMenuJMenuItemJTextFieldtowerTowerName盤子數(shù)目盤子從上到下縮小的比例盤寬,盤高Thread信息條barfileMenu1,fileMenu2,fileMenu3開始游戲,重新開始,自動(dòng)演示,英雄榜,退出,背景音樂,幫助主題,關(guān)于漢諾塔;顯示時(shí)間名稱類HannoiTower
成員變量描述位置p搬運(yùn)坐標(biāo)盤子數(shù)目塔名時(shí)間塔點(diǎn)移動(dòng)狀態(tài)盤子顯示移動(dòng)信息用來計(jì)時(shí)計(jì)時(shí)器是否啟動(dòng)變量類型intfloatintintcharintTowerPointbooleanDiskTextAreaTimeboolean變量名X,Y盤子從上到下縮小的比例Shartx,Starty,Starti盤子數(shù)目Towername[]spendtimepoint[]move盤子[]信息條計(jì)時(shí)計(jì)時(shí)器是否啟動(dòng)第5頁共10頁
C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
類TowerPoint
成員變量描述位置查看是否有盤子創(chuàng)立盤子創(chuàng)立塔變量類型IntbooleanDiskHannoiTower變量類型intboolean變量名X,Y有盤子盤子con變量名number上方有盤類Disk
成員變量描述數(shù)目上方有無盤子類Time
成員變量描述時(shí)間計(jì)時(shí)器顯示時(shí)間計(jì)時(shí)器是否啟動(dòng)變量類型intjavax.swing.TimerJTextFieldboolean變量名time計(jì)時(shí)器顯示時(shí)間計(jì)時(shí)器是否啟動(dòng)
四總結(jié)
這次對(duì)于漢諾塔的課程設(shè)計(jì)我有好多心得和體會(huì),課程設(shè)計(jì)所設(shè)計(jì)制作出來的漢諾塔游戲總體符合設(shè)計(jì)要求,但也有一些缺點(diǎn)和不足,沒能完全達(dá)到預(yù)期的要求。通過課程設(shè)計(jì),我們對(duì)C語言的把握提高到了一個(gè)新的水平,能夠應(yīng)用C語言編寫出一個(gè)實(shí)用的程序,很大程度上提高了程序綜合設(shè)計(jì)能力、分析能力和編程能力。把握了好多新的編程技巧,積累了一些編程經(jīng)驗(yàn)這些技巧和經(jīng)驗(yàn)對(duì)于以后的課程都是很重要的。因此我覺得這次課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中心校安全制度
- 校園安全搜查線課件
- 2026年雄安未來產(chǎn)業(yè)技術(shù)研究院(事業(yè)單位)招聘44人備考題庫及答案詳解一套
- 2026年泰和縣教育體育局所屬事業(yè)單位競(jìng)爭(zhēng)性選調(diào)工作人員的備考題庫及一套完整答案詳解
- 2026中國(guó)硅酸鈉熔模鑄造行業(yè)發(fā)展動(dòng)態(tài)與供需趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030中國(guó)特種潤(rùn)滑油市場(chǎng)發(fā)展對(duì)策分析與競(jìng)爭(zhēng)戰(zhàn)略規(guī)劃研究報(bào)告
- 2025-2030中國(guó)塑身衣市場(chǎng)營(yíng)銷渠道與投資戰(zhàn)略可行性研究報(bào)告
- 2025至2030中國(guó)光伏儲(chǔ)能一體化產(chǎn)業(yè)市場(chǎng)供需及投資風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030中國(guó)陶瓷茶具產(chǎn)業(yè)營(yíng)銷趨勢(shì)與投資價(jià)值研究分析研究報(bào)告
- 工信廳安全職責(zé)培訓(xùn)課件
- 離婚協(xié)議標(biāo)準(zhǔn)版(有兩小孩)
- 浙江省臺(tái)州市路橋區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期1月期末考試語文試題(含答案)
- 假體隆胸后查房課件
- 2023年互聯(lián)網(wǎng)新興設(shè)計(jì)人才白皮書
- DB52-T 785-2023 長(zhǎng)順綠殼蛋雞
- c語言知識(shí)點(diǎn)思維導(dǎo)圖
- 關(guān)于地方儲(chǔ)備糧輪換業(yè)務(wù)會(huì)計(jì)核算處理辦法的探討
- GB/T 29319-2012光伏發(fā)電系統(tǒng)接入配電網(wǎng)技術(shù)規(guī)定
- GB/T 1773-2008片狀銀粉
- GB/T 12007.4-1989環(huán)氧樹脂粘度測(cè)定方法
- (完整版)北京全套安全資料表格
評(píng)論
0/150
提交評(píng)論