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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  一、設(shè)計目的5</b></p><p><b>  二、設(shè)計內(nèi)容5</b></p><p><b>  三、設(shè)計要求5</b></p><p>  四、主要數(shù)據(jù)結(jié)構(gòu)與算法6

2、</p><p>  1、主要數(shù)據(jù)結(jié)構(gòu)6</p><p>  1.1主要數(shù)據(jù)結(jié)構(gòu)6</p><p>  1.2 程序流程圖6</p><p>  2、主要算法設(shè)計7</p><p>  2.1 輸入文本7</p><p>  2.2 輸出文本8</p><p>

3、;  2.3輸出刪除某一字符串后的文章8</p><p>  2.4統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)9</p><p>  五、調(diào)試與分析10</p><p>  1、菜單主界面10</p><p><b>  2、輸入函數(shù)10</b></p><p><b>  3、輸出文本

4、11</b></p><p>  4、統(tǒng)計文字、數(shù)字、空格的個數(shù)11</p><p>  5、統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)11</p><p>  6、輸出刪除某一字符串后的文章12</p><p><b>  六、總結(jié)13</b></p><p><b>  

5、七、參考文獻13</b></p><p><b>  八、程序清單14</b></p><p>  課程設(shè)計(大作業(yè))報告</p><p><b>  一、設(shè)計目的</b></p><p>  熟練使用 C語言實現(xiàn)文章編輯。</p><p><b>

6、  二、設(shè)計內(nèi)容</b></p><p>  靜態(tài)存儲一頁文章,統(tǒng)計出文字、數(shù)字、空格的個數(shù)。</p><p><b>  三、設(shè)計要求</b></p><p>  1、分別統(tǒng)計出其中英文字母數(shù)和空格數(shù)及整篇文章總字數(shù);</p><p>  2、統(tǒng)計某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);</p&g

7、t;<p>  3、刪除某一子串,并將后面的字符前移。</p><p><b>  4、實現(xiàn)功能:</b></p><p> ?、欧中休敵鲇脩糨斎氲母餍凶址?;</p><p> ?、品?行輸出“全部字母數(shù)”、“數(shù)字個數(shù)”、“空格個數(shù)”、“文章總字數(shù)”</p><p> ?、禽敵鰟h除某一字符串后的文章。<

8、;/p><p>  四、主要數(shù)據(jù)結(jié)構(gòu)與算法</p><p><b>  1、主要數(shù)據(jù)結(jié)構(gòu)</b></p><p><b>  1.1主要數(shù)據(jù)結(jié)構(gòu)</b></p><p>  表1 主要數(shù)據(jù)結(jié)構(gòu)</p><p><b>  1.2 程序流程圖</b><

9、/p><p><b>  圖1 程序流程圖</b></p><p><b>  2、主要算法設(shè)計</b></p><p><b>  2.1 輸入文本</b></p><p>  輸入一段文本,當輸入的文本是回車符(“\n”)時,將輸入的文本最后一個字符賦成字符串的結(jié)束符’\0’

10、,然后修改輸入文本的長度。</p><p>  void input(Article *s) /**輸入文本**/</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  s->length=0;</p><p>

11、  for(i=0;i<MAXSIZE;i++)</p><p><b>  {</b></p><p>  scanf("%c",&(s->a[i]));</p><p>  s->length++;</p><p>  if(s->a[i]=='\n'

12、;) </p><p><b>  {</b></p><p>  s->a[i]='\0';</p><p>  s->length--; </p><p><b>  break;</b></p><p><b>  }</b&

13、gt;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2.2 輸出文本</b></p><p>  將輸入的文本,如果輸入文本的長度為0,則以錯誤提示出現(xiàn)在屏幕上,若長度不為0,則以每行顯示80個字符的格式輸出在屏幕

14、上。</p><p>  void ptint(Article *s) /*輸出文本*/</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  if(!s->length) </p><p><b>  {</b><

15、/p><p>  printf("\n錯誤!");</p><p><b>  }</b></p><p><b>  else</b></p><p>  for(i=0;i<s->length;i++)</p><p><b>  {

16、</b></p><p>  printf("%c",s->a[i]);</p><p><b>  j++;</b></p><p>  if(j%80==0) </p><p>  printf("\n");</p><p><b

17、>  }</b></p><p><b>  }</b></p><p>  2.3輸出刪除某一字符串后的文章</p><p>  此函數(shù)用到了串的簡單模式匹配,即:設(shè)置一個標記succ,當正文串s與模式串匹配成功時,標記succ=1;當正文串s與模式串匹配不成功時,succ=0。最后根據(jù)標記的值來判斷時候找到匹配的子串,最終

