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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1 題目內(nèi)容及設(shè)計要求1</p><p><b>  2 總體設(shè)計1</b></p><p>  2.1 總體功能框圖1</p><p>  2.2 類的設(shè)計說明2</p><p>  2.3

2、 主要算法流程圖3</p><p>  3程序清單及注釋5</p><p>  4運行結(jié)果與分析5</p><p><b>  5總結(jié)5</b></p><p><b>  6參考文獻(xiàn)5</b></p><p>  1 題目內(nèi)容及設(shè)計要求</p>

3、;<p><b>  字符串類的設(shè)計</b></p><p>  定義字符串類(String),包含存放字符串的字符數(shù)組和字符串中字符的個數(shù)。</p><p> ?。?)字符串的輸入與賦值;</p><p> ?。?)字符串的運算:連接、復(fù)制、查找、交換、求子串、比較;</p><p> ?。?)字符串的輸

4、出:對字符串的輸入和輸出都用文件實現(xiàn)。</p><p><b>  2 總體設(shè)計</b></p><p>  2.1 總體功能框圖</p><p>  輸入幾組字符串,字符串的輸入和輸出都用文件實現(xiàn),對于輸入的字符串,</p><p>  進(jìn)行相應(yīng)的連接、復(fù)制、查找、交換、求子串、比較等字符串的運算;</p>

5、;<p>  以直接人性話的操作界面展現(xiàn)出來,當(dāng)執(zhí)行字符串的相應(yīng)運算時,</p><p>  調(diào)用程序中相應(yīng)的對應(yīng)部分的函數(shù)模塊進(jìn)行操作。</p><p><b>  總體框圖:</b></p><p><b>  圖2-1總體框圖</b></p><p>  2.2 類的設(shè)計說明

6、</p><p>  圖2-2類string的說明圖</p><p>  2.3 主要算法流程圖</p><p><b>  Y</b></p><p><b>  N</b></p><p>  圖2-3主要算法流程圖</p><p><b&

7、gt;  模塊功能流程圖:</b></p><p>  圖2-4連接模塊流程圖 圖2-5交換模塊流程圖</p><p><b>  Y</b></p><p>  N T</p><p>  圖2-6 Read功能模塊圖

8、</p><p><b>  程序清單及注釋</b></p><p>  #include<iostream></p><p>  #include<fstream></p><p>  using namespace std;</p><p>  char s[12];c

9、har s1[20];</p><p>  const int MAX=5;</p><p>  class String</p><p><b>  {</b></p><p><b>  public:</b></p><p>  char *str;</p>

10、<p>  int length;</p><p>  static void menun()</p><p>  { cout<<" ******************************* "<<endl;</p><p>  cout&

11、lt;<"\t* 歡迎進(jìn)入字符串設(shè)計 *\t"<<endl;</p><p>  cout<<" ******************************* "<<endl;</p>

12、<p>  cout<<" 1 enter ,執(zhí)行字符串復(fù)制!!!"<<endl;</p><p>  cout<<" 2 enter ,執(zhí)行字符串鏈接!!!"<<endl;</p><p>  cout<<"

13、 3 enter ,執(zhí)行字符創(chuàng)比較!!!"<<endl;</p><p>  cout<<" 4 enter ,執(zhí)行字符串求字串!!!"<<endl;</p><p>  cout<<" 5 enter ,執(zhí)行字符串交換!

14、!!"<<endl;</p><p>  cout<<" 0 enter ,退出..."<<endl;</p><p><b>  }</b></p><p>  String(char *s,int l)//構(gòu)造函數(shù)</p><p

15、><b>  {</b></p><p>  str=new char[strlen(s)+1];</p><p>  strcpy(str,s);</p><p><b>  length=l;</b></p><p>  cout<<"Construct String

16、!\n";</p><p><b>  }</b></p><p>  ~String()//析構(gòu)函數(shù)</p><p><b>  {</b></p><p>  delete[] str;</p><p><b>  }</b></p&

17、gt;<p>  void Strcpy(char *s)//復(fù)制</p><p>  { char *x;</p><p>  x=new char[strlen(s)+1];</p><p>  strcpy(x,s);</p><p>  delete[]str;</p><p><b&g

18、t;  str=x;</b></p><p>  length=strlen(x);</p><p>  cout<<str<<endl;</p><p><b>  }</b></p><p>  void Strcat(char *z)//連接</p><p&g

19、t;<b>  {</b></p><p><b>  char *a;</b></p><p>  a=new char[strlen(z)+length];</p><p>  strcpy(a,str);</p><p>  strcat(a,z);</p><p>&

20、lt;b>  str=a;</b></p><p>  cout<<str<<endl;</p><p><b>  }</b></p><p>  void Compare(char *b)//比較</p><p><b>  {</b></p>

21、;<p>  cout<<"str compare b is:"<<strcmp(str,b)<<endl;</p><p><b>  }</b></p><p>  char * substring(int start,int end)//求子串</p><p><

22、b>  {</b></p><p>  char *newstr=new char[end-start+1];</p><p>  int i,j=0;</p><p>  for(i=start;i<end;i++,j++)</p><p>  newstr[j]=str[i];</p><p&

23、gt;  newstr[j]='\0';</p><p>  return newstr;</p><p><b>  }</b></p><p>  void exchange(char *e)//交換</p><p><b>  {</b></p><p>

24、;  char *temp1,*temp2;</p><p>  temp1=new char[length];</p><p>  temp2=new char[strlen(e)+1];</p><p>  strcpy(temp1,str);</p><p>  strcpy(temp2,e);</p><p>

25、  str=temp2;</p><p><b>  e=temp1;</b></p><p>  cout<<e<<endl;</p><p>  cout<<str<<endl;</p><p><b>  }</b></p><

