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

下載本文檔

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

文檔簡介

1、<p><b>  本科生課程設(shè)計論文</b></p><p>  題 目:C++課程設(shè)計</p><p>  -------圖的遍歷</p><p><b>  學(xué)生姓名: </b></p><p><b>  學(xué) 號: </b></p>

2、<p>  專 業(yè):計算機(jī)10級</p><p>  班 級:(4)班</p><p><b>  指導(dǎo)教師:</b></p><p>  2012年6月18日~2011年7月4日</p><p><b>  課程設(shè)計任務(wù)書</b></p><p>&l

3、t;b>  一、前言</b></p><p>  1.1課程設(shè)計的目的與意義………………………………………………4</p><p>  1.2對課程設(shè)計功能的需求分析…………………………………………4</p><p>  二、算法思想…………………………………………………………………5</p><p>  三、數(shù)據(jù)結(jié)構(gòu)………

4、…………………………………………………………5</p><p>  四、模塊劃分…………………………………………………………………6</p><p>  node* creategraph()//建立鄰接表,完成無向圖的輸入</p><p>  void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p>

5、;  void BreadthFirstSearth(node *list)//廣度優(yōu)先搜索</p><p>  void PathSearth(node *list)//路徑搜索</p><p>  void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p>  AdjacencyListDelete(list);

6、//釋放鄰接表空間</p><p><b>  五、系統(tǒng)的概要設(shè)計</b></p><p>  1、系統(tǒng)功能模塊圖…………………………………………………………9</p><p>  六、源程序……………………………………………………………………10</p><p>  七、程序的調(diào)試分析以及測試結(jié)果</p>

7、<p>  1、程序的調(diào)試測試結(jié)果…………………………………………………………20</p><p><b>  八、附錄</b></p><p><b>  1、附錄一</b></p><p>  心得……………………………………………………………………………21</p><p>  2

8、、參考文獻(xiàn)…………………………………………………………………22</p><p><b>  一、前言</b></p><p>  1.1課程設(shè)計的目的與意義</p><p>  上學(xué)期我們對《數(shù)據(jù)結(jié)構(gòu)》這門課程進(jìn)行了學(xué)習(xí)。這門課程是一門實(shí)踐性非常強(qiáng)的課程,為了讓大家更好地理解與運(yùn)用所學(xué)知識,提高動手能力,我們進(jìn)行了此次課程設(shè)計實(shí)習(xí)。這次課程設(shè)

9、計不但要求我們掌握《數(shù)據(jù)結(jié)構(gòu)》中的各方面知識,還要求我們具備一定的C++語言基礎(chǔ)和編程能力。</p><p>  通過實(shí)踐我們掌握《數(shù)據(jù)結(jié)構(gòu)》中的知識。對于《圖的遍歷》這一課題來說,所要求我們掌握的數(shù)據(jù)結(jié)構(gòu)知識主要有:圖的存儲結(jié)構(gòu)、隊列的基本運(yùn)算實(shí)現(xiàn)、圖的深度優(yōu)先遍歷算法實(shí)現(xiàn)、圖的廣度優(yōu)先遍歷算法實(shí)現(xiàn)。</p><p>  對于我們學(xué)生來講,此次課程設(shè)計是為了讓我們訓(xùn)練自己的實(shí)際設(shè)計能力,

10、通過設(shè)計實(shí)踐,去真正獲得此項目管理和團(tuán)隊協(xié)作等方面的基本訓(xùn)練和工作經(jīng)驗。</p><p>  通過課程設(shè)計的一系列訓(xùn)練,我們能提高如何綜合運(yùn)用所學(xué)知識解決實(shí)際問題的能力,以及獲得此項目管理和團(tuán)隊協(xié)作等等眾多方面的具體經(jīng)驗,增強(qiáng)對相關(guān)課程具體內(nèi)容的理解和掌握能力,培養(yǎng)對整體課程知識綜合運(yùn)用和融會貫通能力。</p><p>  1.2對課程設(shè)計功能的需求分析</p><p&