18、實現(xiàn)刪除操作。</p><p>  void dele_print(Article *p,Article *s) /*輸出刪除某一字符串后的文章*/</p><p><b>  {</b></p><p>  int i,j,succ,flag=1;</p><p><b>  i=0;</b&

19、gt;</p><p>  while((i<=s->length-p->length+1))</p><p><b>  {</b></p><p><b>  j=0;</b></p><p>  succ=1; /*用j掃描模式p*/</p><p>

20、  while((j<=p->length-1) && succ)</p><p><b>  {</b></p><p>  if(p->a[j]==s->a[i+j]) </p><p><b>  j++;</b></p><p><b>  

21、else </b></p><p><b>  succ=0;</b></p><p>  if(j==p->length)</p><p><b>  flag=0;</b></p><p><b>  }</b></p><p> 

22、 if(!succ)</p><p><b>  {</b></p><p>  printf("%c",s->a[i]);</p><p><b>  }</b></p><p><b>  else</b></p><p&g

23、t;<b>  { </b></p><p>  i=i+p->length-1;</p><p><b>  }</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p&g

24、t;  printf("%s\n",s->a+i);</p><p>  if(flag==1)</p><p>  printf("但找不到要刪除的字符串!");</p><p><b>  }</b></p><p>  2.4統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)</p

25、><p>  此函數(shù)也用到了串的簡單模式匹配,即:設(shè)置一個標記succ,當正文串s與模式串匹配成功時,標記succ=1;當正文串s與模式串匹配不成功時,succ=0。最后根據(jù)標記的值來判斷時候找到匹配的子串。設(shè)置一個計數(shù)標記k,當匹配成功時,將匹配的結(jié)果記錄保存下來后,最后輸出統(tǒng)計特殊字符串出現(xiàn)的次數(shù)。</p><p>  void Counter(Article *p,Article *s)

26、 /*統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)*/</p><p><b>  {</b></p><p>  int i,j,succ,k=0;</p><p><b>  i=0;</b></p><p>  while((i<=s->length-p->length+1))</

27、p><p><b>  {</b></p><p><b>  j=0;</b></p><p><b>  succ=1; </b></p><p>  while((j<=p->length-1) && succ)</p><p&

28、gt;<b>  {</b></p><p>  if(p->a[j]==s->a[i+j]) </p><p><b>  j++;</b></p><p>  else succ=0;</p><p><b>  }</b></p><p&g

29、t;<b>  if(succ)</b></p><p><b>  { </b></p><p><b>  k++;</b></p><p>  i=i+p->length-1;</p><p><b>  }</b></p>

30、<p><b>  i++;</b></p><p><b>  }</b></p><p><b>  if (k>0)</b></p><p>  printf("\n該字符串在文章中出現(xiàn)的次數(shù)為:%d次\n",k);</p><p>&

31、lt;b>  }</b></p><p><b>  五、調(diào)試與分析</b></p><p><b>  1、菜單主界面</b></p><p><b>  圖2 主界面</b></p><p><b>  2、輸入函數(shù)</b></

32、p><p>  由于程序的功能的不足,雖然可以輸入中文,但是不能夠統(tǒng)計中文字符的個數(shù)。</p><p><b>  圖3 輸入文本</b></p><p><b>  3、輸出文本</b></p><p>  在輸入一段文本之后的顯示輸出文本如下圖所示,每行最多輸入80個字符。</p>&

33、lt;p><b>  圖4 輸出文本</b></p><p>  4、統(tǒng)計文字、數(shù)字、空格的個數(shù)</p><p>  圖5 統(tǒng)計文字、數(shù)字、空格的個數(shù)</p><p>  5、統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)</p><p>  圖6 統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)</p><p>  

