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

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計(jì)</p><p><b>  (數(shù)據(jù)結(jié)構(gòu))</b></p><p>  二○一一年一月二十日</p><p>  課程設(shè)計(jì)任務(wù)書及成績評定</p><p> ?、瘛㈩}目的目的和要求: </p><p><b>  1、設(shè)計(jì)目的</b>

2、</p><p>  鞏固和加深對數(shù)據(jù)結(jié)構(gòu)的理解,通過上機(jī)實(shí)驗(yàn)、調(diào)試程序,加深對課本知識的理解,最終使學(xué)生能夠熟練應(yīng)用數(shù)據(jù)結(jié)構(gòu)的知識寫程序。</p><p> ?。?)通過本課程的學(xué)習(xí),能熟練掌握幾種基本數(shù)據(jù)結(jié)構(gòu)的基本操作。</p><p> ?。?)能針對給定題目,選擇相應(yīng)的數(shù)據(jù)結(jié)構(gòu),分析并設(shè)計(jì)算法,進(jìn)而給出問題的正確求解過程并編寫代碼實(shí)現(xiàn)。</p>

3、<p>  2、設(shè)計(jì)題目要求: </p><p>  功能:輸入一頁文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個數(shù)。</p><p>  靜態(tài)存儲一頁文章,每行最多不超過80個字符,共N行;要求(1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);(2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。</p><p>

4、;  存儲結(jié)構(gòu)使用線性表,分別用幾個子函數(shù)實(shí)現(xiàn)相應(yīng)的功能;</p><p>  輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號。</p><p>  輸出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出"全部字母數(shù)"、"數(shù)字個數(shù)"、</p><p>  "空格個數(shù)"、&quo

5、t;文章總字?jǐn)?shù)"(3)輸出刪除某一字符串后的文章</p><p> ?、颉⒃O(shè)計(jì)進(jìn)度及完成情況</p><p> ?、?、主要參考文獻(xiàn)及資料</p><p>  [1] 嚴(yán)蔚敏 數(shù)據(jù)結(jié)構(gòu)(C語言版)清華大學(xué)出版社 1999</p><p>  [2] 嚴(yán)蔚敏 數(shù)據(jù)結(jié)構(gòu)題集(C語言版)清華大學(xué)出版社 1999</p><

6、;p>  [3] 譚浩強(qiáng) C語言程序設(shè)計(jì) 清華大學(xué)出版社</p><p>  [4] 與所用編程環(huán)境相配套的C語言或C++相關(guān)的資料</p><p><b>  Ⅳ、成績評定:</b></p><p>  設(shè)計(jì)成績: (教師填寫)</p><p>  指導(dǎo)老師:

7、 (簽字)</p><p>  二○一一 年 一 月 二 十一 日</p><p><b>  目 錄</b></p><p>  第一章 概述……………………………………………………………… 1</p><p>  第二章 系統(tǒng)分析………………………………………………………… 2</p&

8、gt;<p>  第三章 概要設(shè)計(jì)………………………………………………………… 3</p><p>  第四章 詳細(xì)設(shè)計(jì)………………………………………………………… 5</p><p>  第五章 運(yùn)行與測試…………………………………………………… 14</p><p>  第六章 總結(jié)與心得…………………………………………………… 18</p&

9、gt;<p>  參考文獻(xiàn)……………………………………………………………… 19</p><p><b>  概述</b></p><p>  課程設(shè)計(jì)是實(shí)踐性教學(xué)中的一個重要環(huán)節(jié),它以某一課程為基礎(chǔ),可以涉及和課程相關(guān)的各個方面,是一門獨(dú)立于課程之外的特殊課程。課程設(shè)計(jì)是讓同學(xué)們對所學(xué)的課程更全面的學(xué)習(xí)和應(yīng)用,理解和掌握課程的相關(guān)知識?!稊?shù)據(jù)結(jié)構(gòu)》是一

