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

下載本文檔

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

文檔簡介

1、<p><b>  C語言課程設計報告</b></p><p>  題目: 迷宮問題 </p><p>  姓名: </p><p>  班級: </p><p>  學號: </p><p>

2、;  組員: </p><p>  指導教師: </p><p>  學院: </p><p>  專業(yè): </p><p>  課程設計(報告)任務及評語</p><p>  院(系):

3、 教研室:</p><p><b>  目 錄</b></p><p>  第1章 課程設計的目的與要求1</p><p>  1.1 課程設計目的1</p><p>  1.2 課程設計的實驗環(huán)境1</p><p>  1.3 課程設

4、計的預備知識1</p><p>  1.4 課程設計要求1</p><p>  第2章 課程設計內(nèi)容2</p><p>  2.1程序功能介紹2</p><p>  2.2程序整體設計說明2</p><p>  2.2.1設計思路2</p><p>  2.2.2數(shù)據(jù)結(jié)構(gòu)設計及用法

5、說明3</p><p>  2.2.3程序結(jié)構(gòu)(流程圖)4</p><p>  2.2.4各模塊的功能及程序說明6</p><p>  2.2.5程序結(jié)果7</p><p>  2.3程序源代碼及注釋7</p><p>  第3章 課程設計總結(jié)17</p><p><b>

6、  參考資料18</b></p><p>  第1章 課程設計的目的與要求</p><p>  1.1 課程設計目的</p><p>  本課程設計是計算機科學與技術專業(yè)重要的實踐性環(huán)節(jié)之一,是在學生學習完《程序設計語言(C)》課程后進行的一次全面的綜合練習。本課程設計的目的和任務: </p><p>  1. 鞏固和加深學

7、生對C語言課程的基本知識的理解和掌握 </p><p>  2. 掌握C語言編程和程序調(diào)試的基本技能 </p><p>  3. 利用C語言進行基本的軟件設計</p><p>  4. 掌握書寫程序設計說明文檔的能力</p><p>  5. 提高運用C語言解決實際問題的能力</p><p>  1.2 課程設計的實驗

8、環(huán)境</p><p>  硬件要求能運行Windows 2000/XP操作系統(tǒng)的微機系統(tǒng)。C語言程序設計及相應的開發(fā)環(huán)境。</p><p>  1.3 課程設計的預備知識</p><p>  熟悉C語言及C語言開發(fā)工具。</p><p>  1.4 課程設計要求</p><p>  1. 分析課程設計題目的要求2.

9、寫出詳細設計說明3. 編寫程序代碼,調(diào)試程序使其能正確運行4. 設計完成的軟件要便于操作和使用5. 設計完成后提交課程設計報告</p><p>  第2章 課程設計內(nèi)容</p><p><b>  2.1程序功能介紹</b></p><p>  迷宮是深受大家喜愛的游戲之一,本課題要求隨機生成一個美觀逼真的迷宮圖,它是隨機生成的且迷宮

10、大小可以改變,迷宮的大小為N*N,N預定義為常數(shù),修改N的值可以改變迷宮的大?。ㄖ灰怀^屏幕顯示范圍),而程序不必做修改。程序采用了兩種運行方式:一種通過自動探索,這是用遞歸方法實現(xiàn);一種是由人工操作探索通過,這利用了手動操作8個代表不同的方向的鍵位來實現(xiàn)。用白色表示可走的路,藍色表示墻壁不可以通過。</p><p>  2.2程序整體設計說明 </p><p><b>  

11、2.2.1設計思路</b></p><p>  一般的迷宮為二維平面圖形,將迷宮的左上角作入口,右下角作出口,求出從入口點到出口點的一條通路,作為線性結(jié)構(gòu)的典型應用,大多用非遞歸方法實現(xiàn),輸出用0代表通路,1代表墻壁。程序采用了一個美觀逼真的迷宮圖,而且是隨機生成,迷宮的大小為N×N,N預定義為常數(shù),修改N的值可以改變迷宮的大小(只要不超過屏幕顯示范圍),而程序不必做修改。用白色表示可走的路

