版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 信息科學與工程學院</b></p><p><b> 課程設計任務書</b></p><p> 題目: 迷宮求解課程設計 </p><p> 學 號:
2、 </p><p> 姓 名: </p><p> 專 業: 網絡工程 </p><p> 課 程: 數據結構 </p><p&
3、gt; 指導教師: 職稱: </p><p> 完成時間: 2011 年 12 月----20 11 年 12 月</p><p> 課程設計任務書及成績評定</p><p><b> 目 錄</b></p><p><b> 摘 要
4、2</b></p><p><b> 1引 言3</b></p><p> 2設計目的與任務3</p><p> 2.1設計目的是3</p><p> 2.2設計任務是4</p><p> 3設計方案與實施4</p><p> 3.1總體
5、設計思想4</p><p> 3.2設計流程圖5</p><p><b> 3.3詳細設計6</b></p><p><b> 3.4程序清單6</b></p><p> 3.5程序調試與體會6</p><p> 3.6運行結果(截圖)7</p&g
6、t;<p> 結 論……………………………………………………………………………… ……… 15</p><p><b> 致 謝15</b></p><p><b> 摘 要</b></p><p> 隨著計算機的高速發展,計算機能很簡便地解決很多問題。C語言編程也是解決問題的一種語言。而此
7、我們的數據結構程序設計是解決迷宮問題。求迷宮(老鼠吃奶酪)中從入口到出口的路徑是一個經典的程序設計問題?!皵祿Y構”成為計算機程序設計的重要理論技術基礎,它不僅是計算機學科的核心課程,而且已成為其它理工專業的熱門選修課。主要包括線性表、樹和二叉樹以及圖等基本類型的數據結構。數據結構是一門研究非數值計算的程序設計問題中計算機的操作對象以及它們之間的關系和運算等的學科,包括數據的邏輯結構、數據的存儲結構和數據的運算這三個方面的內容,其中邏輯
8、結構可分為線性結構和非線性結構;存儲結構可分為順序存儲和鏈式存儲兩類,圖則屬于邏輯結構中的非線性結構。廣度優先搜索(BFS)用的隊列一步一步完成的,從而找到的是最短路徑。</p><p> 關鍵詞:隊列,廣度優先,搜索,最短路徑,遍歷</p><p><b> 1引 言</b></p><p> 《數據結構》是計算機科學與技術專業和信息
9、管理與信息系統專業的必修課之一,是一門綜合性的專業基礎課。本課程較系統地介紹了軟件設計中常用的數據結構以及相應的實現算法,如線性表、棧、隊列、樹和二叉樹,圖、檢索和排序等,并對性能進行分析和比較,內容非常豐富。</p><p> 本課程設計我們要解決的問題是圖迷宮求解問題。本需要用到棧的相關數據結構。但我們這個程序沒有用棧,而是用隊列替代棧的功能,使程序運行效率更加高。還用到求迷宮問題最平常的數據結構算法,即廣
10、度優先搜索算法(BFS),還保持了它的路徑,再從串中輸出圖。</p><p> 本課程設計總的思路要解決的問題是構造迷宮,尋找路線,打印路徑。我們首先要做的是創建一個二維數組,用以來存儲圖,然后我們要想好怎樣利用BFS算法來尋找路線。把這個算法以及其他過程寫成調用函數,各自調用后調試程序。達到滿意結果后寫報告。</p><p><b> 2設計目的與任務</b>&
11、lt;/p><p><b> 2.1設計目的是</b></p><p> 根據課堂講授內容,學生做相應的自主練習,消化數據結構課堂所講解的內容;通過調試典型例題或習題積累調試C程序的經驗;通過完成輔導教材中的編程題,逐漸培養學生的編程能力、用計算機解決實際問題的能力、團體合作能力。</p><p><b> 2.2設計任務是<
12、/b></p><p> 它的任務就是訓練學生對計算機數據對象進行分析的能力,選擇適當的數據結構及相關算法的能力。 此程序的任務是實現把能走的最短路找到,并很直觀的顯示在屏幕上的功能。</p><p><b> 3設計方案與實施</b></p><p><b> 3.1總體設計思想</b></p>
13、<p> (1) 迷宮形狀由0表示可通過,用1表示是障礙。為方便用0,1輸入。并把迷宮圖形保存在二維數組Map中。而打印出的圖形中 ‘●’表示能過‘□’表示障礙.</p><p> (2) 對探索過的位置加以標記Used[][],輸入起點終點后可由BFS()來完成搜索。到目的點就可退出該調用程序。把每步路徑保存到Mark[][]內,通過反向進行退步可把完整的路徑保存在結構體result數組re[]
14、[]內,通過標記的路徑可將串str作相應的改變就能輸出的帶路徑的圖。</p><p> (3) 根據二維字符數組和加標記的位置坐標,輸出迷宮的圖形。</p><p> (4) 該程序在獲取迷宮圖結構后,可對迷宮任意入口到出口的路線進行搜索,主要由廣度優先搜索完成該操作。它可以是100以內大小的迷宮,有自行提供的迷宮圖,本課程設計是以二維數組作為迷宮的存儲結構。而廣度優先搜索(BFS)用
15、的隊列一步一步完成的,從而找到的是最短路徑;該程序還能選擇是4方向還是8方向的迷宮走法。并能輸出打印</p><p><b> 3.2設計流程圖</b></p><p><b> 3.3詳細設計</b></p><p> struct Point</p><p> {int x,y,s;}&
16、lt;/p><p> 這個結構體是用來做廣度搜索的對每個迷宮節點有相應的s(最短的步數,當然有些是不可達的)</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)// 廣度搜索用來算出最短路徑
17、的走法 并將走法保存在re數組結構體中</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()// 從文件中植入數據 完成對Map迷宮圖的結構</p><p> int Judge()//判斷輸入的起點終點是否符合實際</p><p> int main()//對上面函數的結
19、合應用</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>// 這個是stl 它是一個方便的東西 </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代表起點 t代表終點</p><p> int mark[100][100]; //用來標記怎么走到這個地方的 (保存的是方向的序號):0,1,2,3,4,5,6,7</p><p> bool Used[100][100];//標記已經走過的地方</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) // 廣度搜索用來算出最短路徑的走法 并將走法保存在re結構體中</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步數:%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("不好意思,起點至終點無路徑不可達!!!!\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> //隊列</b></p><p> int Init()// 從文件中植入數據 完成對Map迷宮圖
58、的結構</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()//判斷輸入的起點終點是否符合實際</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("起點越界,不符合!\n");flag = false;}</p><p> else if(t.x<0||t.x>=n||t.y<0||t.y>=n){printf("終點越界,不符合!\n");flag = false;}</p><p> else if(Map[s.x][s.y]){printf("
63、起點是墻,不符合!\n");flag = false;}</p><p> else if(Map[t.x][t.y]){printf("終點是墻,不符合!\n");flag = false;}</p><p> else if(s.x==t.x&&s.y==t.y){printf("起點是終點,不符合!\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<請按提示操作>\n");</p><p> next:system("pause");</p><p> system("cls");</p><p> printf("是否使用系統提供的迷宮圖:(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("請輸入迷宮的大小:(n*n)");</p><p> scanf("%d",&n);</p><p> printf("\t請輸入迷宮的結構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("請輸入起點與終點:(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("請選擇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("是否繼續(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> /*測試例子</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程序調試與體會</p><p> 調試:經過幾天的努力,課程設計終于完成,由于我對數據結構和c語言不是很了解,有時忽略了一些關鍵的細節,使得在編寫程序的過程中出現了一些問題。對于打字有時粗心導致出現一些難以發現的小錯誤,在我的耐心,細致的調試下最終使得程序能夠運行,課程設計完滿完工。
97、</p><p> 1、問題一:求出起點到終點的路徑 </p><p> 現象:求出的結果總是無任何現象</p><p> 原因:把相關重要的變量重復定義以至賦過的值被覆蓋</p><p> 問題二:常量轉義字符</p><p> 現象:出現不正常字符常量</p><p> 原因:&
98、#39;\'字符常量形式弄錯</p><p> 3、問題三:輸入起點終點時,未判斷下標越界就使用數據</p><p><b> 現象:</b></p><p> 原因:未判斷下標越界就使用數據</p><p> 體會:在復雜的程序,都可以拆成一個個簡單的小部分,逐個擊破,再拼湊起來,在復雜的事也變的簡單了
99、。</p><p> 3.6運行結果(截圖)</p><p> 將程序員錄入后,讓其運行。將會出現一個菜單的界面,執行各種操作均有其對應的代碼。要執行何種操作只需輸入對應的指令即可進行,在每步操作后均會有相應的提示。操作簡單方便實用,下面即為一些操作的示意圖。</p><p> 運行程序后出界面,運行結果如圖所示。</p><p>&l
100、t;b> 結 論</b></p><p> 經過我們不懈的努力我們終于完成了本次課程設計,通過這次課程設計,我感覺到要真正做出一個程序并不很容易,但只要用心去做,總會有收獲,特別是當我遇到 一個問題,想辦法去解決,最后終于找到方法時,心里的那份喜悅之情真是難以形容。編寫程序中遇到問題再所難免,應耐心探究其中的原因,從出現問題的地方起,并聯系前后程序,仔細推敲,逐個排查。直到最終搞清為止。我
101、們本次做的是迷宮求解問題,深刻的體會到它的游戲可玩性。通過本次課程設計我們發現我們對于C++語言和數據結構還有很多地方不了解,今后繼續努力學習。</p><p><b> 致 謝</b></p><p> 在這里我真心的感謝xx老師對我們精心的指導和不倦的教育,他在我們的課程設計過程中提出了指導性的方案和架構,時事關注我們設計的進程,并指引我們閱讀相關的資料和書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據結構課程設計----迷宮求解
- 數據結構課程設計-迷宮求解
- 數據結構課程設計-迷宮求解
- 迷宮求解數據結構課程設計
- 數據結構課程設計報告---迷宮求解
- 《數據結構》課程設計報告迷宮求解
- 數據結構迷宮求解課程設計報告
- 數據結構課程設計---迷宮問題求解
- 數據結構課程設計--求解迷宮問題
- 迷宮求解數據結構課程設計
- 數據結構課程設計報告-迷宮求解
- 迷宮求解數據結構課程設計報告
- 迷宮求解數據結構課程設計報告
- 數據結構與算法----迷宮求解課程設計
- 迷宮問題的求解數據結構課程設計
- 數據結構迷宮課程設計
- 數據結構迷宮課程設計
- 數據結構課程設計---迷宮
- 迷宮問題——數據結構課程設計迷宮問題
- 數據結構課程設計報告-迷宮求解(遞歸與非遞歸)
評論
0/150
提交評論