10、門重要的專業(yè)基礎(chǔ)課,是計(jì)算機(jī)理論和應(yīng)用的核心基礎(chǔ)課程。</p><p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),要求學(xué)生在數(shù)據(jù)結(jié)構(gòu)的邏輯特性和物理表示、數(shù)據(jù)結(jié)構(gòu)的選擇和應(yīng)用、算法的設(shè)計(jì)及其實(shí)現(xiàn)等方面,加深對課程基本內(nèi)容的理解。同時,在程序設(shè)計(jì)方法以及上機(jī)操作等基本技能和科學(xué)作風(fēng)方面受到比較系統(tǒng)和嚴(yán)格的訓(xùn)練。</p><p>  在這次的課程設(shè)計(jì)中我選擇的題目是文章編輯。文章編輯主要包括文章進(jìn)行修改,刪除,統(tǒng)

11、計(jì)文章字?jǐn)?shù)信息等操作,但是人工的文章編輯操作起來效率相對來說很低,也比較容易出錯。但是借助計(jì)算機(jī)系統(tǒng)來進(jìn)行文章編輯后,效率可以得到很大提升,也能降低出錯率,可以使文章編輯更方便、更高效。</p><p><b>  第二章 系統(tǒng)分析</b></p><p>  文章編輯的基本功能包括:統(tǒng)計(jì)文章中的字?jǐn)?shù)信息;查詢某一個詞在文章中出現(xiàn)的次數(shù);刪除文章中出現(xiàn)的某一個詞。要實(shí)

12、現(xiàn)上述功能,需要建立基于順序儲存結(jié)構(gòu)的線性表,來存儲文章的內(nèi)容。</p><p>  演示程序是以用戶與計(jì)算機(jī)的對話方式執(zhí)行,這需要一個模塊來完成使用者與計(jì)算機(jī)語言是轉(zhuǎn)化,這一模塊是直接寫在主程序里面的。</p><p>  程序執(zhí)行時的命令:本程序?yàn)榱耸褂脮r的方便,采用菜單式的方式來完成程序的演示,幾乎不用輸入什么特殊的命令,只需按提示輸入選擇即可。</p><p&g

13、t;  4. 測試數(shù)據(jù):分別對不同功能測試幾組不同的數(shù)據(jù)。具體內(nèi)容見運(yùn)行測試。</p><p><b>  5. 程序流程圖:</b></p><p><b>  第三章 概要設(shè)計(jì)</b></p><p><b>  本章主要介紹</b></p><p>  1、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)

14、 </p><p>  實(shí)驗(yàn)主要采用基于順序儲存結(jié)構(gòu)的線性表,用一維數(shù)組表示。</p><p><b>  2、算法的設(shè)計(jì)</b></p><p>  void count(char str[])</p><p>  統(tǒng)計(jì)文章全部字母數(shù)、數(shù)字個數(shù)、空格個數(shù)、文章字符總數(shù),并輸出到屏幕上。</p><p

