2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱: 數(shù)據(jù)結(jié)構(gòu) </p><p>  報(bào)告題目: 迷宮求解 </p><p>  學(xué)生姓名: XX </p>

2、<p>  所在學(xué)院: 信息科學(xué)與工程 </p><p>  專業(yè)班級(jí): 軟件工程 </p><p>  學(xué)生學(xué)號(hào):XXXXXXXXXXX </p><p>  指導(dǎo)教師: XXX

3、</p><p>  2017 年 12 月 29 日</p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p><b>  摘 要</b></p><p>  本程序主要是求迷宮中從人口到出口的所有路徑是一個(gè)經(jīng)典的程序設(shè)計(jì)問題。計(jì)算機(jī)解迷宮時(shí),通常用的是“窮舉求解”的方法,即從入口出發(fā)

4、,順某一方向向前探索,若能走通,則繼續(xù)往前走;否則沿原路返回,換一個(gè)方向在繼續(xù)探索,直至所有可能的通路都探索完為止。</p><p>  當(dāng)前位置“可通”,則納入“當(dāng)前路徑”,并繼續(xù)朝“下一位置”探索,即切換為“下一位置”為“當(dāng)前位置”,如此重復(fù)直至到達(dá)出口;若當(dāng)前位置“不可通”,則應(yīng)順著“來的方向”退回到“前一通道塊”,若該通道塊的四周4個(gè)方塊均“不可通”則應(yīng)從當(dāng)前路徑刪除該通道塊。所謂“下一位置”指的是“當(dāng)前

5、位置”四周4個(gè)方向(東、南、西、北)上相鄰的方塊。以棧S來記錄“當(dāng)前路徑”,則棧頂中存放的是“當(dāng)前路徑上最后一個(gè)通道塊”。所以即為“當(dāng)前路徑入?!?;“從當(dāng)前路徑上刪除前一通道塊”為“出?!?。</p><p>  在這個(gè)過程中可以輸出迷宮所走通的路徑,在這次課程設(shè)計(jì)中迷宮是由數(shù)組預(yù)先定義好的,不能由用戶定義生成,可以加入隨機(jī)函數(shù),自動(dòng)生成二維數(shù)組,還可以用戶自己輸入迷宮。</p><p> 

6、 關(guān)鍵詞:棧;存儲(chǔ)結(jié)構(gòu);數(shù)組</p><p><b>  目 錄</b></p><p><b>  一、課題分析1</b></p><p><b>  二、需求分析1</b></p><p>  1. 主模塊功能描述1</p><p>  2.

7、 子程序模塊設(shè)計(jì)1</p><p><b>  三、設(shè)計(jì)方案1</b></p><p><b>  1.類設(shè)計(jì)1</b></p><p>  2.程序模塊設(shè)計(jì)2</p><p>  設(shè)計(jì)方案與實(shí)施與總體設(shè)計(jì)思想2</p><p><b>  3. 主模塊

8、3</b></p><p><b>  3.1 子模塊4</b></p><p><b>  3.1 主菜單5</b></p><p>  3.2 功能A模塊5</p><p>  3.3 功能B模塊5</p><p>  3.4 功能C模塊6</

9、p><p><b>  四、詳細(xì)設(shè)計(jì)7</b></p><p>  1.用結(jié)構(gòu)體構(gòu)建棧7</p><p><b>  2.構(gòu)建類7</b></p><p>  3.用數(shù)組構(gòu)建一個(gè)迷宮8</p><p>  4.游戲移動(dòng)控制指令9</p><p>

10、  5.游戲移動(dòng)控制指令四個(gè)方向的實(shí)現(xiàn)10</p><p>  6.游戲移動(dòng)過程中若是未找到通路,需要返回的指令11</p><p>  7.游戲的主循環(huán)11</p><p>  8.游戲的開始于結(jié)束12</p><p>  9.迷宮地圖的查看與通關(guān)后的路徑查詢13</p><p><b>  五、

11、設(shè)計(jì)總結(jié)13</b></p><p><b>  結(jié)論與心得13</b></p><p><b>  五、參考文獻(xiàn)15</b></p><p><b>  一、課題分析</b></p><p> ?。?)該題目為迷宮求解。</p><p&g