11、gt;  圖的遍歷并不需要是一個過于復(fù)雜的工作環(huán)境,一般來說:最合適的才是最好的。軟件設(shè)計必須符合我們使用實(shí)際情況的需要。根據(jù)要求,圖的遍歷主要功能如下: 1、用戶可以隨時建立一個有向圖或無向圖;</p><p>  2、用戶可以根據(jù)自己的需要,對圖進(jìn)行深度遍歷或廣度遍歷;</p><p>  3、用戶可以根據(jù)自己的需要對圖進(jìn)行修改;</p><p>  4

12、、在整個程序中,用戶可以不斷的按照不同的方式對圖進(jìn)行遍歷,若不繼續(xù),用戶也可以隨時跳出程序,同時,如果用戶輸入的序號錯誤,程序會提示用戶重新輸入序號;</p><p><b>  二、算法思想</b></p><p>  本課題本人所采用的是鄰接表的方式存儲圖,實(shí)現(xiàn)圖的深度、廣度兩種遍歷,并將每種遍歷結(jié)果輸出來。并且能尋找路徑。2.1.1圖的鄰接矩陣的建立

13、 對任意給定的圖(頂點(diǎn)數(shù)和邊數(shù)自定),,根據(jù)鄰接表的存儲結(jié)構(gòu)建立圖的鄰接表。2.1.2 圖的遍歷的實(shí)現(xiàn) 鄰接表是圖的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),在鄰接表中,對圖中的每一個頂點(diǎn)建立一個單鏈表,通常以順序結(jié)構(gòu)存儲,以便隨機(jī)訪問任意一頂點(diǎn)。</p><p>  圖的深度遍歷,假設(shè)初始狀態(tài)是圖中所有頂點(diǎn)都未曾被訪問,則深度優(yōu)先遍歷可從圖中的某個頂點(diǎn)v出發(fā),訪問此頂點(diǎn),依次從v的未被訪問的鄰接點(diǎn)出發(fā)深度優(yōu)先遍歷圖,直至圖

14、中和v有路徑想通的頂點(diǎn)都被訪問到;若此時圖中尚有未被訪問的節(jié)點(diǎn),則另選圖中一個未被訪問的頂點(diǎn)做起始點(diǎn),直至所有節(jié)點(diǎn)都被訪問。</p><p>  圖的廣度優(yōu)先遍歷,是以v為起始點(diǎn),由近及遠(yuǎn),依次訪問和v有路徑相通且路徑長度為1、2、…的頂點(diǎn)。</p><p><b>  三、數(shù)據(jù)結(jié)構(gòu)</b></p><p>  #define t true&l

15、t;/p><p>  #define f false</p><p>  #include<iostream.h></p><p>  struct node//定義一個結(jié)構(gòu)作為節(jié)點(diǎn)類型</p><p><b>  {</b></p><p><b>  int data;<

16、;/b></p><p>  bool sign;//標(biāo)志位,用來標(biāo)示是否遍歷過</p><p>  node *next;</p><p><b>  };</b></p><p><b>  四、模塊劃分</b></p><p>  node* creategrap

17、h()//建立鄰接表,完成無向圖的輸入</p><p><b>  };</b></p><p>  表4.1鄰接表的建立</p><p>  void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p><b>  真</b></p><p

18、>  非零 零</p><p>  圖4.2 深度優(yōu)先遍歷流程圖</p><p>  void BreadthFirstSearth(node *list)//廣度優(yōu)先搜索</p><p>  真 </p><p>  表4.3圖的廣度遍歷</p><p>  

19、void PathSearth(node *list)//路徑搜索</p><p>  void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p>  AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b>  五、系統(tǒng)的概要設(shè)計</b></p>

20、;<p>  main() /*包含一些調(diào)用和控制語句*/</p><p>  圖5.1系統(tǒng)功能模塊圖</p><p><b>  六、部分源程序</b></p><p>  #define t true</p><p>  #define f false</p><p>  #i

21、nclude<iostream.h></p><p>  struct node//定義一個結(jié)構(gòu)作為節(jié)點(diǎn)類型</p><p><b>  {</b></p><p><b>  int data;</b></p><p>  bool sign;//標(biāo)志位,用來標(biāo)示是否遍歷過</p

