

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 信息科學(xué)與工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 題目: 迷宮求解課程設(shè)計(jì) </p><p> 學(xué) 號(hào):
2、 </p><p> 姓 名: </p><p> 專(zhuān) 業(yè): 網(wǎng)絡(luò)工程 </p><p> 課 程: 數(shù)據(jù)結(jié)構(gòu) </p><p&
3、gt; 指導(dǎo)教師: 職稱(chēng): </p><p> 完成時(shí)間: 2011 年 12 月----20 11 年 12 月</p><p> 課程設(shè)計(jì)任務(wù)書(shū)及成績(jī)?cè)u(píng)定</p><p><b> 目 錄</b></p><p><b> 摘 要
4、2</b></p><p><b> 1引 言3</b></p><p> 2設(shè)計(jì)目的與任務(wù)3</p><p> 2.1設(shè)計(jì)目的是3</p><p> 2.2設(shè)計(jì)任務(wù)是4</p><p> 3設(shè)計(jì)方案與實(shí)施4</p><p> 3.1總體
5、設(shè)計(jì)思想4</p><p> 3.2設(shè)計(jì)流程圖5</p><p><b> 3.3詳細(xì)設(shè)計(jì)6</b></p><p><b> 3.4程序清單6</b></p><p> 3.5程序調(diào)試與體會(huì)6</p><p> 3.6運(yùn)行結(jié)果(截圖)7</p&g
6、t;<p> 結(jié) 論……………………………………………………………………………… ……… 15</p><p><b> 致 謝15</b></p><p><b> 摘 要</b></p><p> 隨著計(jì)算機(jī)的高速發(fā)展,計(jì)算機(jī)能很簡(jiǎn)便地解決很多問(wèn)題。C語(yǔ)言編程也是解決問(wèn)題的一種語(yǔ)言。而此
7、我們的數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)是解決迷宮問(wèn)題。求迷宮(老鼠吃奶酪)中從入口到出口的路徑是一個(gè)經(jīng)典的程序設(shè)計(jì)問(wèn)題。“數(shù)據(jù)結(jié)構(gòu)”成為計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),它不僅是計(jì)算機(jī)學(xué)科的核心課程,而且已成為其它理工專(zhuān)業(yè)的熱門(mén)選修課。主要包括線性表、樹(shù)和二叉樹(shù)以及圖等基本類(lèi)型的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是一門(mén)研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和運(yùn)算等的學(xué)科,包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算這三個(gè)方面的內(nèi)容,其中邏輯
8、結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu);存儲(chǔ)結(jié)構(gòu)可分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩類(lèi),圖則屬于邏輯結(jié)構(gòu)中的非線性結(jié)構(gòu)。廣度優(yōu)先搜索(BFS)用的隊(duì)列一步一步完成的,從而找到的是最短路徑。</p><p> 關(guān)鍵詞:隊(duì)列,廣度優(yōu)先,搜索,最短路徑,遍歷</p><p><b> 1引 言</b></p><p> 《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)和信息
9、管理與信息系統(tǒng)專(zhuān)業(yè)的必修課之一,是一門(mén)綜合性的專(zhuān)業(yè)基礎(chǔ)課。本課程較系統(tǒng)地介紹了軟件設(shè)計(jì)中常用的數(shù)據(jù)結(jié)構(gòu)以及相應(yīng)的實(shí)現(xiàn)算法,如線性表、棧、隊(duì)列、樹(shù)和二叉樹(shù),圖、檢索和排序等,并對(duì)性能進(jìn)行分析和比較,內(nèi)容非常豐富。</p><p> 本課程設(shè)計(jì)我們要解決的問(wèn)題是圖迷宮求解問(wèn)題。本需要用到棧的相關(guān)數(shù)據(jù)結(jié)構(gòu)。但我們這個(gè)程序沒(méi)有用棧,而是用隊(duì)列替代棧的功能,使程序運(yùn)行效率更加高。還用到求迷宮問(wèn)題最平常的數(shù)據(jù)結(jié)構(gòu)算法,即廣
10、度優(yōu)先搜索算法(BFS),還保持了它的路徑,再?gòu)拇休敵鰣D。</p><p> 本課程設(shè)計(jì)總的思路要解決的問(wèn)題是構(gòu)造迷宮,尋找路線,打印路徑。我們首先要做的是創(chuàng)建一個(gè)二維數(shù)組,用以來(lái)存儲(chǔ)圖,然后我們要想好怎樣利用BFS算法來(lái)尋找路線。把這個(gè)算法以及其他過(guò)程寫(xiě)成調(diào)用函數(shù),各自調(diào)用后調(diào)試程序。達(dá)到滿意結(jié)果后寫(xiě)報(bào)告。</p><p><b> 2設(shè)計(jì)目的與任務(wù)</b>&
11、lt;/p><p><b> 2.1設(shè)計(jì)目的是</b></p><p> 根據(jù)課堂講授內(nèi)容,學(xué)生做相應(yīng)的自主練習(xí),消化數(shù)據(jù)結(jié)構(gòu)課堂所講解的內(nèi)容;通過(guò)調(diào)試典型例題或習(xí)題積累調(diào)試C程序的經(jīng)驗(yàn);通過(guò)完成輔導(dǎo)教材中的編程題,逐漸培養(yǎng)學(xué)生的編程能力、用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力、團(tuán)體合作能力。</p><p><b> 2.2設(shè)計(jì)任務(wù)是<
12、/b></p><p> 它的任務(wù)就是訓(xùn)練學(xué)生對(duì)計(jì)算機(jī)數(shù)據(jù)對(duì)象進(jìn)行分析的能力,選擇適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)及相關(guān)算法的能力。 此程序的任務(wù)是實(shí)現(xiàn)把能走的最短路找到,并很直觀的顯示在屏幕上的功能。</p><p><b> 3設(shè)計(jì)方案與實(shí)施</b></p><p><b> 3.1總體設(shè)計(jì)思想</b></p>
13、<p> (1) 迷宮形狀由0表示可通過(guò),用1表示是障礙。為方便用0,1輸入。并把迷宮圖形保存在二維數(shù)組Map中。而打印出的圖形中 ‘●’表示能過(guò)‘□’表示障礙.</p><p> (2) 對(duì)探索過(guò)的位置加以標(biāo)記Used[][],輸入起點(diǎn)終點(diǎn)后可由BFS()來(lái)完成搜索。到目的點(diǎn)就可退出該調(diào)用程序。把每步路徑保存到Mark[][]內(nèi),通過(guò)反向進(jìn)行退步可把完整的路徑保存在結(jié)構(gòu)體result數(shù)組re[]
14、[]內(nèi),通過(guò)標(biāo)記的路徑可將串str作相應(yīng)的改變就能輸出的帶路徑的圖。</p><p> (3) 根據(jù)二維字符數(shù)組和加標(biāo)記的位置坐標(biāo),輸出迷宮的圖形。</p><p> (4) 該程序在獲取迷宮圖結(jié)構(gòu)后,可對(duì)迷宮任意入口到出口的路線進(jìn)行搜索,主要由廣度優(yōu)先搜索完成該操作。它可以是100以?xún)?nèi)大小的迷宮,有自行提供的迷宮圖,本課程設(shè)計(jì)是以二維數(shù)組作為迷宮的存儲(chǔ)結(jié)構(gòu)。而廣度優(yōu)先搜索(BFS)用
15、的隊(duì)列一步一步完成的,從而找到的是最短路徑;該程序還能選擇是4方向還是8方向的迷宮走法。并能輸出打印</p><p><b> 3.2設(shè)計(jì)流程圖</b></p><p><b> 3.3詳細(xì)設(shè)計(jì)</b></p><p> struct Point</p><p> {int x,y,s;}&
16、lt;/p><p> 這個(gè)結(jié)構(gòu)體是用來(lái)做廣度搜索的對(duì)每個(gè)迷宮節(jié)點(diǎn)有相應(yīng)的s(最短的步數(shù),當(dāng)然有些是不可達(dá)的)</p><p> int move[8][2] = {{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}} ;//</p><p> int BFS(int step)// 廣度搜索用來(lái)算出最短路徑
17、的走法 并將走法保存在re數(shù)組結(jié)構(gòu)體中</p><p> int Initialization()// 將str[][]圖形初始化</p><p> int Format_Limit()//圖形打印格式限制</p><p> int Print_Maze_Figure()//打印出圖形</p><p> int PPMF()// 打印
18、出迷宮圖形</p><p> int Save_Path()// 將路徑保存在str[][]中并打印出路徑迷宮圖形</p><p> int Init()// 從文件中植入數(shù)據(jù) 完成對(duì)Map迷宮圖的結(jié)構(gòu)</p><p> int Judge()//判斷輸入的起點(diǎn)終點(diǎn)是否符合實(shí)際</p><p> int main()//對(duì)上面函數(shù)的結(jié)
19、合應(yīng)用</p><p><b> 3.4程序清單</b></p><p> #include <stdlib.h></p><p> #include <iostream></p><p> #include <string></p><p> #in
20、clude <queue>// 這個(gè)是stl 它是一個(gè)方便的東西 </p><p> #include <fstream></p><p> #include <conio.h></p><p> using namespace std;</p><p> struct result</p&g
21、t;<p><b> {</b></p><p> int rx,ry;</p><p> }re[100*100];</p><p> int ri=-1;</p><p> struct Point</p><p><b> {</b></
22、p><p> int x,y,s;</p><p> }s,t;//s代表起點(diǎn) t代表終點(diǎn)</p><p> int mark[100][100]; //用來(lái)標(biāo)記怎么走到這個(gè)地方的 (保存的是方向的序號(hào)):0,1,2,3,4,5,6,7</p><p> bool Used[100][100];//標(biāo)記已經(jīng)走過(guò)的地方</p>
23、<p> bool Map[100][100];//輸入0,1表示迷宮</p><p> int move[8][2] = {{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{1,-1},{-1,1}} ;//</p><p><b> int n,m;</b></p><p> int B
24、FS(int step) // 廣度搜索用來(lái)算出最短路徑的走法 并將走法保存在re結(jié)構(gòu)體中</p><p><b> {</b></p><p> queue<Point> My;</p><p><b> s.s =0;</b></p><p> while(!My.empty
25、())My.pop();</p><p> My.push(s);</p><p> Point temp,s1;</p><p> while(!My.empty())</p><p><b> {</b></p><p> s1 = My.front();</p>&l
26、t;p><b> My.pop();</b></p><p> if(s1.x == t.x&&s1.y==t.y)</p><p><b> {</b></p><p><b> int u;</b></p><p> re[++ri].rx=
27、s1.x;</p><p> re[ri].ry=s1.y;</p><p> printf("到目的地了\n步數(shù):%d\n(%2d,%2d) <- ",s1.s,s1.x,s1.y);</p><p> for(int j = 1 ;j <= s1.s;j++)</p><p><b>
28、{</b></p><p><b> u = s1.x;</b></p><p> s1.x = s1.x - move[ mark[s1.x][s1.y]][0];</p><p> s1.y = s1.y - move[ mark[u][s1.y] ][1];</p><p> re[++ri
29、].rx=s1.x;</p><p> re[ri].ry=s1.y;</p><p> printf("(%2d,%2d) <- ",s1.x,s1.y);</p><p> if((j+1)%5==0)printf("\n");</p><p><b> }</b&g
30、t;</p><p> printf("\n");</p><p> system("pause");</p><p> system("cls");</p><p><b> return 1;</b></p><p><
31、b> }</b></p><p> for(int i =0 ;i < step ; i++)</p><p><b> {</b></p><p> temp.x = s1.x + move[i][0];</p><p> temp.y = s1.y + move[i][1];<
32、/p><p> temp.s = s1.s;</p><p> if(temp.x<0||temp.x>=n||temp.y<0||temp.y>=n||Used[temp.x][temp.y]||Map[temp.x][temp.y])</p><p><b> continue;</b></p>&l
33、t;p><b> else</b></p><p><b> {</b></p><p> mark[temp.x][temp.y] = i;</p><p> temp.s += 1 ;</p><p> My.push(temp);</p><p> U
34、sed[temp.x][temp.y] = true;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("不好意思,起點(diǎn)至終點(diǎn)無(wú)路徑不可達(dá)!!!!\n"
35、);</p><p><b> return 0;</b></p><p><b> }</b></p><p> char str[256*256][3]; //串保存圖</p><p> int Initialization()// 將str[][]圖形初始化</p>&
36、lt;p><b> {</b></p><p> int i1,j1,xj;</p><p> for(i1=0;i1<256*256;i1++)</p><p> strcpy(str[i1]," ");</p><p> for(i1=0;i1<n;i1++)<
37、/p><p><b> {</b></p><p> for(j1=0,xj=0;xj<n;j1=j1+2,xj++)</p><p><b> {</b></p><p> if(Map[i1][xj] == 0)</p><p> strcpy(str[2*i
38、1*(2*n-1)+j1],"●");</p><p><b> else</b></p><p> strcpy(str[2*i1*(2*n-1)+j1],"□");</p><p><b> }</b></p><p><b> }<
39、;/b></p><p><b> return 1;</b></p><p><b> }</b></p><p> int Format_Limit()//圖形打印格式限制</p><p><b> {</b></p><p> fo
40、r(int i =0; i <35-2*n&&(35-2*n)>0;i++)</p><p> printf(" ");</p><p><b> return 1;</b></p><p><b> }</b></p><p> int Pr
41、int_Maze_Figure()//打印出圖形</p><p><b> {</b></p><p> int i,xi,xj;</p><p> Format_Limit();</p><p> for(i =0 ;i <= n*2;i++)</p><p> printf(&
42、quot;□");</p><p> printf("\n");</p><p> for(xi=0,xj=0;xj<((2*n-1)*(2*n-1));xj++,xi++)</p><p><b> {</b></p><p> if(0 == xi)</p>
43、<p><b> {</b></p><p> Format_Limit();</p><p> printf("□");</p><p><b> }</b></p><p> printf("%s",str[xj]);</p>
44、;<p> if(xi==2*n-2)</p><p><b> {</b></p><p> printf("□\n");</p><p><b> xi=-1; </b></p><p><b> }</b></p>
45、<p><b> }</b></p><p> Format_Limit();</p><p> for(i =0 ;i <= n*2 ;i++)</p><p> printf("□");</p><p> printf("\n");</p>
46、;<p><b> return 1;</b></p><p><b> }</b></p><p> int PPMF()// 打印出迷宮圖形</p><p><b> {</b></p><p> printf("\t\t\t\t[迷宮為]
47、\n\t\t\t ●表可走,□表不可走 \n");</p><p> Initialization();</p><p> Print_Maze_Figure();</p><p><b> return 1;</b></p><p><b> }</b></p>&
48、lt;p> int Save_Path()// 將路徑保存在str[][]中并打印出路徑迷宮圖形</p><p><b> {</b></p><p> printf("\t\t\t [迷宮路徑圖]\n(%d,%d)至(%d,%d)\t\t ●表可走,□表不可走 \n",s.x,s.y,t.x,t.y);</p>
49、<p> Initialization();</p><p> strcpy(str[2*s.x*(2*n-1)+2*s.y],"起");</p><p> strcpy(str[2*t.x*(2*n-1)+2*t.y],"終");</p><p> for(int wri=0;wri<ri;wri++
50、)</p><p><b> {</b></p><p> if(re[wri].rx<re[wri+1].rx&&re[wri].ry==re[wri+1].ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)+(2*n-1)+2*re[wri].ry],"↑"
51、;);</p><p> if(re[wri].rx==re[wri+1].rx&&re[wri].ry<re[wri+1].ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)+2*re[wri+1].ry-1],"←");</p><p> if(re[wri].rx>re
52、[wri+1].rx&&re[wri].ry==re[wri+1].ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)-(2*n-1)+2*re[wri].ry],"↓");</p><p> if(re[wri].rx==re[wri+1].rx&&re[wri].ry>re[wri+1]
53、.ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)+2*re[wri].ry-1],"→");</p><p> if(re[wri].rx<re[wri+1].rx&&re[wri].ry<re[wri+1].ry)</p><p> strcpy(str[2*re[wr
54、i].rx*(2*n-1)+(2*n-1)+1+2*re[wri].ry],"↖");</p><p> if(re[wri].rx<re[wri+1].rx&&re[wri].ry>re[wri+1].ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)+(2*n-1)-1+2*re[wri].ry]
55、,"↗");</p><p> if(re[wri].rx>re[wri+1].rx&&re[wri].ry<re[wri+1].ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)-(2*n-2)+2*re[wri].ry],"↙");</p><p>
56、if(re[wri].rx>re[wri+1].rx&&re[wri].ry>re[wri+1].ry)</p><p> strcpy(str[2*re[wri].rx*(2*n-1)-(2*n-1)-1+2*re[wri].ry],"↘");</p><p><b> }</b></p><p
57、> Print_Maze_Figure();</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> //隊(duì)列</b></p><p> int Init()// 從文件中植入數(shù)據(jù) 完成對(duì)Map迷宮圖
58、的結(jié)構(gòu)</p><p><b> {</b></p><p> FILE *pf;int i,j;</p><p> pf = fopen("maze.txt","r");</p><p> if(pf==NULL)return 0;</p><p&
59、gt; fscanf(pf,"%d",&n);</p><p> for(i = 0;i < n; i++)</p><p> for(j = 0 ; j < n; j++)</p><p><b> {</b></p><p> Used[i][j] = false;&
60、lt;/p><p> fscanf(pf,"%d",&Map[i][j]);</p><p><b> }</b></p><p> fclose(pf);</p><p><b> return 1;</b></p><p><b>
61、; }</b></p><p> int Judge()//判斷輸入的起點(diǎn)終點(diǎn)是否符合實(shí)際</p><p><b> {</b></p><p> bool flag = true;</p><p> if(s.x<0||s.x>=n||s.y<0||s.y>=n){prin
62、tf("起點(diǎn)越界,不符合!\n");flag = false;}</p><p> else if(t.x<0||t.x>=n||t.y<0||t.y>=n){printf("終點(diǎn)越界,不符合!\n");flag = false;}</p><p> else if(Map[s.x][s.y]){printf("
63、起點(diǎn)是墻,不符合!\n");flag = false;}</p><p> else if(Map[t.x][t.y]){printf("終點(diǎn)是墻,不符合!\n");flag = false;}</p><p> else if(s.x==t.x&&s.y==t.y){printf("起點(diǎn)是終點(diǎn),不符合!\n");fla
64、g = false;}</p><p><b> if(!flag)</b></p><p> {printf("是則再輸入\\否則退出程序:(Y/N)\n");</p><p> char ch[20];</p><p> scanf("%s",ch);</p&g
65、t;<p> if(ch[0] == 'Y'||ch[0] =='y')return 1;</p><p> else return 0;</p><p><b> }</b></p><p><b> return 2;</b></p><p>
66、;<b> }</b></p><p> int main()</p><p><b> {</b></p><p><b> char ch;</b></p><p> int i,j,step;</p><p> printf("
67、;\t\t\t<請(qǐng)按提示操作>\n");</p><p> next:system("pause");</p><p> system("cls");</p><p> printf("是否使用系統(tǒng)提供的迷宮圖:(Y/N)\n");</p><p> c
68、h = getch();</p><p> if(ch == 'Y'||ch =='y')</p><p><b> Init();</b></p><p><b> else</b></p><p><b> {</b></p&g
69、t;<p> printf("請(qǐng)輸入迷宮的大小:(n*n)");</p><p> scanf("%d",&n);</p><p> printf("\t請(qǐng)輸入迷宮的結(jié)構(gòu)0,1表示0是路1是墻\n");</p><p> for(i = 0;i < n; i++)<
70、/p><p> for(j = 0 ; j < n; j++)</p><p> { Used[i][j] = false;</p><p> scanf("%d",&Map[i][j]);</p><p><b> }</b></p><p><b
71、> }</b></p><p> bool flag=true;</p><p> while(flag)</p><p> {for(i =0 ;i < n;i++)</p><p> for(j =0 ;j < n ;j++)</p><p> Used[i][j] = f
72、alse;</p><p><b> ri = -1;</b></p><p> system("pause");</p><p> system("cls");</p><p> printf("是否顯示原始迷宮:(Y/N)\n");</p>
73、;<p> ch = getch();</p><p> if(ch == 'Y'||ch =='y')</p><p><b> PPMF();</b></p><p> again:printf("請(qǐng)輸入起點(diǎn)與終點(diǎn):(x1 y1 x2 y2)");</p>
74、;<p> scanf("%d %d %d %d",&s.x,&s.y,&t.x,&t.y);</p><p> if(1==Judge())goto again;</p><p><b> else</b></p><p> if(0==Judge())break;&l
75、t;/p><p> printf("請(qǐng)選擇4方向還是8方向的迷宮:");</p><p> scanf("%d",&step);</p><p> if(8==step)step=8;</p><p> else step = 4;</p><p> system(
76、"pause");</p><p> system("cls");</p><p> BFS(step);</p><p> Save_Path();</p><p> printf("是否繼續(xù)(Y/N)\n");</p><p> ch = get
77、ch();</p><p> if(ch != 'Y'&&ch !='y') flag = false;</p><p><b> if(flag)</b></p><p> {printf("是否更換迷宮(Y/N)\n");</p><p>
78、 ch = getch();</p><p> if(ch == 'Y'||ch =='y')</p><p> goto next;}</p><p><b> }</b></p><p><b> return 0;</b></p><
79、p><b> }</b></p><p><b> /*測(cè)試?yán)?lt;/b></p><p><b> 5</b></p><p><b> 0 0 0 0 0</b></p><p><b> 1 1 1 1 0</b>
80、</p><p><b> 0 0 0 0 0</b></p><p><b> 0 1 1 1 1</b></p><p><b> 0 0 0 0 0</b></p><p><b> 0 0 4 4 4</b></p><
81、p><b> 16</b></p><p> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</p><p> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0</p><p> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0</p><p> 0 1 1 1
82、 1 1 1 1 1 1 1 1 1 0 1 0</p><p> 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0</p><p> 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0</p><p> 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1
83、 1 1 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0</p><p> 0 1 0 1 0 0 0 0
84、 0 0 0 0 1 0 1 0</p><p> 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0</p><p> 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0</p><p> 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0</p><p> 0 0 0 0 0 0 0 0 0 0
85、 0 0 0 0 0 0</p><p><b> 0 0 8 6 4</b></p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1</p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0
86、1 0 1</p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1</p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
87、1</p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1</p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1<
88、;/p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1</p><p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1</p&
89、gt;<p> 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</p><p> 0 0 15 15 8</p><p> 0 0 14 0 8</p><p> 0 1 0 1 0 1 0 1</p><p> 1 0 1 0 1 0 1 1</p><p> 1 0 1 1
90、 1 1 1 1</p><p> 1 0 0 0 1 0 1 0</p><p> 0 1 1 1 1 1 0 1</p><p> 1 0 1 1 1 1 1 1</p><p> 0 1 1 1 0 1 0 1</p><p> 1 0 1 0 1 0 1 0</p><p>&
91、lt;b> 0 0 7 9 8</b></p><p> 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0</p><p> 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0</p><p> 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0</p><p> 0 0 0
92、0 0 0 0 0 0 0 0 1 0 1 0 0</p><p> 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1</p><p> 1 1 1 0 1 0 1 0 0 0 0 1 0 1 0 0</p><p> 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0</p><p> 0 0 0 0 0
93、1 0 1 1 1 1 0 1 1 1 0</p><p> 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0</p><p> 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1</p><p> 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0</p><p> 0 0 0 0 1 1 1
94、0 0 0 1 0 0 0 1 0</p><p> 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0</p><p> 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0</p><p> 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0</p><p> 1 1 0 0 0 0 1 0 0
95、0 0 1 0 1 0 0</p><p> 0 11 0 15 4</p><p> 0 11 0 15 8</p><p> 0 2 14 12 4</p><p> 0 2 14 12 8</p><p> 0 0 0 15 4</p><p> 0 0 0 15 8</
96、p><p><b> */</b></p><p> 3.5程序調(diào)試與體會(huì)</p><p> 調(diào)試:經(jīng)過(guò)幾天的努力,課程設(shè)計(jì)終于完成,由于我對(duì)數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言不是很了解,有時(shí)忽略了一些關(guān)鍵的細(xì)節(jié),使得在編寫(xiě)程序的過(guò)程中出現(xiàn)了一些問(wèn)題。對(duì)于打字有時(shí)粗心導(dǎo)致出現(xiàn)一些難以發(fā)現(xiàn)的小錯(cuò)誤,在我的耐心,細(xì)致的調(diào)試下最終使得程序能夠運(yùn)行,課程設(shè)計(jì)完滿完工。
97、</p><p> 1、問(wèn)題一:求出起點(diǎn)到終點(diǎn)的路徑 </p><p> 現(xiàn)象:求出的結(jié)果總是無(wú)任何現(xiàn)象</p><p> 原因:把相關(guān)重要的變量重復(fù)定義以至賦過(guò)的值被覆蓋</p><p> 問(wèn)題二:常量轉(zhuǎn)義字符</p><p> 現(xiàn)象:出現(xiàn)不正常字符常量</p><p> 原因:&
98、#39;\'字符常量形式弄錯(cuò)</p><p> 3、問(wèn)題三:輸入起點(diǎn)終點(diǎn)時(shí),未判斷下標(biāo)越界就使用數(shù)據(jù)</p><p><b> 現(xiàn)象:</b></p><p> 原因:未判斷下標(biāo)越界就使用數(shù)據(jù)</p><p> 體會(huì):在復(fù)雜的程序,都可以拆成一個(gè)個(gè)簡(jiǎn)單的小部分,逐個(gè)擊破,再拼湊起來(lái),在復(fù)雜的事也變的簡(jiǎn)單了
99、。</p><p> 3.6運(yùn)行結(jié)果(截圖)</p><p> 將程序員錄入后,讓其運(yùn)行。將會(huì)出現(xiàn)一個(gè)菜單的界面,執(zhí)行各種操作均有其對(duì)應(yīng)的代碼。要執(zhí)行何種操作只需輸入對(duì)應(yīng)的指令即可進(jìn)行,在每步操作后均會(huì)有相應(yīng)的提示。操作簡(jiǎn)單方便實(shí)用,下面即為一些操作的示意圖。</p><p> 運(yùn)行程序后出界面,運(yùn)行結(jié)果如圖所示。</p><p>&l
100、t;b> 結(jié) 論</b></p><p> 經(jīng)過(guò)我們不懈的努力我們終于完成了本次課程設(shè)計(jì),通過(guò)這次課程設(shè)計(jì),我感覺(jué)到要真正做出一個(gè)程序并不很容易,但只要用心去做,總會(huì)有收獲,特別是當(dāng)我遇到 一個(gè)問(wèn)題,想辦法去解決,最后終于找到方法時(shí),心里的那份喜悅之情真是難以形容。編寫(xiě)程序中遇到問(wèn)題再所難免,應(yīng)耐心探究其中的原因,從出現(xiàn)問(wèn)題的地方起,并聯(lián)系前后程序,仔細(xì)推敲,逐個(gè)排查。直到最終搞清為止。我
101、們本次做的是迷宮求解問(wèn)題,深刻的體會(huì)到它的游戲可玩性。通過(guò)本次課程設(shè)計(jì)我們發(fā)現(xiàn)我們對(duì)于C++語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)還有很多地方不了解,今后繼續(xù)努力學(xué)習(xí)。</p><p><b> 致 謝</b></p><p> 在這里我真心的感謝xx老師對(duì)我們精心的指導(dǎo)和不倦的教育,他在我們的課程設(shè)計(jì)過(guò)程中提出了指導(dǎo)性的方案和架構(gòu),時(shí)事關(guān)注我們?cè)O(shè)計(jì)的進(jìn)程,并指引我們閱讀相關(guān)的資料和書(shū)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(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ì)報(bào)告迷宮求解
- 數(shù)據(jù)結(jié)構(gòu)迷宮求解課程設(shè)計(jì)報(bào)告
- 數(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ì)報(bào)告-迷宮求解
- 迷宮求解數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 迷宮求解數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(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ì)
- 數(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)題)
評(píng)論
0/150
提交評(píng)論