26、;p><b>  };</b></p><p>  void write(char s1[10])</p><p><b>  {</b></p><p>  ofstream out;</p><p>  out.open("f:\\filej.text",ios::ou

27、t|ios::ate|ios::app);</p><p><b>  if(!out)</b></p><p><b>  {</b></p><p>  cout<<"Can not open file !"<<endl;</p><p><b&

28、gt;  }</b></p><p>  out<<s1<<"\n";</p><p>  out.close();</p><p><b>  }</b></p><p>  char * read()</p><p><b> 

29、 {</b></p><p>  ifstream in;</p><p>  in.open("f:\\filej.text",ios::in);</p><p><b>  if(!in)</b></p><p><b>  {</b></p>&l

30、t;p>  cout<<"Can not open file !"<<endl;</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  int k=1;</b></p><p><b&

31、gt;  while(k)</b></p><p>  { in.getline(s,12);k=0;}</p><p>  in.close();</p><p><b>  return s;</b></p><p><b>  }</b></p><p> 

32、 char * read2(int k)</p><p><b>  {</b></p><p>  ifstream in;</p><p>  in.open("f:\\filej.text",ios::in);</p><p><b>  if(!in)</b></p

33、><p><b>  {</b></p><p>  cout<<"Can not open file !"<<endl;</p><p>  return NULL;</p><p><b>  }</b></p><p><b

34、>  while(k)</b></p><p>  { in.getline(s,12);k--;}</p><p>  in.close();</p><p><b>  return s;</b></p><p><b>  }</b></p><p>

35、  void write2(int n)</p><p><b>  {</b></p><p>  ofstream out;</p><p>  out.open("f:\\filej.text",ios::out|ios::ate|ios::app);</p><p><b>  if

36、(!out)</b></p><p><b>  {</b></p><p>  cout<<"Can not open file !"<<endl;</p><p>  //return NULL;</p><p><b>  }</b>&l

37、t;/p><p><b>  while(n)</b></p><p>  { char s1[20];</p><p><b>  cin>>s1;</b></p><p>  out<<s1<<"\n";</p><p>

38、;<b>  n--;}</b></p><p>  cout<<"\t* 文件創(chuàng)建成功!! *\t"<<endl;</p><p>  out.close();</p><p><b>  }</b></p>

39、<p>  int main()</p><p><b>  { </b></p><p>  cout<<"\nC++課程設(shè)計:字符串類的設(shè)計\n";</p><p>  cout<<" 設(shè)計人:鐘以軍\n";</p><p>  cout&

40、lt;<" 學(xué)號:0903050434\n";</p><p>  cout<<"********************************************************\n";</p><p>  cout<<"************************************

41、********************\n";</p><p>  cout<<"\n"<<"開始創(chuàng)建文件請輸入字符串:\n";</p><p>  write2(MAX);</p><p>  String::menun();</p><p>  cout<&

42、lt;"輸入n選擇文件中第幾個字符串:\n";</p><p><b>  int m;</b></p><p><b>  cin>>m;</b></p><p>  cout<<"建立類的對象str1:\n";</p><p>  

43、String str1( read2(m),12);</p><p>  cout<<str1.str<<endl;</p><p>  int k;int j=1;</p><p>  cout<<"請選擇執(zhí)行什么操作<當(dāng)輸入為0是結(jié)束操作,退出... >\n";</p><p

44、>  while(j!=0&&cin>>k)</p><p><b>  switch(k)</b></p><p><b>  {case 1:</b></p><p>  cout<<"輸入m選擇文件中第幾個字符串復(fù)制:\n";</p>

45、<p><b>  cin>>m;</b></p><p>  str1.Strcpy(read2(m));write(str1.str);</p><p>  cout<<"復(fù)制后的字符串:";</p><p>  cout<<str1.str <<endl;<

46、;/p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  cout<<"輸入m選擇文件中第幾個字符串鏈接:\n";</p><p><b>  cin>>m;</b><

47、/p><p>  str1.Strcat(read2(m));</p><p>  write(str1.str);</p><p>  cout<<"連接后的字符串:"<<str1.str<<endl;</p><p><b>  break;</b></p&g

48、t;<p><b>  case 3:</b></p><p>  cout<<"輸入m選擇文件中第幾個字符串進(jìn)行比較:\n";</p><p><b>  cin>>m;</b></p><p>  str1.Compare(read2(m));</p>

49、;<p><b>  break;</b></p><p><b>  case 4:</b></p><p>  cout<<"下面開始求子串\n";</p><p><b>  int m,n;</b></p><p>  co

50、ut<<"請輸入需要取子串的起始與結(jié)束位置: \n";</p><p>  cin>>m>>n;</p><p>  cout<<"所求子串為: ";</p><p>  cout<<str1.substring(m,n)<<endl;</p&

51、gt;<p><b>  break;</b></p><p><b>  case 5:</b></p><p>  cout<<"輸入m選擇文件中第幾個字符串進(jìn)行交換:\n";</p><p><b>  cin>>m;</b></p

52、><p>  str1.exchange(read2(m)) ;</p><p><b>  break;</b></p><p><b>  case 0:</b></p><p><b>  j=0;</b></p><p>  cout<<

53、"謝謝使用,退出字符串設(shè)計....\n";</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b><

54、/p><p><b>  運行結(jié)果與分析</b></p><p>  圖4-1基本操作界面</p><p>  圖4-2字符串創(chuàng)建成功</p><p>  圖4-3實現(xiàn)字符串的復(fù)制</p><p>  圖4-4實現(xiàn)字符串的鏈接</p><p>  圖4-5實現(xiàn)字符串的比較<

55、;/p><p>  圖4-6實現(xiàn)字符串的求子串</p><p>  圖4-6實現(xiàn)字符串的交換</p><p>  運行結(jié)果符合題目的要求,實現(xiàn)了對字符串的連接、復(fù)制、查找、求子串、比較、交換</p><p><b>  等操作。</b></p><p><b>  總結(jié)</b>&

56、lt;/p><p>  通過對這一課題的設(shè)計和實現(xiàn),我對Micosoft Visual C++環(huán)境進(jìn)行了深一步的了解,并逐漸開始熟練Micosoft Visual C++環(huán)境的工作界面,以及對每一個快捷鍵的熟悉。并認(rèn)識到,熟悉這些快捷鍵,極為便捷編寫程序,但是還要更加熟悉。編程時要養(yǎng)成良好的風(fēng)格,注意相同內(nèi)容的縮進(jìn)和對齊。這樣做,可以使程序代碼出錯的情況下,可以快速并且便捷的查找到錯誤的行,利于很好的修改。通過這

57、次編程我們深深的感受到對代碼的變量命名,代碼內(nèi)注釋格式,甚至嵌套中行縮進(jìn)的長度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫習(xí)慣,不但有助于代碼的移植和糾錯,也有助于不同人員之間的協(xié)作。</p><p>  同時,在*老師的身上我學(xué)得到很多實用的知識,在此表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和指導(dǎo)老師再次表示忠心的感謝!</p><p><b>  參考文獻(xiàn)</b>&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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論