22、><p>  node *next;</p><p><b>  };</b></p><p>  node* creategraph()//建立鄰接表,完成無向圖的輸入</p><p><b>  {</b></p><p>  int l,m,n;</p>&l

23、t;p><b>  bool g;</b></p><p>  cout<<"請輸入節(jié)點(diǎn)數(shù): ";</p><p><b>  cin>>n;</b></p><p>  node *adjacencylist=new node[n+1];//動態(tài)分配節(jié)點(diǎn)數(shù)組內(nèi)存</

24、p><p>  adjacencylist[0].data=n;//0地址存放的為節(jié)點(diǎn)數(shù)</p><p>  adjacencylist[0].next=NULL;</p><p>  for(int i=1;i<=n;i++)//給各頂點(diǎn)域賦初值</p><p><b>  {</b></p><

25、p>  adjacencylist[i].data=0;</p><p>  adjacencylist[i].next=NULL;</p><p>  adjacencylist[i].sign=f;//表示未遍歷 </p><p><b>  }</b></p><p>  cout<<&quo

26、t;請依次輸入各條邊的始點(diǎn)和尾點(diǎn):(以0表示結(jié)束)"<<endl;</p><p><b>  cin>>l;</b></p><p>  if(l!=0)//判斷輸入邊是否結(jié)束</p><p><b>  g=t;</b></p><p>  while(g==t

27、)</p><p><b>  {</b></p><p><b>  cin>>m;</b></p><p>  if((l>0)&&(l<=n)&&(m>0)&&(m<=n))//判斷輸入頂點(diǎn)是否正確</p><p&

28、gt;<b>  {</b></p><p>  node *p,*q,*top;</p><p>  p=(node *)new(node);//分配邊的一個頂點(diǎn)內(nèi)存</p><p>  p->data=m;</p><p>  p->next=NULL;</p><p>  if(

29、adjacencylist[l].next==NULL)//為每個節(jié)點(diǎn)創(chuàng)建鄰接鏈表</p><p>  adjacencylist[l].next=p;</p><p><b>  else</b></p><p><b>  {</b></p><p>  top=adjacencylist[l]

30、.next;</p><p>  while(top->next!=NULL)</p><p>  top=top->next;</p><p>  top->next=p;</p><p><b>  }</b></p><p>  adjacencylist[l].data+

31、+;//統(tǒng)計鄰接點(diǎn)的個數(shù)</p><p>  q=(node *)new(node);//分配邊的另一個頂點(diǎn)內(nèi)存</p><p>  q->data=l;</p><p>  q->next=NULL;</p><p>  if(adjacencylist[m].next==NULL)//構(gòu)建鄰接表</p><

32、p>  adjacencylist[m].next=q;</p><p><b>  else</b></p><p><b>  {</b></p><p>  top=adjacencylist[m].next;</p><p>  while(top->next!=NULL)<

33、;/p><p>  top=top->next;</p><p>  top->next=q;</p><p><b>  }</b></p><p>  adjacencylist[m].data++;//統(tǒng)計鄰接點(diǎn)的個數(shù)</p><p><b>  }</b>&l

34、t;/p><p><b>  else</b></p><p>  cout<<"邊"<<l<<"--"<<m<<"輸入錯誤!"<<endl;//錯誤輸入標(biāo)識</p><p><b>  cin>>

35、;l;</b></p><p>  if(l==0)//邊的輸入結(jié)束</p><p><b>  g=f;</b></p><p><b>  }</b></p><p>  return adjacencylist;//返回鄰接表</p><p><b&g

