2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩22頁(yè)未讀, 繼續(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></p><p>  題 目:C++課程設(shè)計(jì)</p><p>  -------圖的遍歷</p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p><b>  一、前言</b></p><

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

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

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

5、;  五、系統(tǒng)的概要設(shè)計(jì)</b></p><p>  1、系統(tǒng)功能模塊圖…………………………………………………………9</p><p>  六、源程序……………………………………………………………………10</p><p>  七、程序的調(diào)試分析以及測(cè)試結(jié)果</p><p>  1、程序的調(diào)試測(cè)試結(jié)果………………………………………

6、…………………20</p><p><b>  八、附錄</b></p><p><b>  1、附錄一</b></p><p>  心得……………………………………………………………………………21</p><p>  2、參考文獻(xiàn)…………………………………………………………………22</p

7、><p><b>  一、前言</b></p><p>  1.1課程設(shè)計(jì)的目的與意義</p><p>  上學(xué)期我們對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門課程進(jìn)行了學(xué)習(xí)。這門課程是一門實(shí)踐性非常強(qiáng)的課程,為了讓大家更好地理解與運(yùn)用所學(xué)知識(shí),提高動(dòng)手能力,我們進(jìn)行了此次課程設(shè)計(jì)實(shí)習(xí)。這次課程設(shè)計(jì)不但要求我們掌握《數(shù)據(jù)結(jié)構(gòu)》中的各方面知識(shí),還要求我們具備一定的C++語(yǔ)言

8、基礎(chǔ)和編程能力。</p><p>  通過實(shí)踐我們掌握《數(shù)據(jù)結(jié)構(gòu)》中的知識(shí)。對(duì)于《圖的遍歷》這一課題來說,所要求我們掌握的數(shù)據(jù)結(jié)構(gòu)知識(shí)主要有:圖的存儲(chǔ)結(jié)構(gòu)、隊(duì)列的基本運(yùn)算實(shí)現(xiàn)、圖的深度優(yōu)先遍歷算法實(shí)現(xiàn)、圖的廣度優(yōu)先遍歷算法實(shí)現(xiàn)。</p><p>  對(duì)于我們學(xué)生來講,此次課程設(shè)計(jì)是為了讓我們訓(xùn)練自己的實(shí)際設(shè)計(jì)能力,通過設(shè)計(jì)實(shí)踐,去真正獲得此項(xiàng)目管理和團(tuán)隊(duì)協(xié)作等方面的基本訓(xùn)練和工作經(jīng)驗(yàn)。&l

9、t;/p><p>  通過課程設(shè)計(jì)的一系列訓(xùn)練,我們能提高如何綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力,以及獲得此項(xiàng)目管理和團(tuán)隊(duì)協(xié)作等等眾多方面的具體經(jīng)驗(yàn),增強(qiáng)對(duì)相關(guān)課程具體內(nèi)容的理解和掌握能力,培養(yǎng)對(duì)整體課程知識(shí)綜合運(yùn)用和融會(huì)貫通能力。</p><p>  1.2對(duì)課程設(shè)計(jì)功能的需求分析</p><p>  圖的遍歷并不需要是一個(gè)過于復(fù)雜的工作環(huán)境,一般來說:最合適的才是最

10、好的。軟件設(shè)計(jì)必須符合我們使用實(shí)際情況的需要。根據(jù)要求,圖的遍歷主要功能如下: 1、用戶可以隨時(shí)建立一個(gè)有向圖或無向圖;</p><p>  2、用戶可以根據(jù)自己的需要,對(duì)圖進(jìn)行深度遍歷或廣度遍歷;</p><p>  3、用戶可以根據(jù)自己的需要對(duì)圖進(jìn)行修改;</p><p>  4、在整個(gè)程序中,用戶可以不斷的按照不同的方式對(duì)圖進(jìn)行遍歷,若不繼續(xù),用戶也可

11、以隨時(shí)跳出程序,同時(shí),如果用戶輸入的序號(hào)錯(cuò)誤,程序會(huì)提示用戶重新輸入序號(hào);</p><p><b>  二、算法思想</b></p><p>  本課題本人所采用的是鄰接表的方式存儲(chǔ)圖,實(shí)現(xiàn)圖的深度、廣度兩種遍歷,并將每種遍歷結(jié)果輸出來。并且能尋找路徑。2.1.1圖的鄰接矩陣的建立 對(duì)任意給定的圖(頂點(diǎn)數(shù)和邊數(shù)自定),,根據(jù)鄰接表的存儲(chǔ)結(jié)構(gòu)建立圖的鄰接表。

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

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

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

15、n;//標(biāo)志位,用來標(biāo)示是否遍歷過</p><p>  node *next;</p><p><b>  };</b></p><p><b>  四、模塊劃分</b></p><p>  node* creategraph()//建立鄰接表,完成無向圖的輸入</p><p&g

16、t;<b>  };</b></p><p>  表4.1鄰接表的建立</p><p>  void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p><b>  真</b></p><p>  非零 零</p><p

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

