《計算機(jī)圖形學(xué)》課程設(shè)計論文(參考)_第1頁
《計算機(jī)圖形學(xué)》課程設(shè)計論文(參考)_第2頁
《計算機(jī)圖形學(xué)》課程設(shè)計論文(參考)_第3頁
《計算機(jī)圖形學(xué)》課程設(shè)計論文(參考)_第4頁
《計算機(jī)圖形學(xué)》課程設(shè)計論文(參考)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、攀枝花學(xué)院學(xué)生課程設(shè)計(論文)題 目: 圖書館圖書管理系統(tǒng) 學(xué)生姓名:黃志強(qiáng) 學(xué) 號:201110801008 所在院(系): 計算機(jī)學(xué)院 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 班 級: 2011級1班 指導(dǎo)教師: 羅學(xué)剛 2012年6月 13日攀枝花學(xué)院本科學(xué)生課程設(shè)計任務(wù)書題目圖書館圖書管理系統(tǒng)1、課程設(shè)計的目的通過完成一個完整項目,經(jīng)歷策劃、設(shè)計、開發(fā)、測試、驗收各階段,達(dá)到:(1)鞏固和實踐計算機(jī)圖形學(xué)課程中的理論和算法;(2)培養(yǎng)項目策劃、架構(gòu)設(shè)計、軟件開發(fā)和科研設(shè)計的能力;(3)培養(yǎng)認(rèn)真學(xué)習(xí)、積極探索的工作態(tài)度和良好的團(tuán)隊合作精神。2、課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等

2、)開發(fā)工具:TC或Visual C+開發(fā)人數(shù):1人實現(xiàn)內(nèi)容:設(shè)計開發(fā)一個漢諾塔算法演示程序功能要求:(1)根據(jù)需求設(shè)計出圖形顯示界面(2)根據(jù)漢諾塔算法原理實現(xiàn)大小不同的盤子移動的全過程演示。3、主要參考文獻(xiàn)1 潘云鶴,董金祥等著計算機(jī)圖形學(xué)原理、方法及應(yīng)用北京:高等教育出版社,2003.122 孫家廣等,計算機(jī)圖形學(xué)(第三版),清華大學(xué)出版社,20043 陳元琰編著計算機(jī)圖形學(xué)實用技術(shù)北京:科學(xué)出版社,20004 和青芳著計算機(jī)圖形學(xué)原理及算法教程北京:清華大學(xué)出版社5 陸潤民.C語言繪圖教程.北京:清華大學(xué)出版社,19966 陳錦昌,趙明秀.C語言計算機(jī)繪圖教程.廣州:華南理工大學(xué)出版社,

3、1998.97 楊昂岳.微機(jī)實用繪圖方法與技巧.長沙:國防科技大學(xué)出版社,1995.128 劉路放.C語言的窗口式圖形界面設(shè)計自帶漢字環(huán)境的應(yīng)用軟件編程.西安交通大學(xué)出版社,19964、課程設(shè)計工作進(jìn)度計劃1、設(shè)計動員,布置任務(wù),選題(1天) 2、查閱資料,分析、討論與設(shè)計(1天)3、編寫程序,進(jìn)行調(diào)試(4天)4、完成模塊聯(lián)調(diào),進(jìn)行測試(2天)5、成果驗收,完成設(shè)計報告(2天)指導(dǎo)教師(簽字)日期年 月 日教研室意見:年 月 日學(xué)生(簽字): 接受任務(wù)時間: 年 月 日注:任務(wù)書由指導(dǎo)教師填寫。課程設(shè)計(論文)指導(dǎo)教師成績評定表題目名稱評分項目分值得分評價內(nèi)涵工作表現(xiàn)20%01學(xué)習(xí)態(tài)度6遵守各