36、t;  };</b></p><p>  void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p><b>  {</b></p><p>  int m,n=list[0].data,k,*a=new int[n];//設(shè)置一個數(shù)組用于存放節(jié)點(diǎn)</p><p>&l

37、t;b>  node *p;</b></p><p>  cout<<"采用深度優(yōu)先搜索:"<<endl;</p><p>  cout<<"請輸入搜索起始節(jié)點(diǎn):";</p><p><b>  cin>>k;</b></p>

38、<p>  for(int i=0;i<n;i++)</p><p><b>  {</b></p><p><b>  a[i]=k;</b></p><p>  list[k].sign=t;</p><p>  if(i==n-1)</p><p>&

39、lt;b>  break;</b></p><p><b>  m=0;</b></p><p>  while(list[k].sign==t)</p><p><b>  {</b></p><p>  p=list[k].next;</p><p> 

40、 while(p!=NULL)//找出list[k]鏈表中的未遍歷節(jié)點(diǎn)</p><p><b>  { </b></p><p>  k=p->data;</p><p>  p=p->next;</p><p>  if(list[k].sign==f)</p><p><b&

41、gt;  break;</b></p><p><b>  }</b></p><p><b>  m++;</b></p><p>  if(list[k].sign!=f)//判斷是否是p=NULL跳出while循環(huán)的</p><p><b>  {</b>&l

42、t;/p><p>  if(i<m)//無節(jié)點(diǎn)可回溯</p><p><b>  {</b></p><p>  cout<<"該圖為非連通圖!"<<endl;</p><p>  break; </p><p><b>  }&l

43、t;/b></p><p><b>  else</b></p><p>  k=a[i-m]; //回溯 </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b&g

44、t;</p><p>  for(i=1;i<=n;i++)//恢復(fù)原鄰接表</p><p>  list[i].sign=f;</p><p>  cout<<"深度優(yōu)先搜索遍歷順序為:";</p><p>  for(i=0;i<n;i++)//輸出遍歷結(jié)果</p><p&g

45、t;  cout<<a[i]<<" ";</p><p>  cout<<endl;</p><p>  delete a;//釋放動態(tài)數(shù)組內(nèi)存</p><p><b>  };</b></p><p>  void BreadthFirstSearth(node

46、*list)//廣度優(yōu)先搜索</p><p><b>  {</b></p><p>  int m,r,k,n=list[0].data,*a=new int[n+1];//設(shè)置數(shù)組存放節(jié)點(diǎn)</p><p><b>  node *p;</b></p><p>  cout<<&quo

47、t;采用廣度優(yōu)先搜索:"<<endl;</p><p>  cout<<"請輸入搜索起始節(jié)點(diǎn):";</p><p><b>  cin>>k;</b></p><p><b>  a[0]=n;</b></p><p><b&g

48、t;  a[1]=k;</b></p><p>  list[k].sign=t;//標(biāo)識遍歷的第一個節(jié)點(diǎn)</p><p><b>  m=0;</b></p><p><b>  r=1;</b></p><p>  while(m!=r)</p><p>&l

49、t;b>  {</b></p><p><b>  m++;</b></p><p>  p=list[a[m]].next;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  k=p->da

50、ta;</p><p>  if(list[k].sign==f)</p><p><b>  {</b></p><p><b>  r++;</b></p><p>  a[r]=k;//遍歷到的節(jié)點(diǎn)存入數(shù)組</p><p>  list[k].sign=t;//標(biāo)識已經(jīng)

51、遍歷過的節(jié)點(diǎn)</p><p><b>  }</b></p><p>  p=p->next; </p><p><b>  }</b></p><p><b>  }</b></p><p>  for(int i=1;i<=n;i++)

52、//恢復(fù)原鄰接表</p><p>  list[i].sign=f;</p><p>  cout<<"廣度優(yōu)先搜索遍歷順序為: ";</p><p>  for(i=1;i<=n;i++)//輸出遍歷</p><p>  cout<<a[i]<<" ";<

53、;/p><p>  cout<<endl;</p><p>  delete a;//釋放動態(tài)數(shù)組內(nèi)存</p><p><b>  };</b></p><p>  void PathSearth(node *list)//路徑搜索</p><p><b>  {</b&g

54、t;</p><p>  int *a,c,d,m,k,n=list[0].data;</p><p>  cout<<"請輸入起始點(diǎn):";</p><p><b>  cin>>k;</b></p><p>  cout<<"請輸入尾節(jié)點(diǎn):";

55、</p><p><b>  cin>>c;</b></p><p>  cout<<"請輸入要找的路徑長度:";</p><p><b>  cin>>d;</b></p><p><b>  d=d+1;</b><

56、;/p><p><b>  if(d>n)</b></p><p>  cout<<"不存在這樣的簡單路徑!"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p>