12、t; ?。?)此課題是對迷宮問題的求解。包括用數(shù)組生成迷宮,顯示輸出路徑因此,本程序設(shè)計(jì)共需設(shè)計(jì)一個(gè)主程序以及若干個(gè)子程序。</p><p> ?。?)在本課程設(shè)計(jì)程序里,主程序主要是以一個(gè)m×n的長方形表示迷宮,0和1分別表示迷宮中的通路和障礙。設(shè)計(jì)一個(gè)程序,對設(shè)定的迷宮,求出一條從入口到出口的通路,子程序?qū)崿F(xiàn)迷宮地圖的查看和通過迷宮后的路徑查詢。</p><p><b&

13、gt;  二、需求分析</b></p><p>  1. 主模塊功能描述 </p><p>  顯示提示語句提示用用戶選擇輸入執(zhí)行的功能。</p><p>  (1)開始迷宮求解游戲 </p><p><b>  (2)查詢迷宮地圖</b></p><p> ?。?)查詢通過迷宮后的

14、路徑 </p><p>  2. 子程序模塊設(shè)計(jì)</p><p><b> ?。?)迷宮求解游戲</b></p><p><b>  輸入1開始游戲</b></p><p><b> ?。?)查詢迷宮地圖</b></p><p>  在菜單中輸入2查看迷

15、宮求解的地圖</p><p>  (3)查詢通過迷宮后的路徑</p><p><b>  輸入2查詢通關(guān)路徑</b></p><p><b>  三、設(shè)計(jì)方案</b></p><p><b>  1.類設(shè)計(jì)</b></p><p>  構(gòu)建一個(gè)Hiddi

16、ng類,并有私有成員:x坐標(biāo),y坐標(biāo),位置標(biāo)志,初始方向;共有成員:PrintMap打印地圖,GameFunction游戲主循環(huán),Move_up向上移動(dòng),Move_down向下移動(dòng),Move_left向左移動(dòng),Move_right向右移動(dòng),IsGameOver判斷游戲是否結(jié)束,Move_Keys接收移動(dòng)的指令,InDirection相反方向輸出,dir_flage方向標(biāo)志,Hidding::Start()開始游戲等等類,在通過類的實(shí)現(xiàn)來

17、執(zhí)行相應(yīng)的功能,具體代碼如下:</p><p>  class Hidding</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int point_x; //控制運(yùn)動(dòng)的點(diǎn)的x坐標(biāo)</p><p> 

18、 int point_y; //控制運(yùn)動(dòng)的點(diǎn)的y坐標(biāo)</p><p>  int flage; //判斷標(biāo)志</p><p>  int direction; //初始方向</p><p><b>  public:</b></p><p>  Hidding();</p>

19、<p>  int PrintMap(int map[H][H]); //打印地圖</p><p>  int GameFunction(int map[H][H], SqStack &S);//游戲主循環(huán)</p><p>  int Move_up(int map[H][H],SqStack &S); //向上移動(dòng)</p><

20、;p>  int Move_down(int map[H][H], SqStack &S); //向下移動(dòng)</p><p>  int Move_left(int map[H][H], SqStack &S); //向左移動(dòng)</p><p>  int Move_right(int map[H][H], SqStack &S); //向右移動(dòng)<

21、/p><p>  bool IsGameOver(int map[H][H]); //判斷游戲是否結(jié)束</p><p>  int Move_Keys(int key, int map[H][H], SqStack &S); //接收移動(dòng)的指令</p><p>  int InDirection(int key);

22、 //相反方向輸出</p><p>  int dir_flage; //方向標(biāo)志</p><p>  int Out(int map[H][H]);//顯示通關(guān)路徑</p><p>  int Outa(int map[H][H]);</p><p>  int Hidding::menu();//菜單</p>&l

23、t;p>  int Hidding::Start();//開始游戲</p><p><b>  };</b></p><p><b>  2.程序模塊設(shè)計(jì)</b></p><p>  設(shè)計(jì)方案與實(shí)施與總體設(shè)計(jì)思想</p><p>  迷宮形狀由0表示可通過,用1表示障礙。為方便用0,1輸入,2