4、項紀(jì)律,工作刻苦努力,具有良好的科學(xué)工作態(tài)度。02科學(xué)實踐、調(diào)研7通過實驗、試驗、查閱文獻(xiàn)、深入生產(chǎn)實踐等渠道獲取與課程設(shè)計有關(guān)的材料。03課題工作量7按期圓滿完成規(guī)定的任務(wù),工作量飽滿。能力水平35%04綜合運用知識的能力10能運用所學(xué)知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進(jìn)行理論分析,得出有價值的結(jié)論。05應(yīng)用文獻(xiàn)的能力5能獨立查閱相關(guān)文獻(xiàn)和從事其他調(diào)研;能提出并較好地論述課題的實施方案;有收集、加工各種信息及獲取新知識的能力。06設(shè)計(實驗)能力,方案的設(shè)計能力5能正確設(shè)計實驗方案,獨立進(jìn)行裝置安裝、調(diào)試、操作等實驗工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計算

5、及計算機(jī)應(yīng)用能力5具有較強(qiáng)的數(shù)據(jù)運算與處理能力;能運用計算機(jī)進(jìn)行資料搜集、加工、處理和輔助設(shè)計等。08對計算或?qū)嶒灲Y(jié)果的分析能力(綜合分析能力、技術(shù)經(jīng)濟(jì)分析能力)10具有較強(qiáng)的數(shù)據(jù)收集、分析、處理、綜合的能力。成果質(zhì)量45%09插圖(或圖紙)質(zhì)量、篇幅、設(shè)計(論文)規(guī)范化程度5符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。10設(shè)計說明書(論文)質(zhì)量30綜述簡練完整,有見解;立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理;實驗正確,分析處理科學(xué)。11創(chuàng)新10對前人工作有改進(jìn)或突破,或有獨特見解。成績指導(dǎo)教師評語指導(dǎo)教師簽名: 年月日攀枝花學(xué)院學(xué)生課程設(shè)計論文 摘要摘 要漢諾塔(又稱河內(nèi)塔)問題是一

6、個古典的數(shù)學(xué)問題,是一個用遞歸方法解題的典型例子。問題是這樣的:開天辟地的神勃拉瑪在一個廟里留下了三根金剛石的棒,第一根上面套著64個圓的金片,最大的一個在底下,其余一個比一個小,依次疊上去,廟里的眾僧不倦地把它們一個個地從這根棒搬到另一根棒上,規(guī)定可利用中間的一根棒作為幫助,但每次只能搬一個,而且大的不能放在小的上面。 B2Awdw3=g  利用計算機(jī)圖形學(xué)進(jìn)行漢諾塔演示程序設(shè)計,是利用C語言繪圖函數(shù)實現(xiàn)漢諾塔的遞歸算法圖形界面演示過程。通過C語言實現(xiàn)圖形學(xué)的繪圖,程序控制,以及區(qū)域填充,并根據(jù)漢諾塔的算法原理實現(xiàn)大小不同的盤子移動的全過程演示。關(guān)鍵詞 漢諾塔,變換矩陣,種子填充算

7、法,遞歸調(diào)用I攀枝花學(xué)院學(xué)生課程設(shè)計論文 目錄目 錄摘 要I1 需求分析11.1 需求概述11.2 需求環(huán)境11.3 功能描述22 概要設(shè)計32.1 程序功能模塊32.2 程序流程圖32.3 數(shù)據(jù)結(jié)構(gòu)的設(shè)計43 詳細(xì)設(shè)計53.1 程序初始化53.1.1 代碼功能53.1.2 功能實現(xiàn)代碼53.2 盤塊的移動過程53.2.1代碼功能53.2.2 功能實現(xiàn)代碼53.3 遞歸函數(shù)63.3.1 流程圖63.3.2 功能實現(xiàn)代碼74 測試與運行8結(jié)束語9參考文獻(xiàn)10II攀枝花學(xué)院學(xué)生課程設(shè)計論文 需求分析1 需求分析1.1 需求概述漢諾塔演示程序設(shè)計是計算機(jī)圖形學(xué)中圖形變換的內(nèi)容之一。而圖形學(xué)中的圖形變