57、<p>  a=new int[d];//動態(tài)分配數(shù)組內(nèi)存存放路徑上的節(jié)點(diǎn)</p><p>  for(int i=0;i<d;i++)</p><p><b>  a[i]=0;</b></p><p><b>  a[0]=k;</b></p><p><b>  n

58、ode *p;</b></p><p><b>  int x;</b></p><p>  list[a[0]].sign=t;</p><p><b>  i=1;</b></p><p>  while(a[d-1]!=c)</p><p><b>

59、;  { </b></p><p>  while(i<d)</p><p><b>  {</b></p><p><b>  x=1;</b></p><p>  p=list[a[i-1]].next;</p><p>  while(p!=N

60、ULL)</p><p><b>  {</b></p><p>  m=p->data;</p><p>  if(i==d-1&&m==a[0]&&a[0]==c)//路徑存在且為回路</p><p><b>  {</b></p><p

61、>  cout<<"該路徑為一條回路!"<<endl;</p><p><b>  a[i]=m;</b></p><p><b>  i++;</b></p><p><b>  break;</b></p><p><

62、b>  }</b></p><p>  if(list[m].sign==f)</p><p><b>  {</b></p><p>  if(a[i]!=0)</p><p><b>  { </b></p><p>  if(x==0)//是否為

63、已經(jīng)判斷過的錯誤路徑</p><p><b>  {</b></p><p><b>  a[i]=m;</b></p><p>  list[a[i]].sign=t;//標(biāo)識走過節(jié)點(diǎn)</p><p><b>  i++;</b></p><p>&l

64、t;b>  break;</b></p><p><b>  }</b></p><p>  if(a[i]==m)//設(shè)置錯誤路徑標(biāo)識</p><p><b>  x=0;</b></p><p><b>  }</b></p><p&g

65、t;<b>  else</b></p><p><b>  {</b></p><p><b>  a[i]=m;</b></p><p>  list[a[i]].sign=t;//標(biāo)識走過節(jié)點(diǎn)</p><p><b>  i++;</b></p

66、><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  p=p->next; </p><p><b>  }</b><

67、;/p><p>  if(p==NULL)</p><p><b>  {</b></p><p><b>  a[i]=0;</b></p><p>  i--;//由此節(jié)點(diǎn)往下的路徑不存在,回溯</p><p>  list[a[i]].sign=f; //還原標(biāo)識符

68、 </p><p><b>  }</b></p><p>  if(i==0)//無法回溯,路徑不存在,跳出循環(huán)</p><p><b>  {</b></p><p>  cout<<"不存在這樣的簡單路徑!"<<endl;</p>

69、<p><b>  break; </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(i==0)//無法回溯,路徑不存在,跳出循環(huán)</p><p><b>  break;</b&

70、gt;</p><p>  if(a[d-1]!=c)//路徑不是所要找的</p><p><b>  { </b></p><p><b>  i--; //回溯</b></p><p><b>  if(i>=0)</b></p><p>  

71、list[a[i]].sign=f;//還原標(biāo)識符</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(a[d-1]==c)//判斷路徑是否找到并輸出</p><p><b>  {</b></p><p

72、>  cout<<"從節(jié)點(diǎn)"<<k<<"到節(jié)點(diǎn)"<<c<<"的一條路徑為:";</p><p>  for(i=0;i<d-1;i++)//輸出路徑</p><p>  cout<<a[i]<<"--> ";&

73、lt;/p><p>  cout<<a[d-1]<<endl;</p><p><b>  }</b></p><p><b>  delete a;</b></p><p><b>  }</b></p><p>  for(int

74、 i=1;i<=n;i++)//恢復(fù)原鄰接表</p><p>  list[i].sign=f; </p><p><b>  };</b></p><p>  void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p><b>  {</

75、b></p><p>  node *p,*q;</p><p>  int n=list[0].data;</p><p>  for(int i=1;i<=n;i++)</p><p><b>  {</b></p><p>  p=list[i].next;</p>

76、<p>  while(p!=NULL)</p><p><b>  {</b></p><p>  q=p->next;</p><p>  delete p;//釋放鏈表節(jié)點(diǎn)空間</p><p><b>  p=q;</b></p><p><b&

77、gt;  } </b></p><p><b>  }</b></p><p>  delete list;//釋放鄰接表空間</p><p><b>  };</b></p><p>  void main()</p><p><b>  {</

78、b></p><p>  node *list;</p><p>  list=creategraph();//以鄰接表的形式建立一個無向圖</p><p><b>  char a,b;</b></p><p>  cout<<"請選擇遍歷方法:(d:深度優(yōu)先搜索;b:廣度優(yōu)先搜索)&quo

79、t;;</p><p>  for(int i=1;i<2;i++)</p><p><b>  {</b></p><p><b>  cin>>a;</b></p><p><b>  switch(a)</b></p><p>&

80、lt;b>  {</b></p><p><b>  case 'd':</b></p><p>  case 'D': DepthFirstSearch(list);</p><p>  cout<<"是否采用廣度優(yōu)先搜索重新遍歷?(y:是;n:否)";<

81、;/p><p><b>  cin>>b;</b></p><p>  if((b=='y')||(b=='Y'))</p><p>  BreadthFirstSearth(list);</p><p><b>  break;</b></p>

82、<p><b>  case 'b':</b></p><p>  case 'B': BreadthFirstSearth(list);</p><p>  cout<<"是否采用深度優(yōu)先搜索重新遍歷?(y:是;n:否)";</p><p><b>  c

83、in>>b;</b></p><p>  if((b=='y')||(b=='Y'))</p><p>  DepthFirstSearch(list);</p><p><b>  break;</b></p><p>  default: cout<&

84、lt;"輸入錯誤!請重新輸入!"<<endl;</p><p><b>  i--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  while(1)</b>

85、;</p><p><b>  {</b></p><p>  cout<<"是否搜索路徑?(y:是;n:否)";</p><p><b>  cin>>a;</b></p><p>  if((a=='y')||(a=='Y

86、9;))</p><p>  PathSearth(list);</p><p>  else if((a=='n')||(a=='N'))</p><p><b>  break;</b></p><p><b>  else</b></p><

87、p>  cout<<"輸入錯誤!"<<endl;</p><p><b>  }</b></p><p>  AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b>  }</b></p><p>  七、程序

88、的調(diào)試分析以及測試結(jié)果</p><p>  7.1程序的調(diào)試分析</p><p>  程序的調(diào)試是一個很重要的方面,本題目有個創(chuàng)建鄰接表函數(shù)這是個基礎(chǔ),如果這里出了差錯當(dāng)然后面的模塊也就無法進(jìn)行了。所以在調(diào)試程序的時候,我是先進(jìn)行了對創(chuàng)建鄰接表的函數(shù)進(jìn)行調(diào)試。再確保無誤的情況下在進(jìn)行了后面模塊的調(diào)試,在調(diào)試中間經(jīng)常會出現(xiàn)一些小問題,這是我會經(jīng)常的采用“隔離”的方法進(jìn)行逐步的排查。最后還得對

89、整個程序進(jìn)行總體的調(diào)試,不斷完善一些細(xì)節(jié)方面,并對輸入的參數(shù)進(jìn)行多方面的改變,以確保程序的正確性。</p><p>  在整個程序運(yùn)行無誤的基礎(chǔ)上,在盡力對一些函數(shù)進(jìn)行優(yōu)化,加強(qiáng)程序的可讀性,方便性。</p><p>  經(jīng)過這次課程設(shè)計讓我收獲了不少東西,只要有以下幾個方面。</p><p>  1)對于基于C++語言的數(shù)據(jù)結(jié)構(gòu),C++語言的掌握情況是能否學(xué)好這么

90、課程的一個重要因素,所以在進(jìn)行課程設(shè)計的時候又對C++語言進(jìn)行了部分復(fù)習(xí)。</p><p>  2)在調(diào)試過程中懂得了,學(xué)習(xí)的嚴(yán)謹(jǐn)性,特別對于編程題目?!安钪晾?,謬之千里”。當(dāng)然這也不僅僅在學(xué)習(xí)方面,生活中也是樣。</p><p>  3)在這個項目中也提醒了自己在平時除了自己的專業(yè)知識外應(yīng)該積累更多的知識,技能。只有這樣在進(jìn)行各項事情的過程中才能更加順利。</p><

