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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱: 計(jì)算機(jī)技術(shù)基礎(chǔ) </p><p>  系 部: 電氣與信息工程學(xué)院 </p><p>  專業(yè)班級(jí): </p><p>  學(xué) 號(hào):

2、 </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: </p><p>  完成時(shí)間: 2009.10.14 </p><p>  報(bào)告成績(jī):

3、 </p><p><b>  迷宮通路問題</b></p><p><b>  一.設(shè)計(jì)要求</b></p><p>  通過游戲程序設(shè)計(jì),提高編程興趣與編程思路,鞏固C語言中所學(xué)的知識(shí),合理的運(yùn)用資料,實(shí)現(xiàn)理論與實(shí)際相結(jié)合。</p><p> ?。?).收集資料,分析課題,分解問題,形成總體設(shè)計(jì)

4、思路;</p><p> ?。?).深入分析各個(gè)小問題,列出大綱,編寫各部分程序模塊;</p><p> ?。?).對(duì)于設(shè)計(jì)中用到的關(guān)鍵函數(shù),要學(xué)會(huì)通過查資料,弄懂其用法,要聯(lián)系問題進(jìn)行具體介紹;</p><p> ?。?).上機(jī)調(diào)試,查錯(cuò),逐步分析不能正常運(yùn)行的原因,確保所設(shè)計(jì)的程序正確,并且能正常運(yùn)行;</p><p> ?。?).完成課

5、程設(shè)計(jì)報(bào)告,并進(jìn)行答辯。</p><p><b>  二.設(shè)計(jì)目的</b></p><p>  通過游戲程序的設(shè)計(jì)訓(xùn)練和提高學(xué)生的基本技能,掌握字符串的表示方法和字符串函數(shù)的功能、Turbo C圖形操作的基本知識(shí)、鍵盤上特殊鍵的獲取以及圖形方式下光標(biāo)的顯示,提高編程興趣與編程水平,學(xué)會(huì)如何正確的書寫程序設(shè)計(jì)說明文檔,提高運(yùn)用C語言解決實(shí)際問題的能力,鞏固C語言語法規(guī)則

6、的理解和掌握,學(xué)會(huì)通過源程序?qū)懗隽鞒虉D,提高自學(xué)以及查閱資料的能力。</p><p><b>  三.   問題描述</b></p><p>  以一個(gè)m x n的長(zhǎng)方矩陣表示迷宮,1和0分別表示迷宮中的通路和障礙。設(shè)計(jì)一個(gè)程序,對(duì)任意設(shè)定的迷宮,求出從入口到出口的通路,或者沒有通路的結(jié)論。</p><p>  四、

7、0;  需析求分?</p><p>  1、      以二維數(shù)組migong[M][N]表示迷宮,其中migong[0][j]和migong[i][0](0<=j,i<=N)為添加的一圈障礙。數(shù)組中以元素1表示通路,0表示障礙,迷宮的大小理論上可以不限制。</p><p>  2、   

8、   迷宮數(shù)據(jù)由程序提供,用戶只需要進(jìn)行選擇迷宮就行。迷宮的入口和出口由程序提供。</p><p>  3、      若設(shè)定的迷宮存在通路,則以長(zhǎng)方形矩陣的形式將迷宮及其通路輸出到標(biāo)準(zhǔn)終端上,其中“0”表示障礙,“2”表示通過的路徑,“3”表示死胡同,沒有顯示的區(qū)域表示沒有到達(dá)過的地方。</p><p>  4、

9、60;     本程序只求出一條成功的通路。但是只要對(duì)函數(shù)進(jìn)行小量的修改,就可以求出其他全部的路徑。</p><p>  5、      程序執(zhí)行命令為:(1)、創(chuàng)建迷宮;(2)、求解迷宮;(3)、輸出迷宮。</p><p><b>  五、   概要設(shè)計(jì)</b&g

10、t;</p><p>  1、 設(shè)定棧的抽象數(shù)據(jù)類型定義:</p><p><b>  ADT zhan{</b></p><p>  數(shù)據(jù)對(duì)象:D={ai|ai屬于yanshu,i=1、2…n,n>0}</p><p>  數(shù)據(jù)關(guān)系:R={<ai-1,ai>|ai-1,ai屬于D,i=2,3,…n}&

11、lt;/p><p><b>  基本操作:</b></p><p>  gouzhan(*s,*migong)</p><p>  操作結(jié)果:構(gòu)造一個(gè)空棧</p><p>  push(*s,*e)</p><p>  初始條件:棧已經(jīng)存在</p><p>  操作結(jié)果:將e所

12、指向的數(shù)據(jù)加入到棧s中</p><p>  pop(*s,*e)</p><p>  初始條件:棧已經(jīng)存在</p><p>  操作結(jié)果:若棧不為空,用e返回棧頂元素,并刪除棧頂元素</p><p>  getpop(*s,*e)</p><p>  初始條件:棧已經(jīng)存在</p><p>  操

13、作結(jié)果:若棧不為空,用e返回棧頂元素</p><p>  popover(*s)</p><p>  初始條件:棧已經(jīng)存在</p><p>  操作結(jié)果:輸出棧中的所有元素,同時(shí)清空棧</p><p>  stackempty(*s)</p><p>  初始條件:棧已經(jīng)存在</p><p> 

14、 操作結(jié)果:判斷棧是否為空。若棧為空,返回1,否則返回0</p><p>  destroy(*s)</p><p>  初始條件:棧已經(jīng)存在</p><p><b>  操作結(jié)果:銷毀棧s</b></p><p><b>  }ADT zhan</b></p><p>  