18、p><p>  void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p>  AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b>  五、系統(tǒng)的概要設(shè)計(jì)</b></p><p>  main() /*包含一些調(diào)用和控制語(yǔ)句*/&

19、lt;/p><p>  圖5.1系統(tǒng)功能模塊圖</p><p><b>  六、部分源程序</b></p><p>  #define t true</p><p>  #define f false</p><p>  #include<iostream.h></p>&l

20、t;p>  struct node//定義一個(gè)結(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><p>  node *next;</p>

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

22、;/p><p>  cout<<"請(qǐng)輸入節(jié)點(diǎn)數(shù): ";</p><p><b>  cin>>n;</b></p><p>  node *adjacencylist=new node[n+1];//動(dòng)態(tài)分配節(jié)點(diǎn)數(shù)組內(nèi)存</p><p>  adjacencylist[0].dat

23、a=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><p>  adjacencylist[i].data=0;</p&

24、gt;<p>  adjacencylist[i].next=NULL;</p><p>  adjacencylist[i].sign=f;//表示未遍歷 </p><p><b>  }</b></p><p>  cout<<"請(qǐng)依次輸入各條邊的始點(diǎn)和尾點(diǎn):(以0表示結(jié)束)"<<

25、;endl;</p><p><b>  cin>>l;</b></p><p>  if(l!=0)//判斷輸入邊是否結(jié)束</p><p><b>  g=t;</b></p><p>  while(g==t)</p><p><b>  {<

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

27、lt;p>  node *p,*q,*top;</p><p>  p=(node *)new(node);//分配邊的一個(gè)頂點(diǎn)內(nèi)存</p><p>  p->data=m;</p><p>  p->next=NULL;</p><p>  if(adjacencylist[l].next==NULL)//為每個(gè)節(jié)點(diǎn)創(chuàng)建鄰

28、接鏈表</p><p>  adjacencylist[l].next=p;</p><p><b>  else</b></p><p><b>  {</b></p><p>  top=adjacencylist[l].next;</p><p>  while(top

29、->next!=NULL)</p><p>  top=top->next;</p><p>  top->next=p;</p><p><b>  }</b></p><p>  adjacencylist[l].data++;//統(tǒng)計(jì)鄰接點(diǎn)的個(gè)數(shù)</p><p>  q=(

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

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

32、lt;/p><p>  top->next=q;</p><p><b>  }</b></p><p>  adjacencylist[m].data++;//統(tǒng)計(jì)鄰接點(diǎn)的個(gè)數(shù)</p><p><b>  }</b></p><p><b>  else<

33、/b></p><p>  cout<<"邊"<<l<<"--"<<m<<"輸入錯(cuò)誤!"<<endl;//錯(cuò)誤輸入標(biāo)識(shí)</p><p><b>  cin>>l;</b></p><p>  if

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

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

36、<p>  cout<<"采用深度優(yōu)先搜索:"<<endl;</p><p>  cout<<"請(qǐng)輸入搜索起始節(jié)點(diǎn):";</p><p><b>  cin>>k;</b></p><p>  for(int i=0;i<n;i++)<

37、;/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><b>  break;</b></p>

