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

下載本文檔

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

文檔簡介

1、<p>  目 錄</p><p>  1課程設(shè)計(jì)目的………………………………………………………………………1</p><p>  2任務(wù)要求…………………………………………………………………1</p><p>  3設(shè)計(jì)方案…………………………………………………………………2</p><p>  4設(shè)計(jì)內(nèi)容……………

2、……………………………………………………2</p><p>  4.1 層次(調(diào)用) 關(guān)系 …………………………………………………………… 2</p><p>  4.2庫函數(shù)源代碼設(shè)計(jì)……………………………………………………… ……3</p><p>  4.3設(shè)計(jì)思想……………………………………………………………… …3</p><p>

3、;  4.4調(diào)試過程…………………………………………………… ………5</p><p>  4.5調(diào)試結(jié)果截圖…………………………………………………………… …6</p><p>  4.6程序代碼…………………………………………………………… …9</p><p>  5總結(jié)…………………………………………………………………15</p><p&

4、gt;  6 參考文獻(xiàn)…………………………………………………………………16</p><p><b>  字符串處理庫函數(shù)</b></p><p><b>  1.課程設(shè)計(jì)目的</b></p><p>  《C++程序設(shè)計(jì)》是我們軟件工程專業(yè)學(xué)子必學(xué)的一門基礎(chǔ)課程。這學(xué)期我們主要學(xué)習(xí)了這本書中《面向過程程序設(shè)計(jì)》部分。其目

5、的在于加深對(duì)面向過程程序設(shè)計(jì)中基礎(chǔ)理論和基本知識(shí)的理解,培養(yǎng)學(xué)生的實(shí)踐能力,促進(jìn)理論與實(shí)踐的結(jié)合。通過課程設(shè)計(jì),讓學(xué)生能夠熟練運(yùn)用C++進(jìn)行編程,建立模型,降低軟件的復(fù)雜性,改善軟件的重用性和維護(hù)性,提高軟件的生產(chǎn)效率,熟練掌握編程技術(shù)。</p><p>  通過課程設(shè)計(jì),掌握程序設(shè)計(jì)語言開發(fā)工具Visual C++等;培養(yǎng)調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料、手冊(cè)以及編寫技術(shù)文獻(xiàn)的能力;通過課程設(shè)計(jì),要求學(xué)生在指導(dǎo)教師

6、的指導(dǎo)下,獨(dú)立完成實(shí)習(xí)課題的全部內(nèi)容,包括:</p><p>  通過調(diào)查研究和上機(jī)實(shí)習(xí),收集和調(diào)查有關(guān)技術(shù)資料。</p><p>  掌握設(shè)計(jì)課題的基本步驟和方法。</p><p>  根據(jù)課題的要求進(jìn)行上機(jī)實(shí)驗(yàn)調(diào)試。</p><p>  有良好的程序設(shè)計(jì)習(xí)慣,程序代碼簡潔明了,有一定的說明。</p><p>  設(shè)

7、計(jì)報(bào)告一定按老師規(guī)定的要求按時(shí)完成,頁面整潔。</p><p>  收集相關(guān)案例進(jìn)行比較,取其精華之處。</p><p>  學(xué)習(xí)編程高手的編程思路和技巧,并運(yùn)用到自己的設(shè)計(jì)中。</p><p><b>  2.任務(wù)要求</b></p><p>  (1) 通過文獻(xiàn)資料查閱和學(xué)習(xí),了解當(dāng)前軟件設(shè)計(jì)技術(shù)和一般方法。&l

8、t;/p><p>  (2) 參考和研究一些公司和高校/企業(yè)成功的軟件開發(fā)案例和實(shí)現(xiàn)方案,結(jié)合《C++程序設(shè)計(jì)》(上)以及相關(guān)課程中所學(xué)知識(shí),積極完成設(shè)計(jì)任務(wù)。</p><p>  (3) 認(rèn)真完成需求分析,并根據(jù)需求分析完成各設(shè)計(jì)題目的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和測(cè)試等環(huán)節(jié)的設(shè)計(jì)任務(wù)。</p><p>  (4) 認(rèn)真按時(shí)完成課程設(shè)計(jì)報(bào)告。</p>

