版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)說(shuō)明書</b></p><p> ?。〝?shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì))</p><p> 專 業(yè): </p><p> 課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 班級(jí): </p><p> 設(shè)計(jì)題目:
2、 走迷宮游戲 </p><p> 設(shè)計(jì)時(shí)間: 2013-2-25 至 2013-3-8 </p><p> 評(píng) 語(yǔ):_________________________________</p><p> _________________________________________</p>&
3、lt;p> _________________________________________</p><p> _________________________________________</p><p> _________________________________________</p><p> 評(píng)閱成績(jī):__ __評(píng)閱教師:_
4、_ </p><p> 一、問(wèn)題描述與需求分析</p><p><b> 1、問(wèn)題描述</b></p><p> 程序開(kāi)始運(yùn)行時(shí)顯示一個(gè)迷宮地圖,迷宮中央有一只老鼠,迷宮的右下方有一個(gè)糧倉(cāng)。游戲的任務(wù)是使用鍵盤上的方向鍵操縱老鼠在規(guī)定的時(shí)間內(nèi)走到糧倉(cāng)處。</p><p><b> 要求:
5、</b></p><p> 老鼠形象可辨認(rèn),可用鍵盤操縱老鼠上下左右移動(dòng);</p><p> 迷宮的墻足夠結(jié)實(shí),老鼠不能穿墻而過(guò);</p><p> 正確檢測(cè)結(jié)果,若老鼠在規(guī)定時(shí)間內(nèi)走到糧倉(cāng)處,提示成功,否則提示失??;</p><p> 添加編輯迷宮功能,可修改當(dāng)前迷宮,修改內(nèi)容:墻變路、路變墻;</p>&
6、lt;p> 找出走出迷宮的所有路徑,以及最短路徑;</p><p> 6)利用序列化功能實(shí)現(xiàn)迷宮地圖文件的存盤和讀出等功能。</p><p><b> 功能需求分析</b></p><p> 老鼠形象設(shè)計(jì),使用圖形化編程,繪制橢圓,填充顏色,繪制線。</p><p> 設(shè)置游戲者在探索過(guò)程中遇到迷宮邊界和
7、墻時(shí),不可繼續(xù)前行,定義好迷宮邊界。</p><p> 使用time函數(shù)獲取系統(tǒng)時(shí)間,處理游戲所用時(shí)間,限定操作時(shí)間,對(duì)游戲者的位置有準(zhǔn)確的判斷,當(dāng)?shù)竭_(dá)出口時(shí),可以識(shí)別,返回提示信息。</p><p> 對(duì)于迷宮的所有路徑的求解,比較最短路徑,最小生成樹(shù)算法。</p><p> 5.對(duì)迷宮的地圖可將其存儲(chǔ)到二進(jìn)制文件中,在下次使用時(shí)直接調(diào)用,讀取文件。<
8、/p><p><b> 二、概要設(shè)計(jì)</b></p><p><b> 1、總體設(shè)計(jì)思路</b></p><p> 在程序中,采用二維數(shù)組存儲(chǔ)迷宮地圖(0:墻 1:路),在探索迷宮過(guò)程中采用棧的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)探索迷宮時(shí)的全部路徑和有效路徑,因棧的“后進(jìn)先出”結(jié)構(gòu)非常適合探索過(guò)程中的退步,即可以保證在任何位置都可沿原路退回。
9、在探索迷宮過(guò)程中采用的是“窮舉求解”的方法,即從入口出發(fā),順某一方向向前探索,若能走通,則繼續(xù)往前走;否則沿原路退回,換一個(gè)方向在繼續(xù)探索,直到所有可能的通路都探索到為止。</p><p><b> 2、 模塊簡(jiǎn)介</b></p><p> 程序由以下幾個(gè)模塊組成:</p><p> 迷宮地圖隨機(jī)生成模塊:</p><
10、p> 入口:int **Maze()</p><p> 出口:return maze;</p><p> 實(shí)現(xiàn)功能:該函數(shù)使用 new函數(shù)為指向二維數(shù)組的指針maze 申請(qǐng)存儲(chǔ)空間,分兩步實(shí)現(xiàn),先申請(qǐng)長(zhǎng)度等于行數(shù)加2 的二級(jí)指針,然后為每個(gè)二維指針申請(qǐng)存儲(chǔ)空間。</p><p> 調(diào)用包含在頭文件 stdlib .h 中的庫(kù)函數(shù),隨機(jī)數(shù)生成器 sra
11、nd( ),rand( ), 及包含在頭文件time.h 中的系統(tǒng)時(shí)間函數(shù)time(),srand((unsigned)time(NULL)) 使用系統(tǒng)時(shí)間,傳入空指針NULL,作為初始化種子,使得在后面調(diào)用的rand()%2函數(shù)產(chǎn)生不同的隨機(jī)數(shù),取余之后為(0和1),從而實(shí)現(xiàn)了迷宮地圖的隨機(jī)生成,但使用該方法產(chǎn)生的迷宮地圖中不一定存在一條從入口到出口的路徑。</p><p> 最
12、后使用for循環(huán)嵌套給迷宮的上、下、左、右邊界賦值0(為墻壁);指定迷宮的入口與出口位置同時(shí)賦值為1(為通道)。</p><p> 因定義了二維指針類型函數(shù),故在其它函數(shù)調(diào)用該函數(shù)時(shí)返回指向迷宮地圖的二維指針,使得調(diào)用迷宮地圖極為方便。</p><p><b> 棧操作實(shí)現(xiàn)模塊:</b></p><p> 該模塊共包含:①初始化棧,②元素
13、入棧,③元素出棧,④刪除棧頂元素,⑤棧的遍歷 5個(gè)函數(shù)。</p><p><b> ?、俪跏蓟瘲?lt;/b></p><p> 入口:int StackTraverse(SqStack *s) </p><p> 出口:exit(OVERFLOW); return TRUE; </p><p> 實(shí)現(xiàn)功能:初始化
14、一個(gè)棧,并為其分配存儲(chǔ)空間初始量。形參為棧類型指針,調(diào)用時(shí)傳遞實(shí)參全局變量realPath Path 地址,調(diào)用包含在頭文件 malloc.h 中的庫(kù)函數(shù)malloc 根據(jù)棧的存儲(chǔ)空間初始量及SqStack所占字節(jié)為其動(dòng)態(tài)分配內(nèi)存,最后,將內(nèi)存地址賦給棧底指針,同時(shí)使棧頂指針也指向該內(nèi)存,棧的大小為存儲(chǔ)空間初始量;當(dāng)分配失敗時(shí),返回空指針NULL,退出該函數(shù)同時(shí)輸出錯(cuò)誤提醒語(yǔ)句,以便調(diào)試;分配成功,返回TRUE,表明該函數(shù)已執(zhí)行。<
15、;/p><p> 這樣做的優(yōu)點(diǎn)是節(jié)省了內(nèi)存,根據(jù)存儲(chǔ)使用量動(dòng)態(tài)分配,在使用結(jié)束后可及時(shí)釋放該內(nèi)存。</p><p><b> ?、谠厝霔?lt;/b></p><p> 入口:int Push(SqStack *s,SElemType e)</p><p> 出口:exit(OVERFLOW); return TRUE;
16、</p><p> 實(shí)現(xiàn)功能:向棧中添加新元素。形參為棧類型指針,棧元素類型e ,調(diào)用時(shí)傳遞實(shí)參地址及入棧元素;</p><p> 但需注意的是:在入棧之前要判斷棧是否還有空間容納新元素,如棧滿(s->top - s->base >= s->stackSize)則應(yīng)使用 realloc 函數(shù)為棧分配存儲(chǔ)空間增量(STACKINCREMENT),在棧底指針base
17、 之后追加增量,同時(shí)將新的地址賦給base,此時(shí)應(yīng)重新定位棧頂指針(s->top = s->base + s->stacksize;),因重新分配了空間base值已改變,所以top值也就相應(yīng)的改變,才能指向新的元素;如存儲(chǔ)分配失敗,則輸出提醒語(yǔ)句,退出函數(shù);否則,新元素e 入棧,棧頂指針top++ ,返回TRUE ,函數(shù)正常退出。</p><p><b> ?、墼爻鰲?lt;/b&g
18、t;</p><p> 入口:SElemType GetTop(SqStack *s) </p><p> 出口:exit(ERROR); return *(s->top - 1);</p><p> 實(shí)現(xiàn)功能:若棧非空,獲取棧頂元素,并返回其值。因函數(shù)類型為棧元素類型,故可直接返回棧頂元素,需注意的是:在出棧之前要判斷棧是否非空(s->to
19、p == s->base),若base 值等于 top 值,則表明???,輸出錯(cuò)誤提醒語(yǔ)句,強(qiáng)制退出函數(shù);否則,top 值減 1 ,返回棧頂元素,此時(shí)函數(shù)正常退出。</p><p><b> ?、軇h除棧頂元素</b></p><p> 入口:int Pop(SqStack *s) </p><p> 出口: exit(ERROR);
20、return TRUE;</p><p> 實(shí)現(xiàn)功能:若棧非空,則刪除棧頂元素。同樣,在刪除元素之前需判斷棧是否非空,是,則棧頂指針 top - - 返回TRUE ,函數(shù)正常退出;否(s->top == s->base),則輸出錯(cuò)誤提醒語(yǔ)句,強(qiáng)制退出函數(shù)。</p><p><b> ?、輻5谋闅v</b></p><p> 入口:
21、int StackTraverse(SqStack *s)</p><p> 出口:return TRUE;</p><p> 實(shí)現(xiàn)功能:逆序遍歷棧,先指向棧底元素,以后依次向上增 1 ,輸出迷宮從入口到出口的路徑。當(dāng)base 值小于top - 1 時(shí)執(zhí)行 while 循環(huán),由棧底依次向上輸出棧中元素,s -> base ++ ,不滿足條件時(shí)跳出 while 循環(huán),此時(shí)棧底指針
22、指向棧頂元素,輸出棧中最后一個(gè)元素,即迷宮通道中的出口位置。</p><p><b> 探索迷宮操作模塊:</b></p><p> 該模塊共包含:①判斷當(dāng)前位置是否走過(guò),②獲取東面相鄰位置,③獲取南面相鄰位置,④獲取西面相鄰位置,⑤獲取北面相鄰位置,⑥獲取下一可通行位置,以及⑦獲取迷宮路徑函數(shù) 7個(gè)函數(shù),其中獲取迷宮路徑函數(shù)為主要函數(shù),調(diào)用其他函數(shù)以實(shí)現(xiàn)獲取迷宮
23、路徑,并將其存儲(chǔ)到棧中。</p><p> ?、倥袛喈?dāng)前位置是否走過(guò)</p><p> 入口:int UnPass(SqStack path, SElemType e);</p><p> 出口:return flag;</p><p> 實(shí)現(xiàn)功能:在探索迷宮時(shí),調(diào)用該函數(shù),判斷當(dāng)前位置是否走過(guò)。形參為棧類型 path ,棧元素類型 e
24、 ,在調(diào)用時(shí)傳遞全局變量Path ,即存儲(chǔ)探索迷宮時(shí)走過(guò)的所有路徑的棧,當(dāng)前位置的棧元素類型;在該函數(shù)中,定義整型數(shù) flag = 1 作為標(biāo)記,當(dāng)棧Path 非空時(shí)執(zhí)行 while 循環(huán),比較當(dāng)前位置對(duì)應(yīng)坐標(biāo)是否與出棧元素的坐標(biāo)相等,即判斷當(dāng)前位置是否在Path 的路徑中出現(xiàn)過(guò),若滿足條件,標(biāo)記flag = 0 ,Path.top -- ,即每執(zhí)行一次循環(huán),頭指針下移一個(gè)位置,直到不滿足條件時(shí)跳出循環(huán),即將Path 中所有元素都與當(dāng)前
25、位置作了比較;若有符合要求的,返回標(biāo)記flag = 0 ,表明該位置走過(guò);否則,返回標(biāo)記flag=1,該位置未曾走過(guò)。</p><p><b> ?、讷@取東面相鄰位置</b></p><p> 入口:SElemType getEast(int **m,SElemType e)</p><p> 出口:return e;</p>
26、<p> 實(shí)現(xiàn)功能:獲取東面相鄰位置信息,返回棧元素類型,包含位置坐標(biāo),方向。形參為二維指針m ,棧元素類型 e ,調(diào)用時(shí)傳遞指向迷宮地圖的二維指針,及當(dāng)前位置;</p><p> 注:以屏幕左上角為坐標(biāo)原點(diǎn),水平向右為 y 軸正方向,豎直向下為 x 軸正方向。</p><p> 判斷當(dāng)前位置未到迷宮右(東)邊界時(shí),當(dāng)前位置 y 坐標(biāo)加 1(e.curpos.y += 1
27、;),將東面相鄰位置在迷宮地圖中的值賦給當(dāng)前位置(e.curpos.val = m[e.curpos.x][e.curpos.y];) ,返回 e ,從而實(shí)現(xiàn)了獲取當(dāng)前位置的東面相鄰位置信息。</p><p><b> ?、郢@取南面相鄰位置</b></p><p> 入口:SElemType getSouth(int **m,SElemType e)</p&g
28、t;<p> 出口:return e;</p><p> 實(shí)現(xiàn)功能:獲取南面相鄰位置信息。需判斷當(dāng)前位置是否已到迷宮下(南)邊界。</p><p> x 位置坐標(biāo)加 1(e.curpos.x += 1;)</p><p><b> ?、塬@取西面相鄰位置</b></p><p> 入口:SElemTy
29、pe getWest(int **m,SElemType e)</p><p> 出口:return e;</p><p> 實(shí)現(xiàn)功能:獲取西面相鄰位置信息。需判斷當(dāng)前位置是否已到迷宮左(西)邊界。</p><p> y 位置坐標(biāo)加 1(e.curpos.y += 1;)</p><p><b> ?、莴@取北面相鄰位置<
30、/b></p><p> 入口:SElemType getNorth(int **m,SElemType e)</p><p> 出口:return e;</p><p> 實(shí)現(xiàn)功能:獲取北面相鄰位置信息。需判斷當(dāng)前位置是否已到迷宮上(北)邊界。</p><p> x 位置坐標(biāo)減 1(e.curpos.x -= 1;)</
31、p><p> ?、瞢@取下一可通行位置</p><p> 入口:SElemType NextPos(SElemType e)</p><p> 出口:return next;</p><p> 實(shí)現(xiàn)功能:在當(dāng)前位置,向四個(gè)方向(東、南、西、北)探索,調(diào)用②、③、④、⑤函數(shù),若相鄰位置可行走,且未曾走過(guò),則返回該位置信息,將當(dāng)前位置切換到下一位
32、置。</p><p><b> ?、攉@取迷宮路徑函數(shù)</b></p><p> 入口:int MazePath(Position start,Position end);</p><p> 出口:return TRUE; return FALSE;</p><p> 實(shí)現(xiàn)功能:若迷宮Maze 中存在從入口 sta
33、rt 到出口 end 的通道,則求得一條存放在棧中realPath(從棧底到棧頂),并返回 TRUE ;否則返回 FALSE 。</p><p><b> 輔助函數(shù)模塊:</b></p><p><b> ?、佥敵雒詫m地圖</b></p><p> 入口:int PrintMap(int **temp);</p&
34、gt;<p> 出口:return TRUE;</p><p> 實(shí)現(xiàn)功能:在主函數(shù)中調(diào)用,傳遞實(shí)參指向迷宮地圖的二維指針,使用 for 循環(huán)嵌套輸出迷宮地圖。</p><p><b> ?、阱e(cuò)誤消息提示</b></p><p> 入口:int errormessage()</p><p> 出口
35、:return TRUE;</p><p> 實(shí)現(xiàn)功能:錯(cuò)誤消息提示</p><p><b> 主函數(shù)模塊:</b></p><p> 入口:int main() </p><p> 出口:return 0;</p><p> 實(shí)現(xiàn)功能:程序執(zhí)行的入口,在主函數(shù)中調(diào)用各個(gè)模塊,實(shí)現(xiàn)程序的
36、運(yùn)行。</p><p> 初始化棧,Path 用于存放探索迷宮時(shí)的全部路徑,realPath 用于存放迷宮入口到出口的有效路徑;初始化游戲參數(shù),對(duì)全局變量map入口、出口位置坐標(biāo)、對(duì)應(yīng)地圖值(為1)進(jìn)行賦值;調(diào)用迷宮地圖輸出函數(shù),輸出迷宮;調(diào)用獲取迷宮路徑函數(shù),若存在一條路徑,則存放到棧realPath ;調(diào)用遍歷棧函數(shù),逆序輸出棧中元素(從棧底到棧頂),即從入口位置到出口位置的一條路徑。return 0; 主
37、函數(shù)結(jié)束,程序運(yùn)行結(jié)束。</p><p><b> 三、詳細(xì)設(shè)計(jì)</b></p><p><b> 1、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> ?。?)程序中定義了迷宮的位置坐標(biāo),結(jié)構(gòu)體類型Position ,包含整型數(shù) x , y 存儲(chǔ)迷宮地圖二維數(shù)組對(duì)應(yīng)的行和列坐標(biāo),整型數(shù) val 用于存儲(chǔ)迷宮地圖的值,如0和1。
38、</p><p> 特別說(shuō)明: val 值是作為迷宮探索時(shí)的重要判斷標(biāo)記,若當(dāng)前位置的四面為墻(0)或已走過(guò),則在切換下一位置的函數(shù)NextPos中所返回val的值為-1。</p><p><b> 詳細(xì)定義如下:</b></p><p> typedef struct </p>
39、;<p> {int x; //二維數(shù)組maze下標(biāo) </p><p><b> int y;</b></p><p> int val; //maze[x][y]的值</p><p> }Position;
40、 //游戲中的位置坐標(biāo)</p><p> 程序中定義了結(jié)構(gòu)體類型MapCfg ,及對(duì)應(yīng)該結(jié)構(gòu)體類型全局變量map,包含上一結(jié)構(gòu)體類型Position變量start, end,即迷宮的起始位置與結(jié)束位置,在調(diào)用探索迷宮函數(shù)時(shí),傳遞實(shí)參起始位置,結(jié)束位置為全局變量直接調(diào)用,從而使得在判斷結(jié)束位置時(shí)更加方便,但需注意的一點(diǎn)是:在調(diào)用之前要給起始、結(jié)束位置坐標(biāo)變量賦
41、初值。</p><p><b> 詳細(xì)定義如下:</b></p><p> typedef struct</p><p> {Position start; //起始位置</p><p> Position end; //結(jié)束位
42、置</p><p><b> }MapCfg;</b></p><p> MapCfg map;</p><p> 程序中定義了迷宮中路徑(單獨(dú)每一通道塊)所存儲(chǔ)的結(jié)構(gòu)體類型,包含當(dāng)前位置坐標(biāo),及從該通道塊走向下一通道塊的“方向”,如:1:東,2:南,3:西,4:北。注:為存儲(chǔ)迷宮路徑的數(shù)據(jù)結(jié)構(gòu)棧的元素類型。</p><
43、;p><b> 詳細(xì)定義如下:</b></p><p> typedef struct</p><p> {Position curpos; //通道塊在迷宮中的位置坐標(biāo)</p><p> int di; //從此通道塊走向下一通道塊的"方向"&
44、lt;/p><p> }SElemType;</p><p> 程序中定義了探索迷宮、和從入口 start 到出口 end 的通道,所存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)棧,為全局變量Path,realPath ,其存儲(chǔ)方式為順序棧,包含指向棧元素類型的棧底base和棧頂top指針,及棧的存儲(chǔ)空間stacksize ,需注意的是:在初始化棧時(shí)要分配給存儲(chǔ)空間初始量,在后續(xù)使用過(guò)程中可為其分配增量,以滿足存儲(chǔ)要求
45、。</p><p><b> 詳細(xì)定義如下:</b></p><p> typedef struct{</p><p> SElemType* base; //棧底指針</p><p> SElemType* top; //棧頂指針&l
46、t;/p><p> int stacksize; //棧的大小</p><p><b> }SqStack;</b></p><p> SqStack realPath; //存放路徑</p><p> SqStack P
47、ath; //探索迷宮</p><p> 2、 算法分析與實(shí)現(xiàn)</p><p> 主要功能模塊的算法設(shè)計(jì)分析。</p><p> int MazePath(Position start,Position end)</p><p> { int **temp = Maze();</p>
48、;<p> SElemType e;</p><p> e.curpos.x = map.start.x; //設(shè)定"當(dāng)前位置"為"入口位置"</p><p> e.curpos.y = map.start.y;</p><p> e.curpos.val = temp[m
49、ap.start.x][map.start.y];</p><p><b> do</b></p><p> {if( UnPass(Path, e) ) //當(dāng)前位置可以通過(guò),即是未曾走過(guò)的通道塊</p><p><b> {</b></p><p> Push(&real
50、Path,e);</p><p> Push(&Path,e);</p><p> e = NextPos(e);</p><p> if(e.curpos.x == map.end.x && e.curpos.y == map.end.y) </p><p> {
51、//到達(dá)終點(diǎn)(出口)</p><p> Push(&realPath,e);</p><p> Push(&Path,e);</p><p> StackTraverse(&Path);</p><p> return TRUE;</p><p><b> }</
52、b></p><p> else if(e.curpos.val == -1)</p><p> {//當(dāng)前位置的四面或?yàn)閴蛞炎哌^(guò)</p><p> Pop(&realPath);//刪除真實(shí)路徑的棧頂元素</p><p> e = GetTop(&realPath);//令e指向棧頂
53、元素</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p> {//如果當(dāng)前位置已經(jīng)走過(guò),說(shuō)明原來(lái)測(cè)試的方向不對(duì),現(xiàn)在嘗試其它方向 </p><p&g
54、t; e = NextPos(e);</p><p> if (e.curpos.val == -1)</p><p> {//仍不通,刪除真實(shí)路徑的棧頂元素</p><p> Pop(&realPath);</p><p> e = GetTop(&realPath);//令cur指向棧頂元素</p&
55、gt;<p><b> }</b></p><p><b> }</b></p><p> }while(e.curpos.x != end.x || e.curpos.y != end.y);</p><p> return FALSE;</p><p><b>
56、 }</b></p><p> 四、運(yùn)行結(jié)果和調(diào)試分析</p><p><b> 程序運(yùn)行結(jié)果圖:</b></p><p> 1.計(jì)算機(jī)“窮舉求解法”,輸出迷宮入口到出口路徑。</p><p> 2.用二維數(shù)組表示迷宮地圖,0 為墻,1 為道路。</p><p> 在程序調(diào)試
57、過(guò)程中遇到變量不能被賦值的問(wèn)題,后來(lái)經(jīng)過(guò)按F5進(jìn)行斷點(diǎn)調(diào)試,根據(jù)錯(cuò)誤提醒,發(fā)現(xiàn)了問(wèn)題所在,得到了及時(shí)的修改。在本程序中對(duì)于迷宮當(dāng)前位置是否走過(guò)的判斷,需要對(duì)存儲(chǔ)所有路徑的realPath 一一訪問(wèn),對(duì)比當(dāng)前位置是否被訪問(wèn)過(guò),追其原因,是由于探索過(guò)程中并沒(méi)有做好該位置已被訪問(wèn)的標(biāo)記,導(dǎo)致每一位置都需重新定位,進(jìn)行判斷,浪費(fèi)了時(shí)間與存儲(chǔ)空間。</p><p> 改進(jìn):在棧元素類型,即迷宮中每一位置,增加flag 標(biāo)
58、記,若已訪問(wèn)則標(biāo)記 -1 ,下次獲得該位置坐標(biāo)后便可得知該位置是否被訪問(wèn)過(guò)的信息。</p><p><b> 五、總結(jié)體會(huì)</b></p><p> 在這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)中,我并沒(méi)有很好的完成所選題目的要求,如圖形化的編程,以及windows 窗口的編程,還有對(duì)于鍵盤操縱游戲者。在設(shè)計(jì)初期,從網(wǎng)上查閱了很多資料,對(duì)于C語(yǔ)言圖形化編程有了一定的了解,但是由于之前并
59、沒(méi)有接觸過(guò),理解不夠深刻,還不能做到熟練應(yīng)用,就自己現(xiàn)在了解到的圖形化編程,有兩個(gè)選擇,windows編程和EasyX吧這個(gè)網(wǎng)站下載grapics.h頭文件和Lib文件,有很多繪圖函數(shù)可用,至于windows編程,感覺(jué)稍有難度,但能做出高質(zhì)量的程序,由于我對(duì)這兩種編程都不是很熟練,最終還是選擇了win32 console Application ,而且覺(jué)得核心與重點(diǎn)在算法與數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),覺(jué)得自己的選擇是正確的,通過(guò)這次編程,對(duì)程序設(shè)計(jì)
60、有了更多的自己的理解,在設(shè)計(jì)程序之前的工作,都是非常重要的,因?yàn)樽鳛榫幊陶咭宄闹雷约涸谧鍪裁?,思路清晰才?huì)順利,而且還有一個(gè)問(wèn)題就是C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)很重要,對(duì)一些概念往往并不是做到了完全的理解,以至于在編程時(shí)錯(cuò)誤百出,覺(jué)得很有必要再重新學(xué)習(xí)一次C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)課本,同時(shí)也認(rèn)識(shí)到了這兩門課程的重要性。在這次課程設(shè)計(jì)中,最大的收獲就是</p><p> 最后,雖然此次課程設(shè)計(jì)結(jié)束了,但并不意味著,程序設(shè)
61、計(jì)結(jié)束,甚至是一個(gè)很好的開(kāi)始,希望自己再接再勵(lì),將程序的每一個(gè)功能完善,做到更好!</p><p><b> 參考文獻(xiàn)</b></p><p><b> 如:</b></p><p> [1]嚴(yán)蔚敏,吳偉民編著.《數(shù)據(jù)結(jié)構(gòu)》(C語(yǔ)言版).清華大學(xué)出版社。</p><p> [2]譚浩強(qiáng)編著.
溫馨提示
- 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ù)結(jié)構(gòu)課程設(shè)計(jì)---走迷宮游戲
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---走迷宮游戲
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-走迷宮
- 迷宮游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——可視化走迷宮游戲
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--flash 迷宮小游戲
- 數(shù)據(jù)結(jié)構(gòu)迷宮課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)迷宮課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---迷宮
- 迷宮問(wèn)題——數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)迷宮問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(迷宮問(wèn)題)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----迷宮求解
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-迷宮求解
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)迷宮問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--迷宮問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-迷宮問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-迷宮求解
- 數(shù)據(jù)結(jié)構(gòu)迷宮問(wèn)題課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—迷宮問(wèn)題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)之迷宮
評(píng)論
0/150
提交評(píng)論