38、<p><b>  m=0;</b></p><p>  while(list[k].sign==t)</p><p><b>  {</b></p><p>  p=list[k].next;</p><p>  while(p!=NULL)//找出list[k]鏈表中的未遍歷節(jié)點(diǎn)<

39、;/p><p><b>  { </b></p><p>  k=p->data;</p><p>  p=p->next;</p><p>  if(list[k].sign==f)</p><p><b>  break;</b></p><p

40、><b>  }</b></p><p><b>  m++;</b></p><p>  if(list[k].sign!=f)//判斷是否是p=NULL跳出while循環(huán)的</p><p><b>  {</b></p><p>  if(i<m)//無節(jié)點(diǎn)可回

41、溯</p><p><b>  {</b></p><p>  cout<<"該圖為非連通圖!"<<endl;</p><p>  break; </p><p><b>  }</b></p><p><b>

42、  else</b></p><p>  k=a[i-m]; //回溯 </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  for(i=1;i<

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

44、ot;;</p><p>  cout<<endl;</p><p>  delete a;//釋放動(dòng)態(tài)數(shù)組內(nèi)存</p><p><b>  };</b></p><p>  void BreadthFirstSearth(node *list)//廣度優(yōu)先搜索</p><p><

45、;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<<"采用廣度優(yōu)先搜索:"<<endl;</p&g

46、t;<p>  cout<<"請(qǐng)輸入搜索起始節(jié)點(diǎn):";</p><p><b>  cin>>k;</b></p><p><b>  a[0]=n;</b></p><p><b>  a[1]=k;</b></p><p

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

48、gt;<b>  m++;</b></p><p>  p=list[a[m]].next;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  k=p->data;</p><p>  if(list[k].s

49、ign==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)識(shí)已經(jīng)遍歷過的節(jié)點(diǎn)</p><p><b>  

50、}</b></p><p>  p=p->next; </p><p><b>  }</b></p><p><b>  }</b></p><p>  for(int i=1;i<=n;i++)//恢復(fù)原鄰接表</p><p>  list[i]

51、.sign=f;</p><p>  cout<<"廣度優(yōu)先搜索遍歷順序?yàn)? ";</p><p>  for(i=1;i<=n;i++)//輸出遍歷</p><p>  cout<<a[i]<<" ";</p><p>  cout<<endl;&

52、lt;/p><p>  delete a;//釋放動(dòng)態(tài)數(shù)組內(nèi)存</p><p><b>  };</b></p><p>  void PathSearth(node *list)//路徑搜索</p><p><b>  {</b></p><p>  int *a,c,d,m,

53、k,n=list[0].data;</p><p>  cout<<"請(qǐng)輸入起始點(diǎn):";</p><p><b>  cin>>k;</b></p><p>  cout<<"請(qǐng)輸入尾節(jié)點(diǎn):";</p><p><b>  cin>

54、;>c;</b></p><p>  cout<<"請(qǐng)輸入要找的路徑長(zhǎng)度:";</p><p><b>  cin>>d;</b></p><p><b>  d=d+1;</b></p><p><b>  if(d>n

55、)</b></p><p>  cout<<"不存在這樣的簡(jiǎn)單路徑!"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><p>  a=new int[d];//動(dòng)態(tài)分配數(shù)組內(nèi)存存放路

56、徑上的節(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>  node *p;</b></p><p>

57、<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>  { </b></p><p&g

58、t;  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!=NULL)</p><p><b>  {&

59、lt;/b></p><p>  m=p->data;</p><p>  if(i==d-1&&m==a[0]&&a[0]==c)//路徑存在且為回路</p><p><b>  {</b></p><p>  cout<<"該路徑為一條回路!"

60、;<<endl;</p><p><b>  a[i]=m;</b></p><p><b>  i++;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>

61、;  if(list[m].sign==f)</p><p><b>  {</b></p><p>  if(a[i]!=0)</p><p><b>  { </b></p><p>  if(x==0)//是否為已經(jīng)判斷過的錯(cuò)誤路徑</p><p><b&g

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

63、lt;p><b>  }</b></p><p>  if(a[i]==m)//設(shè)置錯(cuò)誤路徑標(biāo)識(shí)</p><p><b>  x=0;</b></p><p><b>  }</b></p><p><b>  else</b></p>

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

65、></p><p><b>  }</b></p><p><b>  }</b></p><p>  p=p->next; </p><p><b>  }</b></p><p>  if(p==NULL)</p&