34、6、輸出刪除某一字符串后的文章</p><p>  由于程序不夠完善,不能進行連續(xù)的刪除操作,只能進行一次刪除操作后再返回主菜單,繼續(xù)調(diào)用刪除函數(shù)時,不能夠接著第一次刪除操作后得到的結(jié)果再刪除字符串,運行結(jié)果如圖8所示。同時在輸出文章中沒有出現(xiàn)過的字符串時,由于程序功能的欠缺,程序功能還是會將原文章打印出來。不能很有效地提示刪除不成功,或者提示重新輸入之類的提示語。運行結(jié)果如圖9所示。</p>&l

35、t;p>  圖7 刪除某一字符串后顯示的文章</p><p>  圖8 刪除功能缺點一 </p><p>  圖9 刪除功能缺點二 </p><p><b>  六、總結(jié)</b></p><p>  通過五天的課程設(shè)計的內(nèi)容,我完成了文章編輯題目的設(shè)計。但是程序還不夠完善,因為有些功能還是不能夠?qū)崿F(xiàn)。例如

36、:在執(zhí)行菜單時,第一次選擇刪除刪除特殊字符串的操作時,特殊字符串被刪除了后,又返回主菜單,繼續(xù)再選擇刪除功能時,第一次被刪除后得到的結(jié)果,繼續(xù)再刪除就不能進行了。在設(shè)計過程中,設(shè)計刪除函數(shù)時,其中用到串的模式匹配,在匹配時出現(xiàn)了錯誤,導致程序一直不能執(zhí)行下去,通過老師和同學的幫助下,也一一解決了,同時也鍛煉了調(diào)試程序的能力。還有在用指針時,沒開辟存儲空間,程序也不能執(zhí)行。但是通過這次的課程設(shè)計,加強了我的動手、思考和解決問題的能力。設(shè)計

37、的結(jié)果固然重要,但是設(shè)計過程更為重要,在這次的作業(yè)中,我學到了很多的東西,也積累了關(guān)于做這樣的課程設(shè)計的一些經(jīng)驗。通過這一次的課程設(shè)計,讓我對《數(shù)據(jù)結(jié)構(gòu)》以及其課程設(shè)計的知識也有了更深的理解和認識。所以,我們在理解書本知識的同時,應(yīng)該盡可能多做一些算法題,提高自己分析問題和解決問題的能力,這也是學習這門課程最終的目的。</p><p><b>  七、參考文獻</b></p>

38、<p>  [1]王震江,何英,吳紹兵.數(shù)據(jù)結(jié)構(gòu).云南:云南大學出版社,2008</p><p>  [2]譚浩強.C程序設(shè)計(第四版). 北京:清華大學出版社,2010</p><p>  [3]王愛民,李杰,羅穎.數(shù)據(jù)結(jié)構(gòu)(C語言描述).北京:清華大學出版社,2011</p><p><b>  八、程序清單</b></p&

39、gt;<p>  #include <string.h></p><p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <malloc.h></p><p>  #include <

40、conio.h></p><p>  #define MAXSIZE 1000</p><p>  typedef char DataType;</p><p>  typedef struct </p><p><b>  {</b></p><p>  DataType str[MAXS

41、IZE];</p><p>  int length;</p><p><b>  }Article;</b></p><p>  Article *s,*p,*t,*m;</p><p>  void input(Article *s) /**輸入文本**/</p><p><b>