12、,藍色表示墻壁不可以通過。程序還設計了兩種運行方式:</p><p>  一種是由系統(tǒng)自動運行探索,用遞歸方法實現(xiàn);</p><p>  一種是由人工操作探索通路。系統(tǒng)運行首先出現(xiàn)提示字符串“Please select hand(1) else auto”,詢問是選擇人工探索還是系統(tǒng)自動探索,當用戶輸入字符1按回車鍵后出現(xiàn)一個迷宮圖,紅色矩形塊(表示探索物)出現(xiàn)在左上角,這是可以代表4個方

13、向的字符選擇通路,遇到墻壁不能通行,按回車鍵結(jié)束探索,如果這時探索物移動到右下角出口,則顯示找到通路信息,否則顯示沒找到通路信息。在提示信息后,如果輸入的字符不是1,則系統(tǒng)自動查找通路,如果沒有找到通路,則顯示沒有找到通路信息。如果找到通路,則用紅色標記走過的路徑。程序首先要考慮迷宮的表示,這是一個二維關系圖,典型的存貯儲方式是選擇二維數(shù)組,數(shù)組元素的值只有兩種狀態(tài),所以取值為0或1,0表示通路,1表示墻壁,這里取名為map。圖形的顯示

14、就可以根據(jù)數(shù)組元素的值來確定,如果是人工探索,則根據(jù)按鍵來確定探索物的位置坐標,利用循環(huán)語句即可實現(xiàn),如果是系統(tǒng)自動探索,并且在4個方向進行遞歸算法,即可實現(xiàn)尋找路徑。</p><p>  2.2.2數(shù)據(jù)結(jié)構(gòu)設計及用法說明 .</p><p>  用m行n列的m*n個正方格表示一個迷宮,其中劃有斜線的方格表示不可通行,未劃有斜線的方格表示可以通行。請編寫尋找從入口到出口的一條最短路徑的程序

15、。 (1)迷宮的規(guī)格(即行數(shù)與列數(shù)),狀態(tài)設置(即各方格能否通行的狀態(tài)),以及入口和 出口的位置,均應由輸入隨機確定。 (2)求得的最短路徑,應該以從入口到出口的路徑上的各個方格的坐標的線性序列輸出。當無通路時,應該報告無路徑的信息。 (3)盡量采用結(jié)構(gòu)化程序設計方法,要求對各個模塊的功能及參數(shù)作必要的說明提示(1)迷宮可以采用matrix類型的二維數(shù)組A表示。A.rownum與A.colnum分別表示迷宮的實際

16、的行數(shù)與列數(shù)。而A.maze[i][j]表示迷宮中第i行第j列的一個方格,用A.maze[i][j]=0表示該方格可以通行,用A.maze[i][j]=1表示該方格不可以通行。 (2)由于要尋找從入口到出口的一條最短路徑,最好將迷宮看作是一個圖結(jié)構(gòu)。則問題轉(zhuǎn)化為尋找從對應于入口頂點到對應于出口頂點的一條最短路徑的問題。該問題可以采用從入口頂點出發(fā),進行廣度優(yōu)先搜索遍歷,直到遇到出口頂點或者遍歷完畢也沒有遇到出口</p>

17、<p>  2.2.3程序結(jié)構(gòu)(流程圖)</p><p>  程序結(jié)構(gòu)設計流程圖如圖2.1所示</p><p><b>  圖2.1流程圖</b></p><p>  2.2.4各模塊的功能及程序說明 </p><p>  程序用二維數(shù)組表示迷宮   </p><p>

18、;  第一個模塊—主函數(shù)main()的功能是:首先確定是人工還是系統(tǒng)自動探索,通過輸 入字符選定。選定后調(diào)用圖形初始化函數(shù),接著調(diào)用迷宮生成函數(shù)及迷宮顯示函數(shù)。然后根據(jù)輸入的字符調(diào)用人工探索函數(shù)或自動探索函數(shù),探索完畢進行結(jié)果處理,最后關閉圖形系統(tǒng),程序結(jié)束。</p><p>  第二個模塊—初始化函數(shù)Init()的功能是:由于迷宮是在圖形方式下顯示的,所以要進行圖形初始化。</p>

19、<p>  第三個模塊—迷宮生成函數(shù)MapRand()的功能是: 用數(shù)組map表示一個迷宮,要隨機生成迷宮,數(shù)組元素的值利用隨機函數(shù)生成0或1的數(shù)。</p><p>  第四個模塊—迷宮顯示函數(shù)PrMap()的功能:  根據(jù)數(shù)組map的值輸出迷宮圖,利用函數(shù)setfillstyle()設置圖形實體填充樣式bar()函數(shù)輸出矩形塊。數(shù)組元素的下標為矩形塊的中心坐標,利用兩重循環(huán)語句可以完成迷宮