9、<p>  (5) 嚴(yán)格按照課程設(shè)計(jì)要求獨(dú)立完成。</p><p>  (6) 遵守課程設(shè)計(jì)課堂紀(jì)律。</p><p>  (7) 大膽思考,活躍思維,嚴(yán)密的邏輯,嚴(yán)謹(jǐn)?shù)乃悸贰?lt;/p><p><b>  3.設(shè)計(jì)方案</b></p><p>  字符串處理庫函數(shù)總體思路如下流程圖1—1所示:<

10、;/p><p><b>  4.設(shè)計(jì)內(nèi)容</b></p><p>  4.1.層次(調(diào)用)關(guān)系如圖1—2所示:</p><p>  4.2.庫函數(shù)源代碼:</p><p>  //"mystr.h"</p><p>  int mystrlen(char* p)

11、 //實(shí)現(xiàn)1所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  int size = 0;</p><p>  if(!p) return -1;</p><p><b>  while(*p)</b></p><p><b>  {</

12、b></p><p><b>  size++;</b></p><p><b>  p++;</b></p><p><b>  }</b></p><p>  return size;</p><p><b>  }</b>

13、;</p><p>  int mystrsam(char string1[],char string2[]) //實(shí)現(xiàn)2所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  int count=0;</p><p>  for(int i=0;i<mystrlen

14、(string1);i++)</p><p>  for(int j=0;j<mystrlen(string2);j++)</p><p><b>  {</b></p><p>  if(string1[i]==string2[j])</p><p><b>  count++;</b>&l

15、t;/p><p><b>  }</b></p><p>  return count;</p><p><b>  }</b></p><p>  void mystrcpy(char string1[]) //實(shí)現(xiàn)3所對(duì)應(yīng)的功能</p><p

16、><b>  {</b></p><p><b>  int i,j;</b></p><p>  char string2[200];</p><p>  for(i=0,j=0;i<mystrlen(string1);i++,j++)</p><p>  string2[j]=str

17、ing1[i];</p><p>  for(j=0;j<mystrlen(string1);j++)</p><p>  cout<<string2[j];</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  vo

18、id mystrcat(char string1[],char string2[]) //實(shí)現(xiàn)4所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  for(int i=mystrlen(string1),j=0;i<(mystrlen(string1)+mystrlen(string2));i++,j++)

19、</p><p>  string1[i]=string2[j];</p><p>  for(int m=0;m<mystrlen(string1);m++)</p><p>  cout<<string1[m];</p><p>  cout<<endl;</p><p><b&

20、gt;  }</b></p><p>  void mystrstr(char string[]) //實(shí)現(xiàn)5所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  int n1,n2;</p><p>  cout<<"請(qǐng)輸入指定位置:

21、"; </p><p><b>  cin>>n1; </b></p><p>  cout<<"請(qǐng)輸入輸出長度: "; </p><p><b>  cin>>n2; </b></p><p>  for(int i=0;n1<

22、;=0||n1>mystrlen(string)||n2>mystrlen(string);i++) </p><p><b>  { </b></p><p>  cout<<"輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入 "<<endl; </p><p>  cin>>n1>>n

23、2;</p><p><b>  }</b></p><p>  for(int j=n1;j<=n2;j++)</p><p>  cout<<string[j-1];</p><p>  cout<<endl;</p><p><b>  }</b

24、></p><p>  void mystrrev(char string[]) //實(shí)現(xiàn)6所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  cout<<"逆序數(shù)組順序?yàn)?"<<endl;</p><p>  f

25、or(int j=mystrlen(string)-1;j>=0;j--)</p><p>  cout<<string[j];</p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  4.3 設(shè)計(jì)思想</b>&l