15、>  void strcount(char str[], char temp[])</p><p>  統(tǒng)計(jì)字符串temp[]在文章中出現(xiàn)的次數(shù)。</p><p>  void strdelete(char str[],char temp[])</p><p>  刪除文章中的字符串temp[]。</p><p>  int KMP(i

16、nt k,char str[],char temp[])</p><p>  查找模式串在主串中第k個字符后的第一個位置,若模式串不在主串中,返回-1。</p><p>  3、抽象數(shù)據(jù)類型的 設(shè)計(jì)</p><p>  ADT Article{</p><p>  數(shù)據(jù)對象:D = { ai|ai∈ElemSet,i=1,2,…,n,n≥0

17、}</p><p>  數(shù)據(jù)關(guān)系:R1 = { <ai-1,ai>|ai-1,ai∈D,i=2,…,n }</p><p><b>  基本操作:</b></p><p>  init( &Arti )</p><p>  操作結(jié)果:構(gòu)造一篇空文章</p><p>  inpu

18、t(&Arti)</p><p>  初始條件:文章Arti已存在</p><p><b>  操作結(jié)果:輸入文章</b></p><p>  continue_input(&Arti)</p><p>  初始條件:文章Arti已存在</p><p>  操作結(jié)果:繼續(xù)輸入文章&

19、lt;/p><p>  del(&Arti , pos, k)</p><p>  初始條件:文章Arti已存在</p><p>  操作結(jié)果:刪除文章中pos位置后的k個字符</p><p>  count(&Arti) </p><p>  初始條件:文章Arti已存在</p><p

20、>  操作結(jié)果:統(tǒng)計(jì)文章全部字母數(shù)、數(shù)字個數(shù)、空格個數(shù)、文章字符總數(shù)</p><p>  strcount(&Arti ,temp)</p><p>  初始條件:文章Arti已存在</p><p>  操作結(jié)果:統(tǒng)計(jì)模式串在主串中出現(xiàn)的次數(shù)</p><p>  strdelete(&Arti temp,t)</p

21、><p>  初始條件:文章Arti已存在</p><p>  操作結(jié)果:在主串中刪除第t個模式串相應(yīng)字符,若t為0,則全刪除</p><p>  empty(&Arti)</p><p>  初始條件:文章Arti已存在</p><p>  操作結(jié)果:判斷文章是否為空</p><p>  

22、lengh(&Arti)</p><p>  初始條件:文章Arti已存在</p><p><b>  操作結(jié)果:文章長度</b></p><p>  clear(&Arti)</p><p>  初始條件:文章Arti已存在</p><p><b>  操作結(jié)果:清空

23、文章</b></p><p>  output(&Arti)</p><p>  初始條件:文章Arti已存在</p><p><b>  操作結(jié)果:輸出文章</b></p><p>  } ADT Article</p><p><b>  第四章 詳細(xì)設(shè)計(jì)<

24、/b></p><p>  抽象數(shù)據(jù)類型對應(yīng)的類定義。</p><p>  class Article //文章</p><p><b>  {</b></p><p><b>  private:</b></p><p>  char str[1000];</

25、p><p><b>  public:</b></p><p><b>  Article()</b></p><p>  {str[0]='\0';}</p><p>  void input(); //輸入文章</p><p>  void conti

26、nue_input(); //繼續(xù)輸入文章</p><p>  void del(int pos,int k); //刪除文章中pos位置后的k個字符</p><p>  void count();//統(tǒng)計(jì)文章全部字母數(shù)、數(shù)字個數(shù)、空格個數(shù)、文章字符總數(shù)</p><p>  int strcount(char temp[]);//統(tǒng)計(jì)模式串在主串中出現(xiàn)的次數(shù)&l

27、t;/p><p>  int strdelete(char temp[],int t);//在主串中刪除第t個模式串相應(yīng)字符,若t為0,則全刪除</p><p>  bool empty(); //判斷文章是否為空</p><p>  int lengh()//文章長度</p><p>  {return strlen(str);}<

28、;/p><p>  void clear() //清空文章</p><p>  {str[0]='\0';}</p><p>  void output() //輸出文章</p><p>  {printf("%s\n",str);}</p><p><b>  }

29、;</b></p><p>  Article arti;</p><p>  成員函數(shù)及其他子函數(shù)。</p><p><b>  //輸入新文章</b></p><p>  void Article::input()</p><p><b>  {</b><

30、;/p><p><b>  int i=0;</b></p><p><b>  char c;</b></p><p>  printf("請輸入文章,以'#'結(jié)束:\n");</p><p>  getchar();</p><p><

31、;b>  while(1)</b></p><p><b>  {</b></p><p>  c=getchar();</p><p>  if(c=='#')</p><p><b>  break;</b></p><p><b&

32、gt;  str[i]=c;</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  if(i==0)</b></p><p>  printf("您沒有輸入文章!\n");<

33、;/p><p><b>  else</b></p><p><b>  {</b></p><p>  str[i]='\0';</p><p>  printf("文章輸入成功!\n");</p><p><b>  }</

34、b></p><p><b>  }</b></p><p><b>  //繼續(xù)輸入文章</b></p><p>  void Article::continue_input()</p><p><b>  {</b></p><p><b