24、表示起點(diǎn),3表示終點(diǎn)。并把迷宮圖形保存在二維數(shù)組Map中,而打印出的圖形中“□”表示能通過,“■”表示障礙。對探索過的位置加以標(biāo)記“☆”,起點(diǎn)和終點(diǎn)分別由“⊙”,“◎”表示,“★”表示為當(dāng)前目標(biāo)位置。</p><p>  根據(jù)二位字符數(shù)組和加標(biāo)記的位置坐標(biāo),輸出迷宮的圖形。</p><p>  該程序在獲取迷宮圖形結(jié)構(gòu)后,目標(biāo)點(diǎn)從起點(diǎn)開始搜索可通過的路徑,目標(biāo)點(diǎn)通過判斷身邊上下左右四個(gè)位置

25、是否有障礙而選擇前進(jìn)路徑,如果判斷之后遇到?jīng)]有可以通過的方向,將會(huì)退回之前的位置,另行判斷。直至目標(biāo)點(diǎn)找到出口后,輸出通過的路徑,程序結(jié)束。</p><p>  1.2程序設(shè)計(jì)流程圖</p><p>  入口出發(fā),順某一方向向前探索,若能走通,則繼續(xù)往前走;否則沿原路返回,換一個(gè)方向在繼續(xù)探索,直至所有可能的通路都探索完為止。</p><p><b>  

26、3. 主模塊</b></p><p>  若當(dāng)前位置“可通”,則納入“當(dāng)前路徑”,并繼續(xù)朝“下一位置”探索,即切換為“下一位置”為“當(dāng)前位置”,如此重復(fù)直至到達(dá)出口;若當(dāng)前位置“不可通”,則應(yīng)順著“來的方向”退回到“前一通道塊”,然后朝著除“來向”之外的其他方向繼續(xù)探索;若該通道塊的四周4個(gè)方塊均“不可通”則應(yīng)從當(dāng)前路徑刪除該通道塊。所謂“下一位置”指的是“當(dāng)前位置”四周4個(gè)方向(東、南、西、北)上

27、相鄰的方塊。以棧S來記錄“當(dāng)前路徑”,則棧頂中存放的是“當(dāng)前路徑上最后一個(gè)通道塊”。所以即為“當(dāng)前路徑入?!?;“從當(dāng)前路徑上刪除前一通道塊”為“出?!?。</p><p><b>  3.1 子模塊</b></p><p>  3.程序調(diào)試結(jié)果及分析</p><p><b>  3.1 主菜單</b></p>

28、<p>  這是主界面,提示A、B、C各自代表的功能,輸入1或2或3會(huì)跳轉(zhuǎn)到相應(yīng)的功能模塊,輸入1開始游戲,輸入2可查看需要通關(guān)的游戲地圖,輸入3返回。</p><p><b>  3.2 功能A模塊</b></p><p>  當(dāng)從鍵盤輸入1進(jìn)入A功能模塊,此圖是尋找迷宮路徑,游戲會(huì)由電腦自動(dòng)完成,入口出發(fā),順某一方向向前探索,若能走通,則繼續(xù)往前走;否則

29、沿原路返回,換一個(gè)方向在繼續(xù)探索,直至所有可能的通路都探索完為止,若是成功找到路徑,則輸出恭喜過關(guān),并且提示是否查看通關(guān)路徑。</p><p><b>  3.3 功能B模塊</b></p><p>  從鍵盤輸入2查詢迷宮地圖,可顯示游戲需要通關(guān)的迷宮地圖,繼續(xù)輸入1可以開始游戲。</p><p><b>  3.4 功能C模塊&l

30、t;/b></p><p>  游戲的主循環(huán)的類的實(shí)現(xiàn)表示游戲的開始,判斷當(dāng)前位置標(biāo)記是否為3,如果為3,則表示該位置為終點(diǎn),游戲結(jié)束,輸出恭喜過關(guān),提示是否查看通關(guān)路徑,從鍵盤輸入2查詢通關(guān)路徑 </p><p><b>  四、詳細(xì)設(shè)計(jì)</b></p><p><b>  1.用結(jié)構(gòu)體構(gòu)建棧</b></p