91、;p>  4)“理論聯(lián)系實(shí)踐”,實(shí)踐是建立在學(xué)習(xí)的基礎(chǔ)之上,而又在其中不斷的學(xué)習(xí)的過程。平時上課聽講覺得容易接受,淡然無味,但在實(shí)現(xiàn)算法的時候才發(fā)現(xiàn)原來一切并非如此。數(shù)據(jù)結(jié)構(gòu)這門課程比較抽象而且如果自己只是看看書的話根本就不能夠?qū)W好的,而且數(shù)據(jù)結(jié)構(gòu)這門課程也應(yīng)用的非常廣泛,特別是在計算機(jī)許多語言中都能夠看到數(shù)據(jù)結(jié)構(gòu)的思想。</p><p><b>  八、附錄</b></p>

92、;<p>  5.1、課程設(shè)計心得體會</p><p><b>  心得體會 </b></p><p>  通過這近一個星期的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實(shí)踐,我學(xué)到了很多東西。本次課程設(shè)計對我來說正是一個提高自己能力的機(jī)會,我好好的抓住機(jī)會,努力做好每一步,完善每一步。</p><p>  自己的C語言知識和數(shù)據(jù)結(jié)構(gòu)知識得到了鞏固,

93、編程能力也有了一定的提高。同時也學(xué)會了解決問題的方法。總結(jié)起來,自己主要有以下幾點(diǎn)體會:</p><p>  1.必須牢固掌握基礎(chǔ)知識。由于C語言是大一所學(xué)知識,有所遺忘,且未掌握好上學(xué)期所學(xué)的《數(shù)據(jù)結(jié)構(gòu)》這門課,所以在實(shí)踐之初感到棘手。不知如何下手,但在后來的實(shí)習(xí)過程中自己通過看書和課外資料,并請教其他同學(xué),慢慢地對C語言和數(shù)據(jù)結(jié)構(gòu)知識有所熟悉,這時才逐漸有了思路。所以,這次課程之后,我告誡自己:今后一定要牢固