26、t;/p><p>  (1)根據(jù)字符串處理所需要的功能,將其按模塊劃分。</p><p>  (2)編寫各各模塊對(duì)應(yīng)的函數(shù),并進(jìn)行調(diào)試。</p><p>  (3)新建頭文件,提取自編函數(shù)放入新建頭文件中。</p><p>  (4)再次調(diào)試程序,包含新建的頭文件。</p><p>  (5)調(diào)試成功,保存。</p&

27、gt;<p><b>  4.4 調(diào)試過程:</b></p><p>  (1)通過調(diào)試找到一種數(shù)據(jù)存儲(chǔ)到文件的方法,并且能夠通過正常數(shù)據(jù)、邊沿?cái)?shù)據(jù)、非正常數(shù)據(jù)的測(cè)試。</p><p>  (2)界面友好,有相關(guān)的功能提示,并且布局合理!</p><p>  (3)成功通過編譯,保存相關(guān)設(shè)置,力求達(dá)到最好的效果,給程序閱讀者一目了

28、然的感覺。</p><p>  4.5 調(diào)試結(jié)果截圖:</p><p><b>  (1)功能1測(cè)試;</b></p><p><b> ?。?)功能2測(cè)試;</b></p><p> ?。?)功能3的測(cè)試;</p><p> ?。?)功能4的測(cè)試;</p>&

29、lt;p> ?。?)功能5的測(cè)試;</p><p>  (6)功能6的測(cè)試;</p><p><b>  4.6程序源代源</b></p><p>  //mystr.cpp</p><p>  #include <iostream.h> </p><p>  #include

30、<stdio.h></p><p>  #include"mystr.h" //包含自編的字符串處理庫函數(shù)</p><p>  void main() </p><p><b>  { </b></p><p>  cout<<"|||

31、|****************|||||******************** ||||"<<endl;</p><p>  cout<<"|||| ||字符處理函數(shù)功能|| ||||"<<endl;</p><p>  cout<<"|||| 1.myst

32、rlen計(jì)算字符串的長度 ||||"<<endl;</p><p>  cout<<"|||| 2.mystrsam兩個(gè)字符串的相同字符的個(gè)數(shù)統(tǒng)計(jì) ||||"<<endl;</p><p>  cout<<"|||| 3.mystrcpy將A字符串的所有字符復(fù)制給B |

33、|||"<<endl;</p><p>  cout<<"|||| 4.mystrcat將A、B字符串合并為一個(gè)字符串 ||||"<<endl;</p><p>  cout<<"|||| 5.mystrstr輸出字符串中所取位置所對(duì)應(yīng)字符 ||||"<<endl;</p&

34、gt;<p>  cout<<"|||| 6.mystrrev把字符串的所有字符的逆序輸出 ||||"<<endl; </p><p>  cout<<"||||***************************************** ||||"<<endl; </p><p&g