42、  {</b></p><p><b>  int i;</b></p><p>  s->length=0;</p><p>  for(i=0;i<MAXSIZE;i++)</p><p><b>  {</b></p><p>  scanf(&

43、quot;%c",&(s->str[i]));</p><p>  s->length++;</p><p>  if(s->str[i]=='\n') </p><p><b>  {</b></p><p>  s->str[i]='\0';&

44、lt;/p><p>  s->length--; </p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></

45、p><p>  void ptint(Article *s) /*輸出文本*/</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  if(!s->length) </p><p><b>  {</b></p>

46、<p>  printf("\n錯誤!");</p><p><b>  }</b></p><p><b>  else</b></p><p>  for(i=0;i<s->length;i++)</p><p><b>  {</b&

47、gt;</p><p>  printf("%c",s->str[i]);</p><p><b>  j++;</b></p><p>  if(j%80==0) </p><p>  printf("\n");</p><p><b> 

48、 }</b></p><p><b>  }</b></p><p>  void letter_number(Article *s) /*全部字母個數(shù)*/</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  if

49、(!s->length)</p><p><b>  {</b></p><p>  printf("\n錯誤!");</p><p><b>  }</b></p><p><b>  else</b></p><p>  f

50、or(i=0;i<s->length;i++)</p><p><b>  {</b></p><p>  if((s->str[i]>='a'&& s->str[i]<='z')||(s->str[i]>='A'&& s->str[i

51、]<='Z'))</p><p><b>  j++;</b></p><p><b>  }</b></p><p>  printf("%d",j);</p><p><b>  }</b></p><p>

52、  void space_number(Article *s) /*全部空格個數(shù)*/</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  if(!s->length) </p><p><b>  {</b></p><p&

53、gt;  printf("\n錯誤!");</p><p><b>  }</b></p><p><b>  else</b></p><p>  for(i=0;i<s->length;i++)</p><p><b>  {</b><

54、/p><p>  if(s->str[i]==' ')</p><p><b>  j++;</b></p><p><b>  }</b></p><p>  printf("%d",j);</p><p><b>  }&l

55、t;/b></p><p>  void digit_number(Article *s) /*全部數(shù)字總數(shù)*/</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  if(!s->length) </p><p><b>  

56、{</b></p><p>  printf("\n錯誤!");</p><p><b>  }</b></p><p><b>  else</b></p><p>  for(i=0;i<s->length;i++)</p><p&

57、gt;<b>  {</b></p><p>  if(s->str[i]>='0'&& s->str[i]<='9')</p><p><b>  j++;</b></p><p><b>  }</b></p>