15、2、 設(shè)定迷宮的抽象數(shù)據(jù)類型定義</p><p>  ADT yanshu{</p><p>  數(shù)據(jù)對(duì)象:D={ai,j|ai,j屬于{‘ ’、‘0’、‘2’、‘3’},0<=i<=M,0<=j<=N}</p><p>  數(shù)據(jù)關(guān)系:R={ROW,COL}</p><p>  ROW={<ai-1,j,ai,j

16、>|ai-1,j,ai,j屬于D,i=1,2,…M,j=0,1,…N}</p><p>  COL={<ai,j-1,ai,j>|ai,j-1,ai,j屬于D,i=0,1,…M,j=1,2,…N}</p><p><b>  基本操作:</b></p><p>  gouzhaomigong(*migong,m,n)</

17、p><p>  初始條件:二維數(shù)組migong[m][n]已經(jīng)存在,其中第1至第m-1行,每行自第1到第n-1列的元素已經(jīng)值,并以值0表示障礙,值1表示通路。</p><p>  操作結(jié)果:構(gòu)造迷宮的字符數(shù)組,以空白表示通路,字符‘0’表示障礙,并在迷宮四周加上一圈障礙。</p><p>  markprint(*seat)</p><p>  

18、初始條件:迷宮中的所有坐標(biāo)seat都已經(jīng)被賦值</p><p>  操作結(jié)果:若迷宮中該坐標(biāo)能夠通過且已經(jīng)通過,則標(biāo)記為2,若不能夠通過(死胡同),標(biāo)記為3。</p><p>  shuchu(*migong,n)</p><p>  初始條件:迷宮已經(jīng)存在</p><p>  操作結(jié)果:以字符形式輸出迷宮</p><p&

19、gt;  }ADT yanshu</p><p>  3、 本程序包括三個(gè)模塊</p><p><b>  a、 主程序模塊</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  初始化;</b

20、></p><p><b>  構(gòu)造迷宮;</b></p><p><b>  迷宮求解;</b></p><p><b>  迷宮輸出;</b></p><p><b>  }</b></p><p>  b、 棧模塊——實(shí)

21、現(xiàn)棧的抽象數(shù)據(jù)類型</p><p>  c、 迷宮模塊——實(shí)現(xiàn)迷宮的抽象數(shù)據(jù)類型</p><p><b>  六、   詳細(xì)設(shè)計(jì)</b></p><p><b>  1、 坐標(biāo)位置類型</b></p><p>  #define zuobiao int</p>&l