35、>  int i,j;</b></p><p><b>  char c;</b></p><p>  i=strlen(str);</p><p><b>  j=i;</b></p><p><b>  if(i==0)</b></p>&l

36、t;p>  printf("提示:原文章為空!請輸入文章,以'#'結(jié)束:\n");</p><p><b>  else</b></p><p>  printf("請繼續(xù)輸入文章,以'#'結(jié)束:\n");</p><p>  getchar();</p>

37、<p><b>  while(1)</b></p><p><b>  {</b></p><p>  c=getchar();</p><p>  if(c=='#')</p><p><b>  break;</b></p>&

38、lt;p><b>  str[i]=c;</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  if(i==j)</b></p><p>  printf("您沒有繼續(xù)輸入

39、文章!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  str[i]='\0';</p><p>  printf("文章輸入成功!\n");</p><p>&

40、lt;b>  }</b></p><p><b>  }</b></p><p>  //刪除pos位置之后的k個字符</p><p>  void Article::del(int pos,int k)</p><p><b>  {</b></p><p&g

41、t;<b>  int i;</b></p><p>  for(i=pos+k-1;str[i]!='\0';i++)</p><p><b>  {</b></p><p>  str[i-k]=str[i];</p><p><b>  }</b><

42、/p><p>  str[i-k]='\0';</p><p><b>  }</b></p><p>  //統(tǒng)計(jì)文章全部字母數(shù)、數(shù)字個數(shù)、空格個數(shù)、文章字符總數(shù)</p><p>  void Article::count()</p><p><b>  {</b&g

43、t;</p><p>  int letter=0,number=0,blank=0,all=0;</p><p><b>  int i=0;</b></p><p>  while(str[i]!='\0')</p><p><b>  {</b></p><

44、p>  if(isalpha(str[i]))</p><p><b>  letter++;</b></p><p>  else if(isdigit(str[i]))</p><p><b>  number++;</b></p><p>  else if(str[i]=='

45、')</p><p><b>  blank++;</b></p><p>  if(str[i]!='\n')</p><p><b>  all++;</b></p><p><b>  i++;</b></p><p>&l

46、t;b>  }</b></p><p>  printf("文章字符統(tǒng)計(jì)信息如下:\n");</p><p>  printf("字母個數(shù):%d\n",letter);</p><p>  printf("數(shù)字個數(shù):%d\n",number);</p><p>  

47、printf("空格個數(shù):%d\n",blank);</p><p>  printf("字符總數(shù):%d\n",all);</p><p><b>  }</b></p><p>  //取得模式串的next值</p><p>  void get_next(char temp[]

48、,int next[])</p><p><b>  {</b></p><p>  int i=0,j=-1;</p><p>  int len=strlen(temp);</p><p>  next[0]=-1;</p><p>  while(i<len)</p>&

49、lt;p><b>  {</b></p><p>  while(j>-1||temp[i]==temp[j])</p><p>  j=next[j];</p><p><b>  i++;</b></p><p><b>  j++;</b></p>

50、<p>  if(temp[i]==temp[j])</p><p>  next[i]=next[j];</p><p><b>  else</b></p><p>  next[i]=j;</p><p><b>  }</b></p><p><b

51、>  }</b></p><p>  //KMP算法,返回模式串在主串中第k個字符后的第一個位置,若模式串不在主串中,返回-1</p><p>  int KMP(int k,char str[],char temp[])</p><p><b>  {</b></p><p>  int pos=-1

52、;//模式串在主串中的位置</p><p><b>  int i,j;</b></p><p>  int len1,len2;//主串與模式串的長度</p><p>  int next[81];//KMP算法中模式串的next值</p><p>  len1=strlen(str);</p><