58、<p>  printf("%d",j);</p><p><b>  }</b></p><p>  void size_number(Article *s) /*文章總字數(shù)*/</p><p><b>  {</b></p><p>  printf("%

59、d",s->length);</p><p><b>  }</b></p><p>  void dele_print(Article *p,Article *s) /*輸出刪除某一字符串后的文章*/</p><p><b>  {</b></p><p>  int i

60、,j,succ,flag=1;</p><p><b>  i=0;</b></p><p>  while((i<=s->length-p->length+1))</p><p><b>  {</b></p><p><b>  j=0;</b></

61、p><p>  succ=1; /*用j掃描模式p*/</p><p>  while((j<=p->length-1) && succ)</p><p><b>  {</b></p><p>  if(p->str[j]==s->str[i+j]) </p><

62、p><b>  j++;</b></p><p><b>  else </b></p><p><b>  succ=0;</b></p><p>  if(j==p->length)</p><p><b>  flag=0;</b><

63、;/p><p><b>  }</b></p><p>  if(!succ)</p><p><b>  {</b></p><p>  printf("%c",s->str[i]);</p><p><b>  }</b>&

64、lt;/p><p><b>  else</b></p><p><b>  { </b></p><p>  i=i+p->length-1;</p><p><b>  }</b></p><p><b>  i++;</b&g

65、t;</p><p><b>  }</b></p><p>  printf("%s\n",s->str+i);</p><p>  if(flag==1)</p><p>  printf("但找不到要刪除的字符串!");</p><p><

66、b>  }</b></p><p>  void Counter(Article *p,Article *s) /*統(tǒng)計某個字符串在文章中出現(xiàn)的次數(shù)*/</p><p><b>  {</b></p><p>  int i,j,succ,k=0;</p><p><b>  i=0;<

67、/b></p><p>  while((i<=s->length-p->length+1))</p><p><b>  {</b></p><p><b>  j=0;</b></p><p><b>  succ=1; </b></p>

68、<p>  while((j<=p->length-1) && succ)</p><p><b>  {</b></p><p>  if(p->str[j]==s->str[i+j]) </p><p><b>  j++;</b></p><p

69、>  else succ=0;</p><p><b>  }</b></p><p><b>  if(succ)</b></p><p><b>  { </b></p><p><b>  k++;</b></p><p

70、>  i=i+p->length-1;</p><p><b>  }</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  if (k>0)</b></p>

71、<p>  printf("\n該字符串在文章中出現(xiàn)的次數(shù)為:%d次\n",k);</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  char n;<

72、;/b></p><p>  Article *s,*t,*m;</p><p>  system(" color 3F");</p><p>  printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p>  printf("\t┃*

73、 設(shè)計題目:文章編輯 *┃\n");</p><p>  printf("\t┃************************************************************┃\n");</p><p>  printf("\t┃*

74、 ☆☆☆昆明學院 信息技術(shù)學院 ☆☆☆ *┃\n");</p><p>  printf("\t┃************************************************************┃\n");</p><p>  printf("\t┃* ∮2011級計科2班 楊

75、鑠 201111010234∮ *┃\n");</p><p>  printf("\t┃************************************************************┃\n");</p><p>  printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n

76、");</p><p>  system("PAUSE");</p><p>  system("cls");</p><p>  system("color 3f");</p><p>  printf("

77、 菜單列表 \n");</p><p>  printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p>  printf("\t┃***********************************************************

78、*┃\n");</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃* 0.退出 * 1.輸入一段文字 *┃\n&quo

79、t;);</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃************************************************************┃\n&quo

80、t;);</p><p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃* 2.顯示輸入的文字 * 3.統(tǒng)計字母、數(shù)字、空格 *┃\n");</p>&

81、lt;p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃************************************************************┃\n");</p>&

82、lt;p>  printf("\t┃* * *┃\n");</p><p>  printf("\t┃* 4.統(tǒng)計特殊字符串出現(xiàn)頻率 * 5.刪除某一特殊字符串 *┃\n");</p><p>  printf(&qu

83、ot;\t┃* * *┃\n");</p><p>  printf("\t┃************************************************************┃\n");</p><p>  printf(&qu

84、ot;\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");</p><p>  while ((n='0')&&(n='1')&&(n='2')&&(n='3')&&(n='4')&&(n='5'))&l

85、t;/p><p><b>  {</b></p><p>  printf("\n請選擇你需要操作的步驟(0~5):");</p><p>  fflush(stdin);</p><p>  scanf("%s",&n);</p><p>  ffl

86、ush(stdin);</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case '0':</b></p><p><b>  {</b></p>&

87、lt;p>  exit(0); </p><p><b>  }</b></p><p><b>  case '1':</b></p><p><b>  {</b></p><p>  s=(Article *)malloc(sizeof(Arti

88、cle));</p><p>  printf("請輸入一段文字:");</p><p><b>  input(s);</b></p><p><b>  break;</b></p><p><b>  }</b></p><p&g

89、t;<b>  case '2':</b></p><p><b>  {</b></p><p>  printf("\n文本錄入完畢!輸出的文本為:\n");</p><p>  ptint(s); </p><p><b>  break;<

90、/b></p><p><b>  }</b></p><p><b>  case '3':</b></p><p><b>  {</b></p><p>  printf("\n全部字母個數(shù)為:");</p><

91、;p>  letter_number(s);</p><p>  printf("\n全部空格個數(shù)為:");</p><p>  space_number(s); </p><p>  printf("\n全部數(shù)字個數(shù)為:");</p><p>  digit_number(s); </p&

92、gt;<p>  printf("\n文章總字數(shù)為:");</p><p>  size_number(s);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case '4&#

93、39;:</b></p><p><b>  {</b></p><p>  m=(Article *)malloc(sizeof(Article));</p><p>  printf("\n請輸入要統(tǒng)計的字符串:");</p><p><b>  input(m);</

94、b></p><p>  printf("\n統(tǒng)計字符串的結(jié)果為:");</p><p>  Counter(m,s); </p><p><b>  break;</b></p><p><b>  }</b></p><p><b> 

95、 case '5':</b></p><p><b>  {</b></p><p>  t=(Article *)malloc(sizeof(Article));</p><p>  printf("\n請輸入要刪除的字符串:\n");</p><p><b

96、>  input(t);</b></p><p>  printf("\n結(jié)果為:");</p><p>  dele_print(t,s); </p><p><b>  break;</b></p><p><b>  }</b></p>&l

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論