66、gt;<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)識(shí)符 </p><p><b>  }

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

68、gt;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(i==0)//無法回溯,路徑不存在,跳出循環(huán)</p><p><b>  break;</b></p><p>  if(a[d-1]!=c

69、)//路徑不是所要找的</p><p><b>  { </b></p><p><b>  i--; //回溯</b></p><p><b>  if(i>=0)</b></p><p>  list[a[i]].sign=f;//還原標(biāo)識(shí)符</p>&

70、lt;p><b>  }</b></p><p><b>  }</b></p><p>  if(a[d-1]==c)//判斷路徑是否找到并輸出</p><p><b>  {</b></p><p>  cout<<"從節(jié)點(diǎn)"<&

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

72、1]<<endl;</p><p><b>  }</b></p><p><b>  delete a;</b></p><p><b>  }</b></p><p>  for(int i=1;i<=n;i++)//恢復(fù)原鄰接表</p>&

73、lt;p>  list[i].sign=f; </p><p><b>  };</b></p><p>  void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p><b>  {</b></p><p>  node *p,*q

74、;</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><p>  while(p!=NULL)</p>

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

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

77、;</p><p>  list=creategraph();//以鄰接表的形式建立一個(gè)無向圖</p><p><b>  char a,b;</b></p><p>  cout<<"請(qǐng)選擇遍歷方法:(d:深度優(yōu)先搜索;b:廣度優(yōu)先搜索)";</p><p>  for(int i=1;

78、i<2;i++)</p><p><b>  {</b></p><p><b>  cin>>a;</b></p><p><b>  switch(a)</b></p><p><b>  {</b></p><p

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

80、t;b;</b></p><p>  if((b=='y')||(b=='Y'))</p><p>  BreadthFirstSearth(list);</p><p><b>  break;</b></p><p><b>  case 'b':

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

82、p>  if((b=='y')||(b=='Y'))</p><p>  DepthFirstSearch(list);</p><p><b>  break;</b></p><p>  default: cout<<"輸入錯(cuò)誤!請(qǐng)重新輸入!"<<endl

83、;</p><p><b>  i--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  while(1)</b></p><p><b>  {<

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

85、list);</p><p>  else if((a=='n')||(a=='N'))</p><p><b>  break;</b></p><p><b>  else</b></p><p>  cout<<"輸入錯(cuò)誤!"&l

86、t;<endl;</p><p><b>  }</b></p><p>  AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b>  }</b></p><p>  七、程序的調(diào)試分析以及測(cè)試結(jié)果</p><p>  7.1程

87、序的調(diào)試分析</p><p>  程序的調(diào)試是一個(gè)很重要的方面,本題目有個(gè)創(chuàng)建鄰接表函數(shù)這是個(gè)基礎(chǔ),如果這里出了差錯(cuò)當(dāng)然后面的模塊也就無法進(jìn)行了。所以在調(diào)試程序的時(shí)候,我是先進(jìn)行了對(duì)創(chuàng)建鄰接表的函數(shù)進(jìn)行調(diào)試。再確保無誤的情況下在進(jìn)行了后面模塊的調(diào)試,在調(diào)試中間經(jīng)常會(huì)出現(xiàn)一些小問題,這是我會(huì)經(jīng)常的采用“隔離”的方法進(jìn)行逐步的排查。最后還得對(duì)整個(gè)程序進(jìn)行總體的調(diào)試,不斷完善一些細(xì)節(jié)方面,并對(duì)輸入的參數(shù)進(jìn)行多方面的改變

88、,以確保程序的正確性。</p><p>  在整個(gè)程序運(yùn)行無誤的基礎(chǔ)上,在盡力對(duì)一些函數(shù)進(jìn)行優(yōu)化,加強(qiáng)程序的可讀性,方便性。</p><p>  經(jīng)過這次課程設(shè)計(jì)讓我收獲了不少東西,只要有以下幾個(gè)方面。</p><p>  1)對(duì)于基于C++語(yǔ)言的數(shù)據(jù)結(jié)構(gòu),C++語(yǔ)言的掌握情況是能否學(xué)好這么課程的一個(gè)重要因素,所以在進(jìn)行課程設(shè)計(jì)的時(shí)候又對(duì)C++語(yǔ)言進(jìn)行了部分復(fù)習(xí)。&