94、掌握好專業(yè)基礎(chǔ)知識。</p><p>  2.必須培養(yǎng)嚴(yán)謹(jǐn)?shù)膽B(tài)度。自己在編程時經(jīng)常因為一些類似于“少了分號”的小錯誤而導(dǎo)致錯誤,不夠認(rèn)真細(xì)致,這給自己帶來了許多麻煩。編程是一件十分嚴(yán)謹(jǐn)?shù)氖虑椋莶坏民R虎。所以在今后自己一定要培養(yǎng)嚴(yán)謹(jǐn)?shù)膽B(tài)度。我想這不僅是對于程序設(shè)計,做任何事都應(yīng)如此。</p><p>  3.這次課程設(shè)計也讓我充分認(rèn)識到《數(shù)據(jù)結(jié)構(gòu)》這門課的重要性。它給我們一個思想和大綱,讓

95、我們在編程時容易找到思路,不至于無章可循。同時它也有廣泛的實(shí)際應(yīng)用。</p><p>  在實(shí)踐過程中,我和組員分工合作,勇于提出問題,解決難題,在實(shí)踐中,我遇到了許多困難,但都一一克服了。最終我圓滿的完成此次課程設(shè)計,學(xué)到了很多東西。同時,程序還存在著一些缺陷,就是不能輸出原圖,存在一些局限性,不過我會繼續(xù)努力思考,完善程序,做到最好。</p><p>  此次試驗,老師對我的指導(dǎo)是至關(guān)

96、重要的,在此我非常感謝老師,從他那我學(xué)到了很多有關(guān)c語言的知識,為以后的學(xué)習(xí)打下了一定的基礎(chǔ)。</p><p>  總的來說,本次課程設(shè)計,不僅我的知識面有所提高,另外我的綜合素質(zhì)也有所提高,比如說:團(tuán)隊精神、提問能力、思考能力等等。這次課程設(shè)計為我以后更好的學(xué)習(xí)和使用c語言打下了基礎(chǔ)。</p><p><b>  參考文獻(xiàn)</b></p><p&

溫馨提示

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

評論

0/150

提交評論