31、><p>  通過構(gòu)建的棧實(shí)現(xiàn)迷宮求解時(shí)尋找路徑的數(shù)據(jù)的存放于取出,其關(guān)鍵代碼如下:</p><p>  typedef struct</p><p><b>  {</b></p><p>  SElemType *top; //頂部指針</p><p>  SElemType *bas

32、e; //底部指針</p><p>  int stacksize; //當(dāng)前棧的大小</p><p><b>  }SqStack;</b></p><p><b>  2.構(gòu)建類</b></p><p>  構(gòu)建一個(gè)Hidding類,并有私有成員:x坐標(biāo),y坐標(biāo),位置標(biāo)志,初

33、始方向;共有成員:PrintMap打印地圖,GameFunction游戲主循環(huán),Move_up向上移動(dòng),Move_down向下移動(dòng),Move_left向左移動(dòng),Move_right向右移動(dòng),IsGameOver判斷游戲是否結(jié)束,Move_Keys接收移動(dòng)的指令,InDirection相反方向輸出,dir_flage方向標(biāo)志,Hidding::Start()開始游戲等等類,在通過類的實(shí)現(xiàn)來執(zhí)行相應(yīng)的功能,具體代碼如下:</p>

34、<p>  class Hidding</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int point_x; //控制運(yùn)動(dòng)的點(diǎn)的x坐標(biāo)</p><p>  int point_y; //控制運(yùn)

35、動(dòng)的點(diǎn)的y坐標(biāo)</p><p>  int flage; //判斷標(biāo)志</p><p>  int direction; //初始方向</p><p><b>  public:</b></p><p>  Hidding();</p><p>  int PrintMap

36、(int map[H][H]); //打印地圖</p><p>  int GameFunction(int map[H][H], SqStack &S);//游戲主循環(huán)</p><p>  int Move_up(int map[H][H],SqStack &S); //向上移動(dòng)</p><p>  int Move_down(int

37、 map[H][H], SqStack &S); //向下移動(dòng)</p><p>  int Move_left(int map[H][H], SqStack &S); //向左移動(dòng)</p><p>  int Move_right(int map[H][H], SqStack &S); //向右移動(dòng)</p><p>  bool I

38、sGameOver(int map[H][H]); //判斷游戲是否結(jié)束</p><p>  int Move_Keys(int key, int map[H][H], SqStack &S); //接收移動(dòng)的指令</p><p>  int InDirection(int key); //相反方向輸出</p>

39、<p>  int dir_flage; //方向標(biāo)志</p><p>  int Out(int map[H][H]);//顯示通關(guān)路徑</p><p>  int Outa(int map[H][H]);</p><p>  int Hidding::menu();//菜單</p><p>  int Hidding::Sta

40、rt();//開始游戲</p><p><b>  };</b></p><p>  3.用數(shù)組構(gòu)建一個(gè)迷宮</p><p>  1.迷宮形狀由0表示可通過,用1表示障礙。為方便用0,1輸入,2表示起點(diǎn),3表示終點(diǎn)。并把迷宮圖形保存在二維數(shù)組Map中,而打印出的圖形中“□”表示能通過,“■”表示障礙。對探索過的位置加以標(biāo)記“☆”,起點(diǎn)和終點(diǎn)分別