8、換的概念是由簡單圖形生成復(fù)雜圖形,可用二維圖形表示三維形體,甚至可以對靜態(tài)圖形經(jīng)過快速變換而獲得圖形的動態(tài)顯示效果。其任務(wù)是研究各點坐標(biāo)之間的變化規(guī)律。而本次課程設(shè)計就是利用C語言以及圖形函數(shù)實現(xiàn)漢諾塔的遞歸算法來進(jìn)行其盤塊移動的全過程顯示。在TC環(huán)境中要實現(xiàn)這樣的功能,就要牽涉到圖形設(shè)備接口的知識。Windows圖形設(shè)備接口是為與設(shè)備無關(guān)的圖形設(shè)計的,是Windows系統(tǒng)的重要組成部分,負(fù)責(zé)系統(tǒng)與用戶或繪圖程序之間的信息交換,并控制在輸出設(shè)備上顯示圖形或文字。應(yīng)用程序必須通知圖形設(shè)備接口來加載特定的設(shè)備驅(qū)動,一旦驅(qū)動得以加載,就可以準(zhǔn)備應(yīng)用設(shè)備進(jìn)行相關(guān)的操作這些任務(wù)都要通過創(chuàng)建和維護(hù)設(shè)備描述

9、表來完成。在實現(xiàn)漢諾塔演示程序設(shè)計時,是利用坐標(biāo)系統(tǒng)而得到的,而在Windows應(yīng)用程序中有兩種坐標(biāo)系統(tǒng):設(shè)備坐標(biāo)系統(tǒng)和邏輯坐標(biāo)系統(tǒng)。其中設(shè)備坐標(biāo)系統(tǒng)中又有三種相互獨立的坐標(biāo)系統(tǒng):屏幕坐標(biāo)系統(tǒng)、窗口坐標(biāo)系統(tǒng)和用戶區(qū)坐標(biāo)系統(tǒng)。這些坐標(biāo)系統(tǒng)均以像素點來表示度量的單位。屏幕坐標(biāo)系統(tǒng)使用整個屏幕作為坐標(biāo)區(qū)域,原點為屏幕原點。窗口坐標(biāo)系統(tǒng)使用了邊界在內(nèi)的應(yīng)用程序的窗口作為坐標(biāo)區(qū)域。窗口邊界的左上角是坐標(biāo)系統(tǒng)的原點。用戶坐標(biāo)系統(tǒng)是最經(jīng)常使用的坐標(biāo)系統(tǒng)。用戶區(qū)是窗口工作區(qū),不包括窗口邊界、菜單條及滾動條等。用戶一般只需操作應(yīng)用程序的用戶區(qū),因此用戶區(qū)坐標(biāo)系統(tǒng)對大多數(shù)應(yīng)用程序都是適用的。在計算機(jī)機(jī)圖形學(xué)中窗口

10、的定義是指在用戶坐標(biāo)系中定義的確定顯示內(nèi)容的一個矩形區(qū)域,只有在這個區(qū)域內(nèi)的圖形才能在設(shè)備坐標(biāo)系下輸出,而窗口外的部分則被截掉。視區(qū)是在設(shè)備坐標(biāo)中定義的一個區(qū)域,用于輸出窗口中的圖形。視區(qū)決定了窗口中的圖形要顯示于屏幕上的位置的大小。1.2 需求環(huán)境本課程設(shè)計需要的設(shè)備為硬件要求和軟件配置要求具體要求如下:硬件要求:一臺計算機(jī)。軟件配置:WINDOWS、C/VC+6.0。1.3 功能描述 本課程設(shè)計是利用圖形學(xué)的相關(guān)知識在TC或Visual C+環(huán)境下利用遞歸算法實現(xiàn)漢諾塔演示的全過程,其基本的功能描述如下: 繪制三個塔座。 在第一個塔座上繪制一個矩形(一個矩形代表一個盤子),棧的高度遞增,則