35、t;  char selection; </p><p><b>  do </b></p><p><b>  { </b></p><p>  char option;</p><p>  cout<<endl;</p><p>  cout<<&

36、quot; -->>請(qǐng)選擇你要的功能: "; </p><p>  cin>>option; </p><p>  for(int i=0;option!='1'&&option!='2'&&option!='3'&&opt

37、ion!='4'&&option!='5'&&option!='6';i++) </p><p><b>  { </b></p><p>  cout<<" -->>錯(cuò)誤的輸入,請(qǐng)重新輸入"<<endl

38、; </p><p>  cin>>option; </p><p><b>  }</b></p><p>  char a[200],b[200]; </p><p>  if(option=='1') </p><p><b>  { </b>

39、;</p><p>  cout<<" -->>請(qǐng)輸入字符串,限制為200個(gè)字符"<<endl; </p><p><b>  gets(a); </b></p><p>  cout<<"該字符串的長度為: "<<mystrl

40、en(a)<<endl; </p><p><b>  } </b></p><p>  else if(option=='2') </p><p><b>  { </b></p><p>  cout<<" -->>請(qǐng)

41、輸入字符串A,限制為200個(gè)字符"<<endl; </p><p><b>  gets(a); </b></p><p>  cout<<" -->>請(qǐng)輸入字符串B,限制為200個(gè)字符"<<endl; </p><p><b>  gets

42、(b); </b></p><p>  if(mystrsam(a,b)!=0) </p><p><b>  {</b></p><p>  cout<<"字符串A與B中共有"<<mystrsam(a,b)<<"個(gè)字符相同的"<<endl;&l

43、t;/p><p><b>  } </b></p><p><b>  else </b></p><p><b>  {</b></p><p>  cout<<"字符串A與B中沒有相等的字符"<<endl;</p>&l

44、t;p><b>  } </b></p><p><b>  }</b></p><p>  else if(option=='3') </p><p><b>  { </b></p><p>  cout<<" -

45、->>請(qǐng)輸入字符串A,限制為200個(gè)字符"<<endl; </p><p><b>  gets(a); </b></p><p>  cout<<" -->>將A字符串的字符復(fù)制給B字符串為:"<<endl;</p><p>  mystrc

46、py(a);</p><p><b>  } </b></p><p>  else if(option=='4') </p><p><b>  { </b></p><p>  cout<<" -->>請(qǐng)輸入字符串A,限制為200

47、個(gè)字符"<<endl; </p><p><b>  gets(a); </b></p><p>  cout<<" -->>請(qǐng)輸入字符串B,限制為200個(gè)字符"<<endl; </p><p><b>  gets(b);</b>

48、;</p><p>  cout<<"輸出后為:";</p><p>  mystrcat(a,b);</p><p><b>  } </b></p><p>  else if(option=='5') </p><p><b>  {

49、 </b></p><p>  cout<<" -->>請(qǐng)輸入字符串A,限制為200個(gè)字符"<<endl; </p><p>  gets(a); </p><p>  mystrstr(a);</p><p><b>  }</b>

50、</p><p>  else if(option=='6') </p><p><b>  { </b></p><p>  cout<<" -->>請(qǐng)輸入字符串A,限制為200個(gè)字符"<<endl; </p><p><b&

51、gt;  gets(a); </b></p><p>  mystrrev(a);</p><p><b>  } </b></p><p>  cout<<endl;</p><p>  cout<<" -->>是否繼續(xù)<

52、y||Y/其他>?"; </p><p>  cin>>selection; </p><p><b>  }</b></p><p>  while(selection=='y'||selection=='Y'); </p><p><b>  }&

53、lt;/b></p><p>  //"mystr.h"</p><p>  int mystrlen(char* p) //實(shí)現(xiàn)1所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  int size = 0;</p><p> 

54、 if(!p) return -1;</p><p><b>  while(*p)</b></p><p><b>  {</b></p><p><b>  size++;</b></p><p><b>  p++;</b></p>&

55、lt;p><b>  }</b></p><p>  return size;</p><p><b>  }</b></p><p>  int mystrsam(char string1[],char string2[]) //實(shí)現(xiàn)2所對(duì)應(yīng)的功能</p><p><b>

56、;  {</b></p><p>  int count=0;</p><p>  for(int i=0;i<mystrlen(string1);i++)</p><p>  for(int j=0;j<mystrlen(string2);j++)</p><p><b>  {</b><

57、/p><p>  if(string1[i]==string2[j])</p><p><b>  count++;</b></p><p><b>  }</b></p><p>  return count;</p><p><b>  }</b><

58、;/p><p>  void mystrcpy(char string1[]) //實(shí)現(xiàn)3所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  char string2[200];</p>

59、<p>  for(i=0,j=0;i<mystrlen(string1);i++,j++)</p><p>  string2[j]=string1[i];</p><p>  for(j=0;j<mystrlen(string1);j++)</p><p>  cout<<string2[j];</p><

60、p>  cout<<endl;</p><p><b>  }</b></p><p>  void mystrcat(char string1[],char string2[]) //實(shí)現(xiàn)4所對(duì)應(yīng)的功能</p><p><b>  {</b></p><p>  for(

