c語言迷宮求解課程設(shè)計

c語言迷宮求解課程設(shè)計

ID:9385704

大?。?20.50 KB

頁數(shù):17頁

時間:2018-04-29

c語言迷宮求解課程設(shè)計_第1頁
c語言迷宮求解課程設(shè)計_第2頁
c語言迷宮求解課程設(shè)計_第3頁
c語言迷宮求解課程設(shè)計_第4頁
c語言迷宮求解課程設(shè)計_第5頁
資源描述:

《c語言迷宮求解課程設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、目錄1前言12需求分析22.1課程設(shè)計目的22.2課程設(shè)計任務(wù)22.3設(shè)計環(huán)境22.4開發(fā)語言23分析和設(shè)計23.1模塊設(shè)計23.2系統(tǒng)流程圖33.3主要模塊的流程圖74具體代碼實現(xiàn)115課程設(shè)計總結(jié)225.1程序運行結(jié)果225.2課程設(shè)計體會23參考文獻(xiàn)23致謝23161前言本課程設(shè)計是關(guān)于數(shù)據(jù)結(jié)構(gòu)和棧道的基本操作,使用c語言編程,定義合適的數(shù)據(jù)結(jié)構(gòu),對已經(jīng)學(xué)習(xí)的c語言的指針,數(shù)據(jù)結(jié)構(gòu)和棧道加以了解。對于程序設(shè)計課程的運用和學(xué)習(xí)。2需求分析2.1課程設(shè)計目的學(xué)生在教師指導(dǎo)下運用所學(xué)課程的知識來研究、解決一些具有一定綜合性問題的專業(yè)課題。通過

2、課程設(shè)計(論文),提高學(xué)生綜合運用所學(xué)知識來解決實際問題、使用文獻(xiàn)資料、及進(jìn)行科學(xué)實驗或技術(shù)設(shè)計的初步能力,為畢業(yè)設(shè)計(論文)打基礎(chǔ)。2.2課程設(shè)計任務(wù)給出迷宮的入口和出口及相關(guān)的通路,求出從入口到出口的路徑。要求使用C語言編程,定義合適的數(shù)據(jù)結(jié)構(gòu)。最后,需要說明設(shè)計思想,同時給出能夠運行的源程序,并給出對應(yīng)的程序流程圖2.3設(shè)計環(huán)境(1)WINDOWS2000/2003/XP/7/Vista系統(tǒng)(2)VisualC++或TC集成開發(fā)環(huán)境2.4開發(fā)語言C語言3分析和設(shè)計3.1模塊設(shè)計定義SHU、MG結(jié)構(gòu)體類型,產(chǎn)生記憶效果,以及用線性鏈表來進(jìn)

3、行地圖更改。16typedefstructshuju{intdata;intflag;/*判斷這個位置是否被走過,使其產(chǎn)生記憶效果*/}SHU;typedefstructmaze{intc;intflag;intdirect;intx;inty;structmaze*next;}MG;定義pop()函數(shù),用來進(jìn)行入棧操作。定義way()函數(shù),用來尋找迷宮地圖正確的路徑。/*尋找路徑函數(shù)*/163.2系統(tǒng)流程圖開始定義相關(guān)變量以及結(jié)構(gòu)體數(shù)組給5行5列的迷宮賦值為8的矩陣值為8的矩陣輸出原始矩陣迷宮地圖輸出提示用戶輸入0或1輸入25個后迷宮地圖創(chuàng)

4、建完成刷屏輸出用戶創(chuàng)建地圖的迷宮地圖提示用戶輸入入口坐標(biāo)并接收其值提示用戶輸入出口坐標(biāo)并接收其值判斷是否有入口位置,如沒有要求重新輸入直至合法調(diào)用pop函數(shù)進(jìn)行入棧操作調(diào)用way函數(shù)來進(jìn)行路徑判斷輸出圖結(jié)束圖3.1系統(tǒng)流程圖163.3主要模塊的流程圖定義相關(guān)變量開辟一個MG結(jié)構(gòu)體內(nèi)存單元并賦其值判斷是否為首次定義MGN圖3.2POP入棧流程圖其剛定義的結(jié)構(gòu)體作為返回值返回刷屏并輸出迷宮地圖MG頭指針next指針指向NULLMG頭指針指向其剛定義的結(jié)構(gòu)體MG結(jié)構(gòu)體的next指針指向頭指針YMG頭指針指向其剛定義的結(jié)構(gòu)體16定義相關(guān)變量并相應(yīng)賦值

5、頭指針不為NULLN頭指針標(biāo)記變量為1YN取出頭指針的兩個坐標(biāo)x,yY判斷x,y是否與出口相等YY判斷頭指針的左方向是否為4N頭指針的左方向的值自減Y判斷數(shù)組下標(biāo)是否超過界限Y123416Y判斷下列的值表示為通且標(biāo)量為0234調(diào)用pop函數(shù)入棧判斷數(shù)組下標(biāo)是否超過界限Y判斷下行的值表示為通且標(biāo)量為0NYYY頭指針的下方向的值自減調(diào)用pop函數(shù)入棧判斷頭指針的下方向是否為316判斷頭指針的左方向是否為2NY頭指針的左方向的值自減判斷數(shù)組下標(biāo)是否超過界限Y判斷下列的值表示為通且標(biāo)量為0Y調(diào)用pop函數(shù)入棧判斷頭指針的上方向是否為1N134Y16頭

6、指針的左方向的值自減判斷數(shù)組下標(biāo)是否超過界限判斷下列的值表示為通且標(biāo)量為0調(diào)用pop函數(shù)入棧給標(biāo)記賦1,地圖標(biāo)量賦0,頭指針指向next并清屏輸出判斷路徑的迷宮地圖返回f的值圖3.2way尋找路徑函數(shù)流程圖164具體代碼實現(xiàn)#include#include#include#include#include#include#include#include#defineM5/*規(guī)定迷宮的行數(shù)*/#de

7、fineN5/*規(guī)定迷宮的列數(shù)*/inti=0;typedefstructshuju{intdata;intflag;/*判斷這個位置是否被走過,使其產(chǎn)生記憶效果*/}SHU;typedefstructmaze{intc;intflag;intdirect;intx;inty;structmaze*next;}MG;MG*top,*p;MG*pop(intbb,intxx,intyy,SHUt[M][N])/*入棧操作*/{inti2,j2;i++;p=(MG*)malloc(sizeof(MG));16p->c=bb;p->flag=1;p

8、->direct=4;p->x=xx;p->y=yy;if(i==1){top=p;top->next=NULL;}else{p->next=top;top=p;}

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。