20、圖的顯示。</p><p>  第五個模塊—系統(tǒng)自動5FindWay()的功能:從下標(1,1)開始探索,依次按照右下、下、右、右上、左、左下、左上的順序前進,若該方向上的值為0,則前進一步。</p><p>  第六個模塊—人工探索PeopleFind()的功能:首先輸出迷宮圖以及人工控制操作圖示,紅色探索出現(xiàn)在左上角,采用人工控制8個方向的移動,由于是8個方向,用光標鍵只能控制4個方向

21、,為了統(tǒng)一采用了臨近的8個字符,Q,W,E,A,D,Z,X,C代表8個方向,按了字符后,對應方向不是墻壁,可以將紅色探索物移到相應的位置,按回車表示結(jié)果人工操作。如果此時map數(shù)組元素的坐標是出口,則yes的值為1,探索成功,否則值為0。由于探索物不停的移動,要在新位置顯示,并將走過的路恢復為白色通路,可以調(diào)用DrawPeople(&x,&y,n)完成.參數(shù)x和y代表所在的行坐標和列坐標,n代表所選的方向,根據(jù)n的值,將

22、x和y進行相應的變化.</p><p>  第七個模塊—結(jié)果處理函數(shù)Result(): 最終結(jié)果是找到和沒找到兩種情況,在程序中設計全局變量yes,根據(jù)yes的值進行處理。如果yes為0,調(diào)用函數(shù)NotFind(),顯示找到通路信息,否則調(diào)用函數(shù)Find()。如果是系統(tǒng)自動探索,F(xiàn)ind()會顯示出所走過的路徑,如果是人工探索,沒有記錄走過的路徑,只顯示找到通路的信息。</p><p> 

23、 第八個模塊—圖形關閉函數(shù)Close()的功能: 調(diào)用Closegraph()關閉圖形系統(tǒng),程序結(jié)束。</p><p><b>  2.2.5程序結(jié)果</b></p><p>  程序編譯連接成功后,首先出現(xiàn)提示字符串“please select hard(1) else auto”詢問是選擇人工探索還是選擇系統(tǒng)自動探索,其中1是人工探索。</p>&l

24、t;p><b>  圖2.2結(jié)果</b></p><p>  當輸入字符1時,此時是人工探索。按回車鍵后出現(xiàn)一個迷宮圖,紅色矩形塊出項在左上角,這時可以按代表8個方向的字符選擇通路,若可以找到通路,則走的路都由紅色標記,當遇到墻壁是則不能通行,此時按回車鍵結(jié)束探索,屏幕出現(xiàn)“not find a way”提示信息。如果輸入的字符不是1,則系統(tǒng)自動查找通路。如果沒有找通路,則顯示沒有找到

25、通路的信息“not find a way”,如果找到通路,則用紅色標記走過的路徑,回車后結(jié)束探索。</p><p><b>  圖2.3戲圖片</b></p><p>  找到出路,屏幕顯示Find a way!</p><p>  2.3程序源代碼及注釋</p><p>  #include <graphics.

26、h></p><p>  #include <stdlib.h></p><p>  #include <stdio.h></p><p>  #include <conio.h></p><p>  #include <dos.h></p><p>  #defi

27、ne N 20/*迷宮的大小,可改變*/</p><p>  int oldmap[N][N];/*遞歸用的數(shù)組,用全局變量節(jié)約時間*/</p><p>  int yes=0;/*yes是判斷是否找到路的標志,1找到,0沒找到*/</p><p>  int way[100][2],wayn=0;/*way數(shù)組是顯示路線用的,wayn是統(tǒng)計走了幾個格子*/&

28、lt;/p><p>  void Init(void);/*圖形初始化*/</p><p>  void Close(void);/*圖形關閉*/</p><p>  void DrawPeople(int *x,int *y,int n);/*畫人工探索物圖*/</p><p>  void PeopleFind(int (*x)[N]);/*

29、人工探索*/</p><p>  void WayCopy(int (*x)[N],int (*y)[N]);/*為了8個方向的遞歸,把舊迷宮圖拷貝給新數(shù)組*/</p><p>  int FindWay(int (*x)[N],int i,int j);/*自動探索函數(shù)*/</p><p>  void MapRand(int (*x)[N]);/*隨機生成迷宮

30、函數(shù)*/</p><p>  void PrMap(int (*x)[N]);/*輸出迷宮圖函數(shù)*/</p><p>  void Result(void);/*輸出結(jié)果處理*/</p><p>  void Find(void);/*成功處理*/</p><p>  void NotFind(void);/*失敗處理*/</p>