11、矩形的大小遞減。 為矩形填充顏色,盤子的顏色代碼為棧頂盤子代號加1。 通過鼠標(biāo)或者鍵盤控制移動矩形,將所有的矩形借助第二個塔座從第一個塔移到第三個塔,并顯示每次移動盤子的步驟。9攀枝花學(xué)院學(xué)生課程設(shè)計論文 概要設(shè)計2 概要設(shè)計2.1 程序功能模塊由需求分析知,本次課程設(shè)計是用遞歸算法實現(xiàn)漢諾塔演示程序,故其功能模塊分為:程序初始化模塊,盤塊移動模塊,遞歸調(diào)用模塊三個模塊。(可以把功能模塊用圖畫出來)2.2 程序流程圖開始定義結(jié)構(gòu)體數(shù)組M存放盤號和塔座高度程序初始化輸入要演示的盤塊數(shù)nn<1|n>10n=10繪制塔座和盤塊調(diào)用遞歸函數(shù)hanoi( )n= =1?調(diào)用move( )函數(shù)

12、將盤塊從A移到C將前n-1個盤塊從A移到B再將A的第n個盤塊移到C最后將B上的n-1個盤移到C結(jié) 束圖2.1 程序流程圖2.3 數(shù)據(jù)結(jié)構(gòu)的設(shè)計 根據(jù)需求分析將用遞歸算法實現(xiàn)漢諾塔演示過程的數(shù)據(jù)結(jié)構(gòu)的設(shè)計如下: 用一個結(jié)構(gòu)體數(shù)組struct M int data15; int top; num3;來定義三個塔座的高度,以及每個塔座存放每個盤塊的代號。 定義兩個變量cx,cy來分別表示程序演示步驟的橫坐標(biāo)和縱坐標(biāo)的變化。 用函數(shù)void move(char x,char y,struct M num3);來表示盤塊移動的具體過程;并在move函數(shù)中調(diào)用函數(shù)void hanoi(char x,cha

13、r y,char z,int n,struct M num3);來表示遞歸調(diào)用的過程;最后用一個初始化函數(shù)void Init(void)來對整個程序進(jìn)行初始化,并調(diào)用move函數(shù)。攀枝花學(xué)院學(xué)生課程設(shè)計論文 詳細(xì)設(shè)計3 詳細(xì)設(shè)計3.1 程序初始化3.1.1代碼功能 在初始化程序中,主要實現(xiàn)的是繪制塔座標(biāo)志,繪制盤塊,設(shè)置塔座標(biāo)志顏色,以及填充盤塊顏色等。3.1.2 功能實現(xiàn)代碼繪制塔座的代碼如下:setcolor(GREEN);/*設(shè)置塔座標(biāo)志顏色*/outtextxy(180,450,"press any key to continue");settextstyle(0,

14、0,2);outtextxy(90,420,"A"); /*塔座標(biāo)志*/outtextxy(240,420,"B");outtextxy(390,420,"C");繪制矩形的代碼如下:setfillstyle(SOLID_FILL,color);/*設(shè)置填充顏色*/bar(100-(33-3*num0.datanum0.top),400-20*i-8,100+(33-3*num0.datanum0.top),400-20*i+8); /*畫矩形*/3.2 盤塊的移動過程3.2.1代碼功能盤塊的移動實際上是一個出棧和入棧的過程,盤塊出棧