22、t;p>  zuobiao migong[M][N];</p><p><b>  2、 迷宮類型</b></p><p>  typedef struct yanshu</p><p><b>  {</b></p><p>  int xuhao; //序號(hào)</p><

23、p>  zuobiao *seat; //棧元素的坐標(biāo)</p><p>  int fangxiang; //要查找的方向</p><p><b>  }yanshu;</b></p><p><b>  3、 棧類型</b></p><p>  typedef struct zhan<

24、/p><p><b>  {</b></p><p>  yanshu *base; //棧構(gòu)造之前和銷毀之后base的值均為NULL</p><p>  yanshu *top;//棧頂指針</p><p>  int size; //當(dāng)前分陪的存儲(chǔ)空間的長(zhǎng)度,單位:元素</p><p><b

25、>  }zhan;</b></p><p><b>  七、   偽代碼 </b></p><p>  1、     主函數(shù)</p><p>  void main()</p><p><b>  {</b></p&

26、gt;<p><b>  變量的定義;</b></p><p>  gouzhaomigong(migong,M,N); //構(gòu)造一個(gè)迷宮</p><p>  shuchu(migong,M,N); //將該構(gòu)造好的迷宮輸出</p><p>  tansuo(weizhi,&migong[1][1],&migong

27、[M-2][N-2]); //探索迷宮</p><p>  shuchu(migong,M,N); //輸出探索出來的迷宮</p><p><b>  }</b></p><p>  2、     迷宮構(gòu)造</p><p>  void gouzhaomigong(zuobiao

28、migong[M][N],int M,int N)</p><p>  { //該函數(shù)是用來構(gòu)造一個(gè)迷宮,通過更改還能夠構(gòu)造其他類型迷宮</p><p>  定義變量 a,b,c,i,k;</p><p>  i=n/3-1;k=/2;a=k-2;</p><p>  if(k*2==n) b=k;</p><p> 

29、 else b=k+1;</p><p>  for(a=0;a<b;a++)</p><p><b>  {</b></p><p>  for(c=0;c<k;c++)</p><p><b>  {</b></p><p>  migong[a][c]=0;

30、 migong[n-a][c]=0;</p><p>  migong[a][n-c-1]=0; migong[n-a][n-c-1]=0;</p><p>  migong[c][a]=0; migong[c][n-c-1]=0;</p><p>  migong[n-c-1][n-a-1]=0; migong[n-c-1][a]=0;</p>&l

31、t;p><b>  }</b></p><p>  if(a==b-1&&c!=1)</p><p><b>  {</b></p><p>  migong[a][c]=0; migong[a][n-c-1]=0;</p><p>  migong[n-c-1][n-a-1]

32、=0; migong[c][n-a-a]=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  migong[1][i]=1; migong[k-2][i]=1;</p><p>  migong[1][n-i-1]=1; migong[i][k+

33、1]=1;</p><p>  migong[n-2][i]=1; migong[n-i][k+1]=1; migong[n-i][n-2]=1;</p><p><b>  }</b></p><p>  3、     棧的操作</p><p>  zhan *gouzhan(z

34、han *s,zuobiao *migong) //構(gòu)造一個(gè)棧</p><p><b>  {</b></p><p>  s->base=分配一定空間;</p><p>  s->top=s->base;</p><p>  s->top->seat=s->base->seat

35、=migong;</p><p>  s->top->fangxiang=0; s->top->xuhao=0;</p><p><b>  return s;</b></p><p><b>  }</b></p><p>  void push(zhan *s,yansh

36、u *e) //將e所指向的元素加入到棧中</p><p><b>  {</b></p><p><b>  if(空間不足)</b></p><p>  分配連續(xù)空間,給各值賦值;</p><p>  s->top++; s->top->seat=e->seat;<

37、/p><p>  s->top->fangxiang=e->fangxiang+1;</p><p>  s->top->xuhao=e->xuhao;</p><p><b>  }</b></p><p>  yanshu *pop(zhan *s,yanshu *e)//棧不為空,刪

38、除棧頂元素,用e返回</p><p><b>  {</b></p><p>  if(??? retrun NULL;</p><p>  e->seat=s->top-seat; e->seat--;</p><p>  e->fangxiang=s->top->fangxiang

39、;</p><p>  e->xuhao=s->top-xuhao; s->top--; return e;</p><p><b>  }</b></p><p>  yanshu *gettop(zhan *s,yanshu *e)// 用e返回棧頂元素,不刪除</p><p><b> 

40、 {</b></p><p>  if(棧為空) return NULL;</p><p>  e->seat=s->top->seat; e->seat=s-top->seat;</p><p>  e->xuhao=s->top->xuhao; return e;</p><p>

41、;<b>  }</b></p><p>  int stackempty(zhan *s) //判斷棧是否為空</p><p><b>  {</b></p><p>  if(s->top==s->base) return 1;</p><p>  else return 0;<

42、;/p><p><b>  }</b></p><p>  void popover(zhan *s) //輸出棧中的所有元素,同時(shí)清空棧</p><p><b>  {for(;;)</b></p><p><b>  {</b></p><p>  e=

43、pop(s,e);</p><p>  if(s->top-s->base==0) return;</p><p><b>  }</b></p><p><b>  }</b></p><p>  八.系統(tǒng)程序結(jié)構(gòu)及流程圖 不規(guī)范!還要繼續(xù)修改。</p><p>

44、;  4、     求解迷宮中的一條路徑</p><p>  void tansuo(yanshu weizhi,zuobiao *rukou,zuobiao *chukou)</p><p>  { //若迷宮weizhi中存在從rukou到chukou的通道,則求出其中一條</p><p>  定義和初始化所需要的變量;&

45、lt;/p><p>  gouzhan(s,curpos);//</p><p><b>  do{</b></p><p>  if(pass(curpos))//當(dāng)前位置可以通過,即未曾走過的模塊</p><p><b>  {</b></p><p>  e=zuhe(cu

46、rstep,curpos,0);//組合成一個(gè)元素</p><p>  push(s,e);//加入到路徑棧中</p><p>  if(e->seat==chukou) braek; //到達(dá)終端</p><p>  curpos=nestpos1(curpos,0);//下一位置是當(dāng)前位置的東臨位</p><p>  curstep

