【正文】
了堅實的基礎。我設計的程序經驗在我的工作中起到了至關重要的作用,在這次的畢業(yè)設計中雖然時間緊迫但我學會了很多,希望在日后的努力中能做出更完善的系統(tǒng) 經過上機實踐學習,使我對 C語言有了更進一步的認識和了解,要想學好它要重在實踐,要通過不斷的上機操作才能更好地學習它,通過實踐,我也發(fā)現我的好多不足之處,首先是自己在指法上還不行,經常按錯字母,通過學習也有所改進;再有對 C語言的一些標準庫函數不太了解,還有對函數調用的正確使用 不夠熟悉,還有對 C語言中經常出現的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。 e 參考文獻 [1] 王明福 .C語言程序設計教程 [M].北京 :高等教育出版社 ,2021 [2] 譚浩強 .C語言設計 [M].北京 :清華大學出版社 ,1999 [3] 徐建民等 .C語言程序設計 [M].北京 :電子工業(yè)出版社 ,2021 [4] 李大友 .C語言程序設計 [M].北京 :清華大學出版社 ,1999 [5] 王士元 .C高級實用程序設計 [M].北京 :清華大學出版社 ,1996 [6] 余蘇寧 .C++程序設計 [M].北京 :清華大學出版社 ,2021 [7] Kernighan .,Ritchie .徐保文等譯 .C程序設計語言 [M].北京 :機械工業(yè)出版社 . 附 錄 附錄 A: C語言迷宮的使用說明 開始時, 按數字 1 鍵進入人工控制模式;按 w,s, graphics not initialized(use 39。) a,d分別代表上 ,下 ,左 ,右方向。 按 Q鍵結束程序 附錄 B: 主要代碼 include include include include include define N 22 define M 22 int bg[M][N]。 void drawbg(int[][],int,int,int,int,int)。 void rect(int,int,int,int)。 int len=10。 int x=0,y=0。 int gdriver=DETECT,gmode。 int direc。 /* registerbgidriver(EGAVGA_driver)。gdriver,amp。 */ initgraph(amp。gmode,c:\\turboc2\\bgi)。 setwritemode(XOR_PUT)。 setcolor(GREEN)。 setcolor(BLUE)。 drawbg(bg,M,N,size,0,0)。 x+=len。 drawman(x,y,len)。 outtextxy(60,120,PRESS KEY 1 :YOU ,)。 setcolor(WHITE)。139。q39。 switch(ch){ case 39。: if(j0amp。bg[i][j1]==0){ if(xstep){x=step。}。 case 39。: if(iM1amp。bg[i+1][j]==0){ if(y479step){y+=step。}。 case 39。: if(jN1amp。bg[i][j+1]==0){ if(x639step){x+=step。} } break。w39。amp。i。 default :break。 delay(800)。amp。 setcolor(RED)。 } setcolor(WHITE)。 }/* 人工控制結束 */ else{ /* 電腦控制 */ /* direc表示上一步運動方向 */ /* 并表示下一步運動方向 */ /* 0~3分別表示 西、北、東、南 */ direc=2。 while(iM1||jN1){ delay(80000)。 switch(direc){ case 0: /* 以 3,0,1的次序嘗試 */ if(iM1amp。bg[i+1][j]==0){ y+=step。 direc=3。amp。j。 } else if(i0amp。bg[i1][j]==0){ y=step。 direc=1。j++。 } break。amp。j。 } else if(i0amp。bg[i1][j]==0){ y=step。 direc=1。amp。j++。 } else{ y+=step。 direc=3。 case 2: if(i0amp。bg[i1][j]==0){ y=step。 direc=1。amp。j++。 } else if(iM1amp。bg[i+1][j]==0){ y+=step。 direc=3。j。 } break。amp。j++。 } else if(iM1amp。bg[i+1][j]==0){ y+=step。 direc=3。amp。j。 } else { y=step。 direc=1。 default :break。 } getch()。 }/* 電腦控制結束 */ }/* main()結束 */ /* 繪制小人 */ void drawman(int x,int y,int len){ int r=len/4。 line(x,ylen+2*r,x,y)。 line(x,y,xlen,y+len)。 } /* 繪制迷宮地圖 */ void drawbg(int bg[][N],int a,int b,int size,int x,int y){ int startx=x。 for(i=0。i++){ for(j=0。j++){ if(bg[i][j]==1) rect(x,y,x+size1,y+size1)。 } x=startx。 } rectangle(0,0,size*b,size*a)。line(0,0,0,size)。 line(size*(b1),size*a,size*b,size*a)。 for(i=x0。i++) line(i,y0,i,y1)。 int ran。 /* 初始化迷宮地圖 */ for(i=0。i++) for(j=0。j++) bg[i][j]=1。 i=j=0。 while(1){ bg[i][j]=0。amp。 ran=(int)rand()*4。amp。 direc=3。amp。 direc=0。amp。 direc=1。amp。 direc=2。ia。jb。 if(ran7)bg[i][j]=0。 關鍵詞 : C語言 迷宮 編譯 Abstract Along with science and technology of day by day development, calculator information knowledge drive more and more people cognition and usage, nowadays knowledge explosion of ages calculator nowise the question bee people in mon use of daily tool, to 1 usually usage The person of calculator to say, how use good the software be a very important problem, it to people daily of a lot of operation have very big of help, for a technical personnel, usually e in contact with original code, this have to academic association usage C language, although now majority of software of design is pass other high class language and adoption system integration the software edit and translate, their cores still can not get away from usage C language to set up, therefore, simple maze procedure of realization beneficial with provide a good mode of thinking in laterly of the development the item. Keyword: The C language maze edit and translate 目 錄 摘 要 第一章 c語言迷宮的 系統(tǒng)要求和分析 系統(tǒng)要求 系統(tǒng)要求分析 第二章 c語言迷宮 功能模塊結構 功能模塊劃分 各個模塊的功能 第三章 主要模塊的算法說明 程序總體思路 初始化迷宮數組函數 尋找路徑函數 Path 路徑樹的節(jié)點結構體 第四章 開發(fā)工具的介紹 Turbo C 語言概述 C 語言的特點 Turbo C 概述 Turbo C 的安裝和啟動 總結 致謝 參考文獻 附錄 附錄 A c語言迷宮的使用說明 附 錄 B 主要代碼 第一章、 系統(tǒng)要求和分析 系統(tǒng)要求 1. 隨機產生一個固定大小的迷宮圖(迷宮有唯一的一個入口,一個出口); 2. 用圖形的方式畫出迷宮圖; 3. 根據該迷宮圖作出判斷,迷宮又從入口到出口的路線; 4. 如果有路線的話,找到其中的一條路線,并畫出來; 5. 用窮舉的方法找出所有的路線,找到其中步數最少的路線。 2. 要求 35 可以合并為一個要求,即:判斷迷宮是否有路線,如果有的話要找到步數最少的路線并畫出來。 4. 綜上,程序要求隨機生成一個迷宮,判斷是否有最短路徑,最后將迷宮圖形化輸出。這些函數模塊各成體系,互不干擾,是系統(tǒng)的主要功能模塊。 2. 開始畫面函數 Wele:負責生成開始畫面。 4. 路徑尋找函數 Path:負責尋找已經生成的迷宮的路徑,調用函數TreeCreat 生成第一個節(jié)點,循環(huán)調用函數 TreeGrow 生成整個樹。 路徑搜索樹的生長函數 TreeGrow:負責判斷傳遞給這個函數的節(jié)點在四個方向是否可以生成節(jié)點,如果可以就調用函數 TreeNewPoint 生成新節(jié)點,