15、后便將原來的地方涂黑,本塊代碼主要是實現(xiàn)顯示漢諾塔的具體移動的演示過程及移動步驟。3.2.2 功能實現(xiàn)代碼void move(char x,char y,struct M num3)/*移動的具體過程*/int i;char num13,num23;sprintf(num1,"%c",x-32);/*將小寫變成大寫,并轉(zhuǎn)換成字符串輸出*/sprintf(num2,"%c",y-32); setfillstyle(SOLID_FILL,BLACK);/*把原來的地方移去涂黑*/setcolor(YELLOW);outtextxy(20+cx,30+cy,n

16、um1);/*輸出移動過程,每次移動后縱坐標(biāo)加30*/outtextxy(62+cx,30+cy,"->");outtextxy(130+cx,30+cy,num2);cy+=30;if(cy>210) /*橫坐標(biāo)換行后另起一列*/ cx+=145; cy=0;/*縱坐標(biāo)重新回到頂部開始顯示下一列的演示步驟 */ settextstyle(0,0,2);setfillstyle(SOLID_FILL,BLACK);/*把原來的地方移去涂黑*/bar(100+150*(x-97)-(33-3*numx-97.datanumx-97.top),400-20*numx

17、-97.top-8,100+150*(x-97)+(33-3*numx-97.datanumx-97.top),400-20*numx-97.top+8);numy-97.top+;/*入棧,目標(biāo)點的top加1*/numy-97.datanumy-97.top=numx-97.datanumx-97.top;/*在目標(biāo)點盤子的代號與源點盤子的代號相同*/numx-97.top-;/*出棧,原來地方的top減1*/setfillstyle(SOLID_FILL,numy-97.datanumy-97.top+1);/*盤子顏色代碼是棧頂盤子代號加1*/bar(100+150*(y-97)-(33

18、-3*numy-97.datanumy-97.top),400-20*numy-97.top-8,100+150*(y-97)+(33-3*numy-97.datanumy-97.top),400-20*numy-97.top+8);getch( );/*自己按鍵盤來進(jìn)行手動控制*/3.3 遞歸函數(shù)3.3.1 流程圖根據(jù)概要設(shè)計中的實現(xiàn)遞歸函數(shù)過程的流程圖設(shè)計如圖3.3所示:開 始n= =1?將盤塊從A座移到C座將前n-1個盤塊從A座移到B座再將A座的第n個盤塊移到C座最后將B座上的n-1個盤塊移到C座結(jié) 束圖3.1 遞歸函數(shù)3.3.2 功能實現(xiàn)代碼 漢諾塔演示程序設(shè)計主要是利用遞歸調(diào)用函數(shù)實

19、現(xiàn)。函數(shù)調(diào)用hanoi( one,two,three,n,num)表示將n個盤塊從A座移到C座的過程,函數(shù)調(diào)用move(one,three,num)是將1個盤塊從A座移到C座的過程。其具體代碼實現(xiàn)如下:if(n=1)move(one,three,num);/*如果盤子為1,將這個盤子從塔座A移動到塔座C*/elsehanoi(one,three,two,n-1,num);/*將塔座A的前n-1個盤子移到塔座B*/move(one,three,num);/*將塔座A的第n個盤子移到塔座C*/hanoi(two,one,three,n-1,num); /*將塔座B的n-1個盤子移到塔座C*/攀枝花

20、學(xué)院學(xué)生課程設(shè)計論文 測試與運行4 測試與運行由需求分析可知,漢諾塔演示程序設(shè)計是在TC環(huán)境下利用遞歸算法實現(xiàn)大小不同的盤子移動的全過程演示。本程序已調(diào)試成功并實現(xiàn)了其功能,當(dāng)移動盤塊數(shù)為3時,其運行結(jié)果如下:圖4.1 盤塊移動前圖4.2 盤塊移動中圖4.3 盤塊移動后                           

21、60;                                        攀枝花學(xué)院學(xué)生課程設(shè)計論文 結(jié)束語結(jié)束語在這次課程設(shè)計中,我基本上完成了任務(wù),通過遞歸調(diào)用算法實現(xiàn)了漢諾塔的演示過程,以及盤塊移動的具體步驟的顯示,基本上達(dá)到了此次課程設(shè)計的要求。但是它的不足也是顯而易見的,在盤塊移動的過程中用方向鍵移動時會一次顯示兩個步驟,這給用戶的實際操作帶來了一定的困難,所以這是值得改進(jìn)的地

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論