61、int i=mystrlen(string1),j=0;i<(mystrlen(string1)+mystrlen(string2));i++,j++)</p><p>  string1[i]=string2[j];</p><p>  for(int m=0;m<mystrlen(string1);m++)</p><p>  cout<<

62、;string1[m];</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  void mystrstr(char string[]) //實(shí)現(xiàn)5所對(duì)應(yīng)的功能</p><p><b>  {</b><

63、/p><p>  int n1,n2;</p><p>  cout<<"請(qǐng)輸入指定位置: "; </p><p><b>  cin>>n1; </b></p><p>  cout<<"請(qǐng)輸入輸出長度: "; </p><p&

64、gt;<b>  cin>>n2; </b></p><p>  for(int i=0;n1<=0||n1>mystrlen(string)||n2>mystrlen(string);i++) </p><p><b>  { </b></p><p>  cout<<"

65、;輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入 "<<endl; </p><p>  cin>>n1>>n2;</p><p><b>  }</b></p><p>  for(int j=n1;j<=n2;j++)</p><p>  cout<<string[j-1];

66、</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  void mystrrev(char string[]) //實(shí)現(xiàn)6所對(duì)應(yīng)的功能</p><p><b>  {</b></p>&

67、lt;p>  cout<<"逆序數(shù)組順序?yàn)?"<<endl;</p><p>  for(int j=mystrlen(string)-1;j>=0;j--)</p><p>  cout<<string[j];</p><p>  cout<<endl;</p><

68、p><b>  }</b></p><p><b>  5.總結(jié)</b></p><p><b> ?。?)可取之處</b></p><p>  通過這次的課程設(shè)計(jì):字符串處理庫函數(shù),更一步加深了我對(duì)程序編寫思路、技巧等等的熟練應(yīng)用。尤其在自定義函數(shù)部分,通過大量的查閱資料,成功實(shí)現(xiàn)了字符串的相

69、關(guān)功能。在程序的調(diào)試部分通過對(duì)各個(gè)功能模塊的逐一調(diào)試,對(duì)正常數(shù)據(jù)、非正常數(shù)據(jù)、邊沿?cái)?shù)據(jù)進(jìn)行測(cè)試,對(duì)有問題的部分耐心的進(jìn)行修改。一步一步使程序準(zhǔn)確無誤。在界面的設(shè)計(jì)上盡量是界面讓人看起來一目了然,迅速看懂程序的相關(guān)作用。在代碼的書寫上善用Tab鍵對(duì)代碼進(jìn)行縮進(jìn),添加相應(yīng)的文字說明,是代碼的結(jié)構(gòu)層次清晰明了,讓閱讀者看起來更加易懂和簡潔。在自定義的頭文件部分中的自編函數(shù)也是布局合理,讓人易懂!</p><p><

70、;b> ?。?)不足之處</b></p><p>  字符串處理庫函數(shù)對(duì)漢字的支持不夠好,例如在功能1、2、5、6中如果輸入的是漢字,那么程序則無法正確處理,而顯示為亂碼的情況!希望今后可以對(duì)代再次修改,力求使程序?qū)ξ覀儑业臐h字支持達(dá)到完美。程序的設(shè)計(jì)上沒有使用面向?qū)ο笤O(shè)計(jì)方法,今后在熟練掌握了相面對(duì)象程序設(shè)計(jì)后我將會(huì)對(duì)此代碼進(jìn)行再次修改,利用數(shù)據(jù)封裝的特性將程序更加完美!</p>

71、<p><b>  附錄:</b></p><p><b>  參考文獻(xiàn)</b></p><p>  1.《C++程序設(shè)計(jì)》 </p><p>  高等院校計(jì)算機(jī)應(yīng)用技術(shù)規(guī)劃教材,譚浩強(qiáng)主編。</p><p>  2.《C++程序設(shè)計(jì)教程》</p><p>  

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論