89、lt;/p><p>  2)在調(diào)試過程中懂得了,學(xué)習(xí)的嚴(yán)謹(jǐn)性,特別對(duì)于編程題目?!安钪晾?,謬之千里”。當(dāng)然這也不僅僅在學(xué)習(xí)方面,生活中也是樣。</p><p>  3)在這個(gè)項(xiàng)目中也提醒了自己在平時(shí)除了自己的專業(yè)知識(shí)外應(yīng)該積累更多的知識(shí),技能。只有這樣在進(jìn)行各項(xiàng)事情的過程中才能更加順利。</p><p>  4)“理論聯(lián)系實(shí)踐”,實(shí)踐是建立在學(xué)習(xí)的基礎(chǔ)之上,而又在其中

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

91、<p><b>  心得體會(huì) </b></p><p>  通過這近一個(gè)星期的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)踐,我學(xué)到了很多東西。本次課程設(shè)計(jì)對(duì)我來說正是一個(gè)提高自己能力的機(jī)會(huì),我好好的抓住機(jī)會(huì),努力做好每一步,完善每一步。</p><p>  自己的C語(yǔ)言知識(shí)和數(shù)據(jù)結(jié)構(gòu)知識(shí)得到了鞏固,編程能力也有了一定的提高。同時(shí)也學(xué)會(huì)了解決問題的方法??偨Y(jié)起來,自己主要有以

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

93、養(yǎng)嚴(yán)謹(jǐn)?shù)膽B(tài)度。自己在編程時(shí)經(jīng)常因?yàn)橐恍╊愃朴凇吧倭朔痔?hào)”的小錯(cuò)誤而導(dǎo)致錯(cuò)誤,不夠認(rèn)真細(xì)致,這給自己帶來了許多麻煩。編程是一件十分嚴(yán)謹(jǐn)?shù)氖虑?,容不得馬虎。所以在今后自己一定要培養(yǎng)嚴(yán)謹(jǐn)?shù)膽B(tài)度。我想這不僅是對(duì)于程序設(shè)計(jì),做任何事都應(yīng)如此。</p><p>  3.這次課程設(shè)計(jì)也讓我充分認(rèn)識(shí)到《數(shù)據(jù)結(jié)構(gòu)》這門課的重要性。它給我們一個(gè)思想和大綱,讓我們?cè)诰幊虝r(shí)容易找到思路,不至于無章可循。同時(shí)它也有廣泛的實(shí)際應(yīng)用。<

94、/p><p>  在實(shí)踐過程中,我和組員分工合作,勇于提出問題,解決難題,在實(shí)踐中,我遇到了許多困難,但都一一克服了。最終我圓滿的完成此次課程設(shè)計(jì),學(xué)到了很多東西。同時(shí),程序還存在著一些缺陷,就是不能輸出原圖,存在一些局限性,不過我會(huì)繼續(xù)努力思考,完善程序,做到最好。</p><p>  此次試驗(yàn),老師對(duì)我的指導(dǎo)是至關(guān)重要的,在此我非常感謝老師,從他那我學(xué)到了很多有關(guān)c語(yǔ)言的知識(shí),為以后的學(xué)習(xí)

95、打下了一定的基礎(chǔ)。</p><p>  總的來說,本次課程設(shè)計(jì),不僅我的知識(shí)面有所提高,另外我的綜合素質(zhì)也有所提高,,比如說:團(tuán)隊(duì)精神、提問能力、思考能力等等。這次課程設(shè)計(jì)為我以后更好的學(xué)習(xí)和使用c語(yǔ)言打下了基礎(chǔ)。</p><p><b>  參考文獻(xiàn)</b></p><p>  1.《數(shù)據(jù)結(jié)構(gòu) (C語(yǔ)言版)》嚴(yán)蔚敏、吳偉民 主編 清華大學(xué)出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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)論