53、p>  len2=strlen(temp);</p><p>  get_next(temp,next);</p><p><b>  i=k;j=0;</b></p><p>  while(i<len1)</p><p><b>  {</b></p><p>

54、;  while(j>-1&&str[i]!=temp[j])</p><p>  j=next[j];</p><p><b>  i++;</b></p><p><b>  j++;</b></p><p>  if(j>=len2)</p><

55、p><b>  {</b></p><p>  pos=i-j+1;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ret

56、urn pos;</p><p><b>  }</b></p><p>  //統(tǒng)計(jì)模式串在主串中出現(xiàn)的次數(shù)</p><p>  int Article::strcount(char temp[])</p><p><b>  {</b></p><p>  int num

57、=0,len=strlen(temp);</p><p>  int pos=0;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  pos=KMP(pos,str,temp);</p><p>  if(pos

58、>=0)</p><p><b>  num++;</b></p><p><b>  else</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  retur

59、n num;</p><p><b>  }</b></p><p>  //在主串中刪除第t個模式串相應(yīng)字符,若t為0,則全刪除</p><p>  int Article::strdelete(char temp[],int t)</p><p><b>  {</b></p>&

60、lt;p>  int num=0,len=strlen(temp);</p><p>  int pos=0;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  pos=KMP(pos,str,temp);</p>

61、<p>  if(pos>=0)</p><p><b>  {</b></p><p><b>  num++;</b></p><p><b>  if(t==0)</b></p><p>  arti.del(pos,len);</p>&l

62、t;p>  else if(num==t)</p><p>  arti.del(pos,len);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  break;</b></p><p&

63、gt;<b>  }</b></p><p>  return num;</p><p><b>  }</b></p><p>  //判斷文章是否為空</p><p>  bool Article::empty()</p><p><b>  {</b&g

64、t;</p><p>  if(str[0]=='\0')</p><p>  return true;</p><p><b>  else</b></p><p>  return false;</p><p><b>  }</b></p>

65、<p><b>  //顯示菜單</b></p><p>  void order()</p><p><b>  {</b></p><p>  printf("\n →[菜單]←\n");</p><p

66、>  printf(" 1、輸入新文章 || 6、統(tǒng)計(jì)字符串出現(xiàn)次數(shù)\n");</p><p>  printf(" 2、繼續(xù)輸入文章 || 7、刪除字符串\n");</p><p>  printf("

67、 3、清空當(dāng)前文章 || 8、查看菜單\n");</p><p>  printf(" 4、輸出當(dāng)前文章 || 9、查看學(xué)生信息\n");</p><p>  printf(" 5、統(tǒng)計(jì)文章字符信息 ||

68、 0、退出\n\n");</p><p><b>  }</b></p><p><b>  //輸入模式串</b></p><p>  void input_temp(char temp[],int t)</p><p><b>  {</b><

69、;/p><p><b>  int i=0;</b></p><p><b>  char c;</b></p><p><b>  if(t==0)</b></p><p>  printf("請輸入要查詢的字符串,以'#'結(jié)束:\n");&l

70、t;/p><p><b>  else</b></p><p>  printf("請輸入要刪除的字符串,以'#'結(jié)束:\n");</p><p>  getchar();</p><p><b>  while(1)</b></p><p>

71、<b>  {</b></p><p>  c=getchar();</p><p>  if(c=='#')</p><p><b>  break;</b></p><p>  temp[i]=c;</p><p><b>  i++;</

72、b></p><p><b>  }</b></p><p><b>  if(i==0)</b></p><p>  printf("您沒有輸入字符串!\n");</p><p><b>  else</b></p><p>

73、<b>  {</b></p><p>  temp[i]='\0';</p><p>  printf("字符串輸入成功!\n");</p><p><b>  }</b></p><p><b>  }</b></p>&l