31、<p>  void main(void)/*主函數(shù)*/</p><p><b>  {</b></p><p>  int map[N][N]; /*迷宮數(shù)組*/</p><p><b>  char ch;</b></p><p><b>  clrscr();</

32、b></p><p>  printf("\n Please select hand(1) else auto\n");/*選擇探索方式*/</p><p>  scanf("%c",&ch);</p><p>  Init(); /*初始化*/</p><p>  MapRand(ma

33、p);/*生成迷宮*/</p><p>  PrMap(map);/*顯示迷宮圖*/</p><p>  if(ch=='1')</p><p>  PeopleFind(map);/*人工探索*/</p><p><b>  else</b></p><p>  FindWay(

34、map,1,1);/*系統(tǒng)自動從下標1,1的地方開始探索*/</p><p>  Result();/*輸出結(jié)果*/</p><p><b>  Close();</b></p><p><b>  }</b></p><p>  void Init(void)/*圖形初始化*/</p>

35、<p><b>  {</b></p><p>  int gd=DETECT,gm;</p><p>  initgraph(&gd,&gm,"c:\\tc");</p><p><b>  }</b></p><p>  void DrawPeo

36、ple(int *x,int *y,int n)/*畫人工控制圖*/</p><p>  {/*如果將以下兩句注釋掉,則顯示人工走過的路徑,*/</p><p>  setfillstyle(SOLID_FILL,WHITE); /*設置白色實體填充樣式*/</p><p>  bar(100+(*y)*15-6,50+(*x)*15-6,100+(*y)*15+

37、6,50+(*x)*15+6);</p><p><b>  /*恢復原通路*/</b></p><p>  switch(n)/*判斷x,y的變化,8個方向的變化*/</p><p><b>  {</b></p><p>  case 1: (*x)--;break; /*上*/</p&g

38、t;<p>  case 2: (*x)--;(*y)++;break ;/*右上*/</p><p>  case 3: (*y)++;break; /*右*/</p><p>  case 4: (*x)++;(*y)++;break; /*右下*/</p><p>  case 5: (*x)++;break; /*下*/</p>

39、<p>  case 6: (*x)++;(*y)--;break; /*左下*/</p><p>  case 7: (*y)--;break; /*左*/</p><p>  case 8: (*x)--;(*y)--;break; /*左上*/</p><p><b>  }</b></p><p>

40、;  setfillstyle(SOLID_FILL,RED);/*新位置顯示探索物*/</p><p>  bar(100+(*y)*15-6,50+(*x)*15-6,100+(*y)*15+6,50+(*x)*15+6);</p><p><b>  }</b></p><p>  void PeopleFind(int (*map)[N

41、])/*人工手動查找*/</p><p><b>  {</b></p><p><b>  int x,y;</b></p><p>  char c=0;/*接收按鍵的變量*/</p><p>  x=y=1;/*人工查找的初始位置*/</p><p>  setcolo

42、r(11);</p><p>  line(500,200,550,200);</p><p>  outtextxy(570,197,"d");</p><p>  line(500,200,450,200);</p><p>  outtextxy(430,197,"a");</p>

43、<p>  line(500,200,500,150);</p><p>  outtextxy(497,130,"w");</p><p>  line(500,200,500,250);</p><p>  outtextxy(497,270,"x");</p><p>  line(50

44、0,200,450,150);</p><p>  outtextxy(445,130,"q");</p><p>  line(500,200,550,150);</p><p>  outtextxy(550,130,"e");</p><p>  line(500,200,450,250);<

45、;/p><p>  outtextxy(445,270,"z");</p><p>  line(500,200,550,250);</p><p>  outtextxy(550,270,"c");/*以上是畫8個方向的控制介紹*/</p><p>  setcolor(YELLOW);</p>

46、;<p>  outtextxy(420,290,"Press 'Enter' to end");/*壓回車鍵結(jié)束*/</p><p>  setfillstyle(SOLID_FILL,RED);</p><p>  bar(100+y*15-6,50+x*15-6,100+y*15+6,50+x*15+6);/*入口位置顯示*/<

47、/p><p>  while(c!=13)/*如果按下的不是回車鍵*/</p><p><b>  {</b></p><p>  c=getch();/*接收字符后開始各個方向的探索*/</p><p>  if(c=='w'&&map[x-1][y]!=1)</p><

48、p>  DrawPeople(&x,&y,1);/*上*/</p><p><b>  else</b></p><p>  if(c=='e'&&map[x-1][y+1]!=1)</p><p>  DrawPeople(&x,&y,2);/*右上*/</p>

49、<p><b>  else</b></p><p>  if(c=='d'&&map[x][y+1]!=1)</p><p>  DrawPeople(&x,&y,3);/*右*/</p><p><b>  else</b></p><p

50、>  if(c=='c'&&map[x+1][y+1]!=1)</p><p>  DrawPeople(&x,&y,4);/*右下*/</p><p><b>  else</b></p><p>  if(c=='x'&&map[x+1][y]!=1)&l

51、t;/p><p>  DrawPeople(&x,&y,5);/*下*/</p><p><b>  else</b></p><p>  if(c=='z'&&map[x+1][y-1]!=1)</p><p>  DrawPeople(&x,&y,6); /

52、*左下*/</p><p><b>  else</b></p><p>  if(c=='a'&&map[x][y-1]!=1)</p><p>  DrawPeople(&x,&y,7); /*左*/</p><p>  else if(c=='q'&a

53、mp;&map[x-1][y-1]!=1)</p><p>  DrawPeople(&x,&y,8); /*左上*/</p><p><b>  }</b></p><p>  setfillstyle(SOLID_FILL,WHITE); /*消去紅色探索物,恢復原迷宮圖*/</p><p>

54、  bar(100+y*15-6,50+x*15-6,100+y*15+6,50+x*15+6);</p><p>  if(x==N-2&&y==N-2)/*人工控制找成功的話*/</p><p>  yes=1; /*如果成功標志為1*/</p><p><b>  }</b></p><p>  v