47、++; //探索下一步</p><p><b>  }</b></p><p><b>  else{</b></p><p>  if(!=stackempty(s))//如果棧不空</p><p>  { e=pop(s,e);</p><p>  while(e-<

48、;fangxiang==4&&!=stackempty(s))</p><p>  { markprint(e->seat);//留下不能通過標(biāo)記,退一步</p><p>  e=pop(s,e);</p><p><b>  }</b></p><p>  if(e->fangxiang&l

49、t;4)</p><p>  { push(s,e); //探索下一方向</p><p>  curpos=nextpos1(e->seat,e->fangxiang);</p><p>  //設(shè)定當(dāng)前位置是新方向上的相鄰模塊</p><p><b>  }</b></p><p>

50、<b>  }</b></p><p>  }while(!stackempty(s));</p><p><b>  return;</b></p><p><b>  }</b></p><p>  5、     迷宮的輸出顯示<

51、;/p><p>  void shuchu(zuobiao migong[M][N],intm,int n)</p><p>  { //給出迷宮的行列數(shù)和首地址,輸出迷宮矩陣</p><p>  for(i=0;i<M;i++)</p><p>  {for(j=0;j<N;j++)</p><p>  i

52、f(migong[i][j]==1) printf(“ “);</p><p>  else printf(“%d”,migong[i][j]);</p><p>  printf(“\n”);</p><p><b>  }</b></p><p><b>  }</b></p>&

53、lt;p>  九、   源代碼(省略)</p><p>  十、   調(diào)試結(jié)果和分析</p><p>  十一.設(shè)計(jì)心得體會(huì) 整篇文檔的字間距應(yīng)整齊一致!</p><p>  課程設(shè)計(jì)使我學(xué)到了很多書本以外的東西,同時(shí)也提高了查閱資料的能力以及解決問題的能力,培養(yǎng)培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題

54、,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。熟練掌握TC集成環(huán)境的使用方法。認(rèn)真編寫實(shí)習(xí)報(bào)告和實(shí)習(xí)總結(jié),描述實(shí)習(xí)操作和心得體會(huì),總結(jié)在這次實(shí)習(xí)中的業(yè)務(wù)收獲,作出自我評(píng)價(jià)。熟練掌握并應(yīng)用TC程序設(shè)計(jì)的各個(gè)知識(shí)點(diǎn)。掌握結(jié)構(gòu)體和指針的聯(lián)合使用,學(xué)會(huì)鏈表的構(gòu)造和常用操作方法,認(rèn)真編寫實(shí)習(xí)日志和實(shí)習(xí)體會(huì)。并通過各種途徑查找所需資料,拓寬視野,培養(yǎng)自學(xué)能力。也懂得了理論與實(shí)際相結(jié)合的重要性,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所

55、學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。</p><p>  在做這次課程設(shè)計(jì)的時(shí)候,遇到這樣那樣的麻煩,因此,我也得到了許多寶貴的經(jīng)驗(yàn):</p>&

56、lt;p>  1、在設(shè)計(jì)程序之前,務(wù)必要對(duì)你所設(shè)計(jì)的題目和內(nèi)容有一個(gè)系統(tǒng)的了解,知道所設(shè)計(jì)的題目和內(nèi)容包含那些資源。</p><p>  2、設(shè)計(jì)程序采用什么編程語言并不是非常重要,關(guān)鍵要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖,因而,要先把設(shè)計(jì)原理與思路搞清楚,再把流程圖畫出來,這樣設(shè)計(jì)起來就簡(jiǎn)單多了。</p><p>  3、在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,“反復(fù)修改

57、,不斷改進(jìn)”是程序設(shè)計(jì)的必經(jīng)之路,發(fā)現(xiàn)錯(cuò)誤也是取得成績(jī)的一種。</p><p>  4、要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便。</p><p>  5、在設(shè)計(jì)程序過程中遇到問題是很正常的,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。</p><p>

58、;  在14天編程的過程當(dāng)中彌補(bǔ)了我許多知識(shí)上的缺陷,弄清楚了我不懂的地方和似是而非的地方,使我及時(shí)補(bǔ)上了欠缺。其次,通過14天綜合實(shí)訓(xùn)編程使我的知識(shí)形成了一個(gè)完整的框架結(jié)構(gòu),而不再是零散的知識(shí)個(gè)體,使我在使用時(shí)更加的方便。在14天的實(shí)習(xí)結(jié)束后,我對(duì)做完的習(xí)題檢查比再是一切的走馬觀花,而是仔細(xì)核對(duì)、認(rèn)真檢查。這也改變了我做題時(shí)心煩氣燥的習(xí)慣,現(xiàn)在做題可以平和靜氣的完成。我的自制能力更強(qiáng)了,基本完全可以控制自己,避免外界的干擾,安心地完成

溫馨提示

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

評(píng)論

0/150

提交評(píng)論