41、由“⊙”,“◎”表示,“★”表示為當(dāng)前目標(biāo)位置,其關(guān)鍵代碼如下:</p><p>  int map[H][H] =</p><p><b>  {</b></p><p>  1,1,1,1,1,1,1,1,1,1, //(9,0) (9,9)</p><p>  1,0,0,0,0,0,1,0,0,1,<

42、/p><p>  1,0,1,1,0,0,1,0,0,1,</p><p>  1,0,0,1,1,0,1,0,1,1,</p><p>  1,1,0,0,1,0,0,0,1,1,</p><p>  1,1,0,1,1,1,1,0,0,1,</p><p>  1,1,0,1,1,1,1,1,0,1,</p>

43、;<p>  1,0,0,1,1,1,1,1,0,1,</p><p>  1,2,1,1,1,1,1,1,3,1,</p><p>  1,1,1,1,1,1,1,1,1,1 //(0,0) (0,9)</p><p><b>  };</b></p><p>  2.打印出的圖形中“□”表示能通

44、過,“■”表示障礙。對探索過的位置加以標(biāo)記“☆”,起點(diǎn)和終點(diǎn)分別由“⊙”,“◎”表示,“★”表示為當(dāng)前目標(biāo)位置,其關(guān)鍵代碼如下:</p><p>  int Hidding::PrintMap(int map[H][H])</p><p><b>  {</b></p><p>  for (int i = 0; i < H; i++)&

45、lt;/p><p><b>  {</b></p><p>  for (int j = 0; j < H; j++)</p><p><b>  {</b></p><p>  switch (map[i][j])</p><p><b>  {</b&g

46、t;</p><p><b>  case 0:</b></p><p>  cout << "□";</p><p><b>  break;</b></p><p>  case 1: //墻</p><p> 

47、 cout << "■";</p><p><b>  break;</b></p><p>  case 2: //起點(diǎn)</p><p>  cout << "⊙";</p><p><b>  break;</

48、b></p><p>  case 3: //終點(diǎn)</p><p>  cout << "◎";</p><p><b>  break;</b></p><p>  case 7: //走過的路徑</p><

49、p>  cout << "☆";</p><p><b>  break;</b></p><p><b>  case 9:</b></p><p>  cout << "★"; </p><p><b>  brea

50、k;</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  c

51、out << endl;</p><p><b>  }</b></p><p><b>  return 0;</b></p><p>  }//PrintMap</p><p>  4.游戲移動(dòng)控制指令</p><p>  構(gòu)建一個(gè)棧,用Key控制移動(dòng),上移指

52、令Key=8,下移指令Key=5,左移指令Key=4,右移指令Key=6,其關(guān)鍵代碼如下: </p><p>  int Hidding::Move_Keys(int key,int map[H][H], SqStack &S)</p><p><b>  {</b></p><p>  switch (key)</p>

53、;<p><b>  {</b></p><p><b>  case 8:</b></p><p>  Move_up(map,S);</p><p><b>  break;</b></p><p><b>  case 4:</b>&l

54、t;/p><p>  Move_left(map,S);</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  Move_right(map,S);</p><p><b>  break;</b

55、></p><p><b>  case 5:</b></p><p>  Move_down(map,S);</p><p><b>  break;</b></p><p><b>  default:</b></p><p><b>

56、;  break;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p>  }//Move_Keys</p><p>  5.游戲移動(dòng)控制指令四個(gè)方向的實(shí)現(xiàn)</p><p>  以向上移動(dòng)指令的實(shí)

57、現(xiàn)為例,判斷是否是走過的路徑,若是則x-1當(dāng)前位置標(biāo)記為0;判斷前方是否可行,若是x-1,當(dāng)前位置標(biāo)記為7,(7為走過的路徑),并且入棧執(zhí)行一次;若前方數(shù)組值為1,表示不能通過,繼續(xù)判斷其他方向是否可以通過,如map[point_x][point_y - 1] == 0則表示左側(cè)可以通過,direction=4,移動(dòng)方向?yàn)樽螅霔R淮?,其他方向的移?dòng)指令大致相同,都是先判斷,在通過入棧實(shí)現(xiàn)移動(dòng)游戲移動(dòng)過程中若是未找到通路,需要返回,則執(zhí)

58、行InDirection反方向移動(dòng)指令。</p><p><b>  其關(guān)鍵代碼如下:</b></p><p>  int Hidding::Move_up(int map[H][H],SqStack &S)</p><p><b>  {</b></p><p>  if (map[poi

59、nt_x - 1][point_y] == 7)</p><p><b>  {</b></p><p>  map[point_x][point_y] = 0;</p><p>  point_x -= 1;</p><p><b>  }</b></p><p>  el

60、se if ((map[point_x - 1][point_y] == 0 && direction != 5) || map[point_x - 1][point_y] == 3) //如果前方可行</p><p><b>  {</b></p><p>  map[point_x][point_y] = 7;</p>&

61、lt;p>  point_x -= 1;</p><p>  Push(S, direction);</p><p><b>  }</b></p><p>  if (map[point_x - 1][point_y] == 1)</p><p><b>  {</b></p>

62、<p>  if (map[point_x][point_y - 1] == 0)</p><p><b>  {</b></p><p>  direction = 4;</p><p>  Push(S, direction);</p><p><b>  }</b></p&g

63、t;<p>  else if (map[point_x][point_y + 1] == 0)</p><p><b>  {</b></p><p>  direction = 6;</p><p>  Push(S, direction);</p><p><b>  }</b>

64、</p><p><b>  else</b></p><p><b>  {</b></p><p>  dir_flage = Pop(S);</p><p>  InDirection(dir_flage);</p><p>  map[point_x][point_y

65、] = 0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p>  }//Move_up</p><p>  6.游戲移動(dòng)過程中若是未找到通路,需要返回

66、的指令</p><p>  判斷上一步執(zhí)行的指令Key,在執(zhí)行放方向移動(dòng)的指令,具體代碼如下:</p><p>  int Hidding::InDirection(int key)</p><p><b>  {</b></p><p>  switch (key)</p><p><b&

67、gt;  {</b></p><p><b>  case 8:</b></p><p>  direction = 5;</p><p><b>  break;</b></p><p><b>  case 4: </b></p><p>

68、;  direction = 6;</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  direction = 8;</p><p><b>  break; </b></p><

69、p><b>  case 6: </b></p><p>  direction = 4;</p><p><b>  break; </b></p><p><b>  default:</b></p><p><b>  break;</b>

70、</p><p><b>  }</b></p><p><b>  return 0;</b></p><p>  }//InDirection</p><p><b>  7.游戲的主循環(huán)</b></p><p>  用一個(gè)sleep函數(shù)控制游戲的速

71、度,具體代碼如下:</p><p>  int Hidding::GameFunction(int map[H][H], SqStack &S)</p><p><b>  {</b></p><p>  Sleep(100);</p><p>  PrintMap(map);</p><p

72、>  system("cls");</p><p>  while (!IsGameOver(map))</p><p><b>  {</b></p><p>  map[point_x][point_y] = 9;</p><p>  PrintMap(map);</p>&l

73、t;p>  Move_Keys(direction, map,S);</p><p>  cout<<"方向:";</p><p>  switch(direction)</p><p><b>  {</b></p><p><b>  case 8:</b>

74、</p><p>  cout << "上" << endl;</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  cout<<"下";</p>

75、;<p><b>  break;</b></p><p><b>  case 6:</b></p><p>  cout<<"右";</p><p><b>  break;</b></p><p><b>  cas

76、e 4:</b></p><p>  cout<<"左";</p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout << direction << endl;</

77、p><p>  system("cls");</p><p>  Sleep(100);</p><p><b>  }</b></p><p><b>  return 0;</b></p><p>  }//GameFunction</p>

78、<p>  8.游戲的開始于結(jié)束</p><p>  游戲的主循環(huán)的類的實(shí)現(xiàn)表示游戲的開始,判斷當(dāng)前位置標(biāo)記是否為3,如果為3,則表示該位置為終點(diǎn),游戲結(jié)束,輸出恭喜過關(guān),提示是否查看通關(guān)路徑,具體代碼如下:</p><p>  int Hidding::Start()</p><p><b>  {</b></p>

79、<p>  hid.GameFunction(map,S1);</p><p>  if (hid.IsGameOver(map)</p><p>  cout << "恭喜過關(guān)!" << endl;</p><p>  cout<<"輸入2顯示通關(guān)路徑。"<<end

80、l;</p><p><b>  }</b></p><p>  bool Hidding::IsGameOver(int map[H][H])</p><p><b>  {</b></p><p>  if (map[point_x][point_y] == 3) //3表示終點(diǎn)

81、</p><p>  return true;</p><p><b>  else</b></p><p>  return false;</p><p>  }//IsGameOver</p><p>  9.迷宮地圖的查看與通關(guān)后的路徑查詢</p><p>  開始游

82、戲前可以查看迷宮的地圖,在開始游戲?qū)ふ业酵P(guān)路徑后可以查看對應(yīng)的路徑,用for循環(huán)實(shí)現(xiàn)二維數(shù)組的讀出,相應(yīng)的通關(guān)路徑會(huì)以☆符合標(biāo)記出來,具體代碼如下:</p><p>  for(int i=1;i<=H;i++)</p><p>  for(int j=1;j<=H;j++)</p><p>  if(map[i][j]=0)</p>&

83、lt;p>  cout<<map[i][j];</p><p><b>  五、設(shè)計(jì)總結(jié) </b></p><p><b>  結(jié)論與心得</b></p><p>  本次課程設(shè)計(jì)題目為迷宮求解,通過該題目的設(shè)計(jì)過程,我們小組加深了對棧的邏輯結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)及入棧出棧過程的理解,對棧的基本運(yùn)算的實(shí)現(xiàn)有所掌握

84、,對課本中所學(xué)的各種數(shù)據(jù)結(jié)構(gòu)進(jìn)一步理解和掌握,學(xué)會(huì)了如何把學(xué)到的知識(shí)用于解決實(shí)際問題,鍛煉了自己動(dòng)手的能力。</p><p>  本次課程設(shè)計(jì),使我們對數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)方法、步驟、思路,有一定的了解和認(rèn)識(shí),它相當(dāng)于實(shí)際設(shè)計(jì)工作的模擬。在課程設(shè)計(jì)過程中,基本能按照規(guī)定的程序進(jìn)行,先針對表達(dá)式算法為背景,建立系統(tǒng)模型:收集、調(diào)查有關(guān)資料,共同與老師和同學(xué)進(jìn)行討論、修改、再討論、再修改,最后確定方案。 </

85、p><p>  一個(gè)人要完成所有的工作是非常困難和耗時(shí)的,我們小組都是分工合作,這樣既鍛煉了每個(gè)人,又學(xué)到了很多的知識(shí)。在以后的學(xué)習(xí)中我會(huì)更加注意各個(gè)方面的能力的協(xié)調(diào)發(fā)展。在課程設(shè)計(jì)時(shí)遇到了很多的問題,在老師的幫助,和對各種資料的查閱中,將問題解決,培養(yǎng)了自主動(dòng)手,獨(dú)立研究的能力,為今后在學(xué)習(xí)工作中能更好的發(fā)展打下了堅(jiān)實(shí)的基礎(chǔ)。 兩周的課程設(shè)計(jì)很短暫,但其間的內(nèi)容是很充實(shí)的,在其中我學(xué)習(xí)到了很多平時(shí)書本中無

86、法學(xué)到的東西,積累了經(jīng)驗(yàn),鍛煉了自己分析問題,解決問題的能力,并學(xué)會(huì)了如何將所學(xué)的各課知識(shí)融會(huì),組織,來配合學(xué)習(xí),兩周中我們小組收益很大,學(xué)到很多。</p><p><b>  心得體會(huì):</b></p><p>  通過此次課程設(shè)計(jì),使我更加了解了數(shù)據(jù)結(jié)構(gòu)著方面的知識(shí),在設(shè)計(jì)的過程中遇到了一些很難的問題,經(jīng)過一遍一遍地思考,與同學(xué)和老師的交流中找到了問題原因的所在,

87、也知道了自己在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。通過這次的課程設(shè)計(jì),獲得了很多寶貴的經(jīng)驗(yàn),特別是怎么樣通過理論與實(shí)踐相結(jié)合,把書本上的內(nèi)容應(yīng)用到我們做的程序上去。學(xué)會(huì)了調(diào)試程序的一般方法,知道了如何在困難重重中一步一步發(fā)現(xiàn)問題,解決問題。    </p><p><b>  五、參考文獻(xiàn)</b></p><p>  [1] 鄭莉,董淵,何江舟.

88、C++語言程序設(shè)計(jì)(第4版)[M].北京:清華大學(xué)出版社,2010:123—145</p><p>  [2] 蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社(范素珍 白立軍),2007:142—160</p><p>  [3] 呂鳳翥.C++語言程序設(shè)計(jì)(第3版)[M].北京:電子工業(yè)出版社,2009:151—175</p><p>  [4]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論