74、t;p><b>  主函數(shù)。</b></p><p>  int main()</p><p><b>  {</b></p><p><b>  int num;</b></p><p>  char com[81]="\0";//命令</p&

75、gt;<p>  char temp[81]="\0";//模式串</p><p>  printf(" -====文章編輯====-\n\n");</p><p><b>  order();</b></p><p><b&g

76、t;  while(1)</b></p><p><b>  {</b></p><p>  printf("\n請輸入命令編號:");</p><p>  scanf("%s",com);</p><p>  if(strcmp(com,"1")=

77、=0)</p><p><b>  {</b></p><p>  arti.input();</p><p><b>  }</b></p><p>  else if(strcmp(com,"2")==0)</p><p><b>  {&l

78、t;/b></p><p>  arti.continue_input();</p><p><b>  }</b></p><p>  else if(strcmp(com,"3")==0)</p><p><b>  {</b></p><p>

79、  if(arti.empty())</p><p>  printf("您還未輸入文章或文章內(nèi)容已為空,請先輸入文章!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  arti.clear();</p&g

80、t;<p>  printf("文章清除成功!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(strcmp(com,"4")==0)</p><p><b>

81、;  {</b></p><p>  if(arti.empty())</p><p>  printf("您還未輸入文章或文章內(nèi)容已為空,請先輸入文章!\n");</p><p><b>  else</b></p><p>  arti.output();</p><

82、;p><b>  }</b></p><p>  else if(strcmp(com,"5")==0)</p><p><b>  {</b></p><p>  if(arti.empty())</p><p>  printf("您還未輸入文章或文章內(nèi)容已為

83、空,請先輸入文章\n");</p><p><b>  else</b></p><p>  arti.count();</p><p><b>  }</b></p><p>  else if(strcmp(com,"6")==0)</p><p

84、><b>  {</b></p><p>  if(arti.empty())</p><p>  printf("您還未輸入文章或文章內(nèi)容已為空,請先輸入文章\n");</p><p><b>  else</b></p><p><b>  {</b&g

85、t;</p><p>  input_temp(temp,0);</p><p>  if(strlen(temp)>0)</p><p><b>  {</b></p><p>  printf("該字符串在文章中共出現(xiàn)了%d次!\n",arti.strcount(temp));</p&

86、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(strcmp(com,"7")==0)</p><p><b>  {</

87、b></p><p>  if(arti.empty())</p><p>  printf("您還未輸入文章或文章內(nèi)容已為空,請先輸入文章\n");</p><p><b>  else</b></p><p><b>  {</b></p><p&g

88、t;  input_temp(temp,1);</p><p>  if(strlen(temp)>0)</p><p><b>  {</b></p><p>  num=arti.strcount(temp);</p><p>  if(num==0)</p><p>  printf(

89、"該字符串在文章中沒有出現(xiàn)!\n");</p><p>  else if(num==1)</p><p><b>  {</b></p><p>  arti.strdelete(temp,0);</p><p>  printf("該字符串在文章中共出現(xiàn)了1次!已成功刪除!\n"

90、;);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  int t;</b></p><p>  printf("該

91、字符串在文章中共出現(xiàn)了%d次!若要刪除單一字符串,請輸入字符串序號1-%d,若要全部刪去,請輸入0 : ",num,num);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  scanf("%d",&t);</p

92、><p>  if(t<0||t>num)</p><p>  printf("您輸入的編號超出范圍!請重新輸入:");</p><p><b>  else</b></p><p><b>  {</b></p><p>  arti.strde

93、lete(temp,t);</p><p>  printf("刪除成功!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>&

94、lt;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(strcmp(com,"8")==0)</p>

95、<p><b>  {</b></p><p><b>  order();</b></p><p><b>  }</b></p><p>  else if(strcmp(com,"9")==0)</p><p><b>  {&

96、lt;/b></p><p>  printf("\n");</p><p>  printf("姓 名:許山蒙\n");</p><p>  printf("班 級:計(jì)科0901班\n");</p><p>  printf("學(xué) 號:091105

97、1002\n");</p><p>  printf("課 程:《數(shù)據(jù)結(jié)構(gòu)》\n");</p><p>  printf("指導(dǎo)教師:張先偉\n\n");</p><p><b>  }</b></p><p>  else if(strcmp(com,"

98、0")==0)</p><p><b>  {</b></p><p>  printf("\n確認(rèn)退出y/n:? ");</p><p>  scanf("%s",com);</p><p>  if (strcmp(com,"y")==0)&l

99、t;/p><p><b>  {</b></p><p>  printf("\n感謝使用,再見!\n\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>

100、  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\n命令輸入錯誤,請重新輸入,或者輸入8查看菜單。\n");</p><p><b>  }</b><

101、/p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  第五章 運(yùn)行與測試</b></p><p>  在調(diào)試程序的過程中遇到的問

102、題及解決辦法:</p><p>  開始的時候當(dāng)有異常輸入時便無法執(zhí)行程序?,F(xiàn)加入異常處理環(huán)節(jié),可以判斷輸入數(shù)據(jù)是否合法,這一問題得到解決。</p><p>  測試數(shù)據(jù)及測試結(jié)果:</p><p>  (1)程序開始運(yùn)行界面,如下圖:</p><p> ?。?)輸入下面的測試文章:</p><p>  Yesterd

103、ay is history, </p><p>  tomorrow is mystery, </p><p>  but today is a gift, </p><p>  that is why it is called Present.</p><p>  3.141592653589793238462643388279502<

104、;/p><p><b>  然后以“#”結(jié)束。</b></p><p>  若輸入成功,系統(tǒng)會給予提示。如下圖:</p><p>  (3)統(tǒng)計(jì)文章字符信息,如下圖:</p><p> ?。?)查詢字符串“is”在文章中出現(xiàn)的次數(shù),如下圖:</p><p> ?。?)刪除字符串“is”,并輸出刪除“i

105、s”后的文章,如下圖:</p><p> ?。?)當(dāng)命令輸入錯誤時會有提示,輸入“8”可以查看菜單如下圖:</p><p> ?。?)退出,如下圖:</p><p><b>  第六章 總結(jié)與心得</b></p><p>  本程序相對來說很簡單,思路和算法都比較清晰,難度也不算大,只有KMP算法交較復(fù)雜一下。不過程序還

106、有一些不足之處:本程序只能對即時輸入的文章進(jìn)行編輯,而不能對存儲在磁盤里的文章進(jìn)行編輯,如果能從文件輸入數(shù)據(jù),就可以打開磁盤文件,對其進(jìn)行編輯,這還有待改進(jìn)。</p><p>  通過做課程設(shè)計(jì)我再一次熟悉了線性表的基本知識和操作,特別是仔細(xì)研究了一下KMP算法,對KMP算法的原理和過程有了更深的理解。這次的課程設(shè)計(jì)收獲了很多,也感謝各位老師的指導(dǎo)。</p><p><b>  

107、參考文獻(xiàn):</b></p><p>  [1] 嚴(yán)蔚敏、吳偉民主編 《數(shù)據(jù)結(jié)構(gòu)》(C語言版) 清華大學(xué)出版社 2002</p><p>  [2] 殷人昆等著 《數(shù)據(jù)結(jié)構(gòu)》(C++版) 清華大學(xué)出版社 2001</p><p>  [3] 金遠(yuǎn)平著 《數(shù)據(jù)結(jié)構(gòu)》(C++描述) 清華大

108、學(xué)出版社 2005 </p><p>  [4] 許卓群等著 《數(shù)據(jù)結(jié)構(gòu)與算法》 高等教育出版社 2004</p><p>  [5] Frank M.Carrano 等著 《數(shù)據(jù)結(jié)構(gòu)與C++高級教程》清華大學(xué)出版社 2004</p><p>  [6] 嚴(yán)蔚敏、吳偉民 《數(shù)據(jù)結(jié)構(gòu)習(xí)題集》(C語言版)清華大學(xué)出版社

溫馨提示

  • 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

提交評論