55、oid WayCopy(int (*oldmap)[N],int (*map)[N])/*拷貝迷宮數(shù)組 */</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<N;i++)</p><p>  for(j=0;

56、j<N;j++)</p><p>  oldmap[i][j]=map[i][j];</p><p><b>  }</b></p><p>  int FindWay(int (*map)[N],int i,int j)/*遞歸找路*/</p><p><b>  {</b></p&g

57、t;<p>  if(i==N-2&&j==N-2)/*走到出口*/</p><p><b>  {</b></p><p>  yes=1;/*標志為1,表示成功*/</p><p><b>  return;</b></p><p><b>  }<

58、/b></p><p>  map[i][j]=1;/*走過的地方變?yōu)?*/</p><p>  WayCopy(oldmap,map); /*拷貝迷宮圖*/</p><p>  if(oldmap[i+1][j+1]==0&&!yes)/*判斷右下方是否可走*/</p><p><b>  {</b&g

59、t;</p><p>  FindWay(oldmap,i+1,j+1);</p><p>  if(yes)/*如果到達出口了,再把值賦給顯示路線的way數(shù)組,也正是這個原因,所以具體路線是從最后開始保存*/</p><p><b>  {</b></p><p>  way[wayn][0]=i;</p>

60、<p>  way[wayn++][1]=j;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  WayCopy(oldmap,map);</p>

61、<p>  if(oldmap[i+1][j]==0&&!yes)/*判斷下方是否可以走,如果標志yes已經(jīng)是1也不用找下去了*/</p><p><b>  {</b></p><p>  FindWay(oldmap,i+1,j);</p><p><b>  if(yes)</b></

62、p><p><b>  {</b></p><p>  way[wayn][0]=i;</p><p>  way[wayn++][1]=j;</p><p><b>  return;</b></p><p><b>  }</b></p>

63、<p><b>  }</b></p><p>  WayCopy(oldmap,map);</p><p>  if(oldmap[i][j+1]==0&&!yes)/*判斷右方是否可以走*/</p><p><b>  {</b></p><p>  FindWay(o

64、ldmap,i,j+1);</p><p><b>  if(yes)</b></p><p><b>  {</b></p><p>  way[wayn][0]=i;</p><p>  way[wayn++][1]=j;</p><p><b>  retur

65、n;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  WayCopy(oldmap,map);</p><p>  if(oldmap[i-1][j]==0&&!yes)/*判斷上方是否可以走*/</p&g

66、t;<p><b>  {</b></p><p>  FindWay(oldmap,i-1,j);</p><p><b>  if(yes)</b></p><p><b>  {</b></p><p>  way[wayn][0]=i;</p>

67、<p>  way[wayn++][1]=j;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  WayCopy(oldmap,map);</p>

68、<p>  if(oldmap[i-1][j+1]==0&&!yes)/*判斷右上方是否可以走*/</p><p><b>  {</b></p><p>  FindWay(oldmap,i-1,j+1);</p><p><b>  if(yes)</b></p><p&g

69、t;<b>  {</b></p><p>  way[wayn][0]=i;</p><p>  way[wayn++][1]=j;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b

70、>  }</b></p><p>  WayCopy(oldmap,map);</p><p>  if(oldmap[i+1][j-1]==0&&!yes)/*判斷左下方是否可以走*/</p><p><b>  {</b></p><p>  FindWay(oldmap,i+1,j

71、-1);</p><p><b>  if(yes)</b></p><p><b>  {</b></p><p>  way[wayn][0]=i;</p><p>  way[wayn++][1]=j;</p><p><b>  return;</b&

72、gt;</p><p><b>  }</b></p><p><b>  }</b></p><p>  WayCopy(oldmap,map);</p><p>  if(oldmap[i][j-1]==0&&!yes)/*判斷左方是否可以走*/</p><p

73、><b>  {</b></p><p>  FindWay(oldmap,i,j-1);</p><p><b>  if(yes)</b></p><p><b>  {</b></p><p>  way[wayn][0]=i;</p><p&g

74、t;  way[wayn++][1]=j;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  WayCopy(oldmap,map);</p><p>

75、  if(oldmap[i-1][j-1]==0&&!yes)/*判斷左上方是否可以走*/</p><p><b>  {</b></p><p>  FindWay(oldmap,i-1,j-1);</p><p><b>  if(yes)</b></p><p><b&g

76、t;  {</b></p><p>  way[wayn][0]=i;</p><p>  way[wayn++][1]=j;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }&l

77、t;/b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  void MapRand(int (*map)[N])/*開始的隨機迷宮圖*/</p><p><b>  {</b></p><

78、;p><b>  int i,j;</b></p><p>  cleardevice();/*清屏*/</p><p>  randomize(); /*隨機數(shù)發(fā)生器*/</p><p>  for(i=0;i<N;i++)</p><p><b>  {</b></p>

79、<p>  for(j=0;j<N;j++)</p><p><b>  {</b></p><p>  if(i==0||i==N-1||j==0||j==N-1)/*最外面一圈為墻壁*/</p><p>  map[i][j]=1;</p><p><b>  else</b>

80、</p><p>  if(i==1&&j==1||i==N-2&&j==N-2)/*出發(fā)點與終點表示為可走的*/</p><p>  map[i][j]=0;</p><p><b>  else</b></p><p>  map[i][j]=random(2);/*其它的隨機生成0或

81、1*/</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void PrMap(int (*map)[N])/*輸出迷宮圖*/</p><p><b> 

82、 {</b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<N;i++)</p><p>  for(j=0;j<N;j++)</p><p>  if(map[i][j]==0)</p><p><b>  {&l

83、t;/b></p><p>  setfillstyle(SOLID_FILL,WHITE);/*白色為可走的路*/</p><p>  bar(100+j*15-6,50+i*15-6,100+j*15+6,50+i*15+6);</p><p><b>  }</b></p><p><b>  el

84、se</b></p><p><b>  {</b></p><p>  setfillstyle(SOLID_FILL,BLUE);/*藍色為墻壁*/</p><p>  bar(100+j*15-6,50+i*15-6,100+j*15+6,50+i*15+6);</p><p><b>  }

85、</b></p><p><b>  }</b></p><p>  void Find(void)/*找到通路*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  setfill

86、style(SOLID_FILL,RED);/*紅色輸出走的具體路線*/</p><p><b>  wayn--;</b></p><p>  for(i=wayn;i>=0;i--)</p><p><b>  {</b></p><p>  bar(100+way[i][1]*15-6,

87、50+way[i][0]*15-6,100+</p><p>  way[i][1]*15+6,50+way[i][0]*15+6);</p><p>  sleep(1);/*控制顯示時間*/</p><p><b>  }</b></p><p>  bar(100+(N-2)*15-6,50+(N-2)*15-6,

88、100+</p><p>  (N-2)*15+6,50+(N-2)*15+6); /*在目標點標紅色*/</p><p>  setcolor(GREEN);</p><p>  settextstyle(0,0,2);/*設置字體大小*/</p><p>  outtextxy(130,400,"Find a way!"

89、;);</p><p><b>  }</b></p><p>  void NotFind(void)/*沒找到通路*/</p><p><b>  {</b></p><p>  setcolor(GREEN);</p><p>  settextstyle(0,0,2)

90、;/*設置字體大小*/</p><p>  outtextxy(130,400,"Not find a way!");</p><p><b>  }</b></p><p>  void Result(void)/*結(jié)果處理*/</p><p><b>  {</b></

91、p><p>  if(yes)/*如果找到*/</p><p><b>  Find();</b></p><p>  else/*沒找到路*/</p><p>  NotFind();</p><p><b>  getch();</b></p><p>

92、;<b>  }</b></p><p>  void Close(void)/*圖形關閉*/</p><p><b>  {</b></p><p>  closegraph();</p><p>  第3章 課程設計總結(jié)</p><p>  通過這段時間的課程設計,我認識

93、到C語言是一門比較難的課程。需要多花時間上機練習。這次的程序訓練培養(yǎng)了我實際分析問課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.回顧起此次C語言課程設計,至今我仍感慨頗多,的確,從課題到定稿,從理論到實踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了上課所學過的知識,而且學到了很多在書本上所沒有學到過的知識

94、。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,彌補了上課所學的知識。 我認為它是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結(jié)協(xié)作的精神。某個人的離群都可能導致整項工作的失

95、敗.只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導致整個</p><p>  這次課程設計不僅可以使我們鞏固了以前所學過的知識,而且讓我們學到了很多在書本上所沒有學到過的知識。在設計的過程中遇到過各種各樣的問題,但是我們沒有放棄,我們借助了老師、同學、網(wǎng)絡的力量終于完成程序,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體……

96、我們收獲很多,感謝老師,感謝領導給我們這次實戰(zhàn)演練的機會,這次程序設計讓我們受益匪淺。</p><p><b>  參考資料</b></p><p>  [1] 劉瑞新,汪遠佂.Visual Basic程序設計教程.機械工業(yè)出版社,2002,223</p><p>  [2] 譚浩強.Visual Basic程序設計案例教程.清華大學出版社,2

97、008,235</p><p>  [3] 管麗娜 ,白海波.實用Visual Basic6 教程 .北京:清華大學出版社,2001,342</p><p>  [4] 段興. Visual Basic數(shù)據(jù)庫實用程序設計100例. 人民郵電出版社,2002,404</p><p>  [5] 王運堅. VISUAL BASIC 6.0 應用指南. 北京: 人民郵電出

98、版社, 1998,235</p><p>  [6] 何炎祥,《程序設計基礎》..出版地:北京 清華大學出版社,2008,239 </p><p>  [7] 王正仲,《21天學會c語言》..出版地:北京 電子工業(yè)出版社,2009,256</p><p>  [8] 許寶文等,李志,《計算機科學叢書》出版地:北京機械工業(yè)出版社,2004,289</p>

99、<p>  [9] 徐波等,《C和C++實務精選》出版地:北京人民郵電出版社,2002,401</p><p>  [10]蘇小紅等.《C語言大學實用教程》.電子工業(yè)出版社.2004.298</p><p>  [11] 蘇小紅等.《C語言大學實用教程習題與實驗指導》.電子工業(yè)出版社.2004.235</p><p>  [12]譚浩強.《C語言程序設計

100、教程》.高等教育出版社.1998.197</p><p>  [13] 崔武子.《C程序設計輔導與實訓》. 清華大學出版社.2004.305</p><p>  [14]魯沐浴《C語言最新編程技巧200例》 電子工業(yè)出版社,1997,296</p><p>  [15]梁翎,李愛齊《C語言程序設計實用技巧與程序?qū)嵗?上??破粘霭嫔纾?996,193</p&

溫馨提示

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

評論

0/150

提交評論