課程設計--實現字符串的多種操作_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  C++課程設計報告</b></p><p>  課程設計題目:實現字符串的多種操作</p><p><b>  目錄</b></p><p><b>  引言</b></p><p><b>  1.設計目的</b></

2、p><p><b>  2.設計題目</b></p><p><b>  3.設計需求</b></p><p><b>  4.設計總體思路</b></p><p><b>  5.詳細設計</b></p><p><b> 

3、 6.運行結果</b></p><p><b>  7.課程設計心得</b></p><p><b>  8.參考文獻</b></p><p><b>  引言</b></p><p>  隨著人們生活水平的提高,計算機發(fā)展異常迅速。如今,計算機已經深入到我們社會的

4、各個領域,計算機的使用也已不再局限于科學計算,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。通過計算機對各類信息的管理已經成為一種高效、快捷的方式。而C++課程設計是我們實踐性教學環(huán)節(jié)之一,結合實際應用的要求,使課程設計既覆蓋C++的知識點,又接近工程實際需要。通過課程設計的綜合訓練,培養(yǎng)我們實際分析問題、解決問題的能力,以及編程和動手能力,最終目標是通過課程設計這種形式,幫助學我們系統(tǒng)掌握C++這門課程的主要內容,</p&

5、gt;<p>  本課程設計就是要求完成一個字符串類的設計,使所設計出的字符串類具有包括復制、連接、比較、求子串、交換等功能</p><p><b>  1. 設計目的</b></p><p>  本設計通過定義字符串類來實現對字符串的復制、連接、比較、求子串、交換操作。首先定義一個字符串類,通過調用字符串類中成員函數,對字符串類進行復制,然后實現了字符

6、串類之間的連接,字符串類之間的相互比較,求一個字符串的子串,以及實現兩個字符串之間的交換。</p><p><b>  2. 設計題目</b></p><p>  實現字符串的多種操作</p><p><b>  3.設計需求</b></p><p>  通過本次的C++課程設計,讓我們學會把書本上

7、的知識應用到了實際中來。深入了解C++各類及相關函數的應用,結合其它相關知識,如軟件工程等,把所學知識融會貫通。對系統(tǒng)進行功能需求分析,設計合理的數據結構和系統(tǒng)框架,編程簡練,程序功能齊全,能正確運行。</p><p><b>  具有要求如下:</b></p><p>  1字符串類對象的輸入輸出 ;</p><p>  2.字符串的長度 ;

8、</p><p>  3.字符串的連接 ;</p><p>  4.字符串的復制 ;</p><p>  5.字符串的比較 ;</p><p>  6.對其求子字符串 ;</p><p>  7.子串交換功能 ;</p><p><b>  4.設計總體思路</b><

9、/p><p>  我們設計一個程序,定義字符串類,包含存放字符串的字符數組和字符串中字符的個數。實現功能。設計菜單功能選擇,字符串的復制,連接,比較,求子串以及交換</p><p>  Class string設計一個字符串類并構造函數,用strcpy,compare,strcat,Substring及exchange實現各種操作。</p><p>  5.詳細設計#i

10、nclude<iostream></p><p>  #include<fstream></p><p>  using namespace std;</p><p>  char s[12];char s1[20];</p><p>  const int MAX=5;</p><p>  c

11、lass String</p><p><b>  {</b></p><p><b>  public:</b></p><p>  char *str;</p><p>  int length;</p><p>  static void menun()</p&g

12、t;<p>  { cout<<" ▲▼◥▲▼ ◥▲▼◥▲▼◥▲▼◥▲▼ ▲▼◥▲▼◥▲▼◥▲▼◥▲▼"<<endl;</p><p>  cout<<"\t▲▼◥▲ 歡迎進入字符串設計 ▲▼◥▲\t"<<endl;</p>&

13、lt;p>  cout<<" ▲▼◥▲▼ ◥▲▼◥▲▼◥▲▼◥▲▼ ▲▼◥▲▼◥▲▼◥▲▼◥▲▼ "<<endl;</p><p>  cout<<" *^_^* 功能選擇菜單"<<endl;</p><p>  cout<<" ★★★ 1 e

14、nter ,執(zhí)行字符串復制!!! ★★★ "<<endl;</p><p>  cout<<" ★★★ 2 enter ,執(zhí)行字符串鏈接!!! ★★★"<<endl;</p><p>  cout<<" ★★★ 3 enter ,執(zhí)行字符創(chuàng)比較!!!

15、 ★★★"<<endl;</p><p>  cout<<" ★★★ 4 enter ,執(zhí)行字符串求字串!!! ★★★"<<endl;</p><p>  cout<<" ★★★ 5 enter ,執(zhí)行字符串交換!!! ★★★"<<endl;

16、</p><p>  cout<<" ★★★ 0 enter ,退出..."<<endl;</p><p><b>  }</b></p><p>  String(char *s,int l){</p><p>  str=new char[strlen(s)+

17、1];</p><p>  strcpy(str,s);</p><p><b>  length=l;</b></p><p>  cout<<"Construct String!\n";</p><p><b>  }</b></p><p&g

18、t;<b>  ~String()</b></p><p><b>  {</b></p><p>  delete[] str;</p><p><b>  }</b></p><p>  void Strcpy(char *s)</p><p>  

19、{ char *x;</p><p>  x=new char[strlen(s)+1];</p><p>  strcpy(x,s);</p><p>  delete[]str;</p><p><b>  str=x;</b></p><p>  length=strlen(x);<

20、;/p><p>  cout<<str<<endl;</p><p><b>  }</b></p><p>  void Strcat(char *z)</p><p><b>  {</b></p><p><b>  char *a;<

21、;/b></p><p>  a=new char[strlen(z)+length];</p><p>  strcpy(a,str);</p><p>  strcat(a,z);</p><p><b>  str=a;</b></p><p>  cout<<str<

22、;<endl;</p><p><b>  }</b></p><p>  void Compare(char *b)</p><p><b>  {</b></p><p>  cout<<"str compare b is:"<<strcmp(s

23、tr,b)<<endl;</p><p><b>  }</b></p><p>  char * substring(int start,int end)</p><p><b>  {</b></p><p>  char *newstr=new char[end-start+1];

24、</p><p>  int i,j=0;</p><p>  for(i=start;i<end;i++,j++)</p><p>  newstr[j]=str[i];</p><p>  newstr[j]='\0';</p><p>  return newstr;</p>

25、<p><b>  }</b></p><p>  void exchange(char *e) </p><p><b>  {</b></p><p>  char *temp1,*temp2;</p><p>  temp1=new char[length];</p&g

26、t;<p>  temp2=new char[strlen(e)+1];</p><p>  strcpy(temp1,str);</p><p>  strcpy(temp2,e);</p><p>  str=temp2;</p><p><b>  e=temp1;</b></p>&l

27、t;p>  cout<<e<<endl;</p><p>  cout<<str<<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  void write(char s1[10])&

28、lt;/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(!out)</b></

29、p><p><b>  {</b></p><p>  cout<<"Can not open file !"<<endl;</p><p><b>  }</b></p><p>  out<<s1<<"\n";&

30、lt;/p><p>  out.close();</p><p><b>  }</b></p><p>  char * read()</p><p><b>  {</b></p><p>  ifstream in;</p><p>  in.ope

31、n("f:\\filej.text",ios::in);</p><p><b>  if(!in)</b></p><p><b>  {</b></p><p>  cout<<"Can not open file !"<<endl;</p>

32、<p>  return NULL;</p><p><b>  }</b></p><p><b>  int k=1;</b></p><p><b>  while(k)</b></p><p>  { in.getline(s,12);k=0;}</p

33、><p>  in.close();</p><p><b>  return s;</b></p><p><b>  }</b></p><p>  char * read2(int k)</p><p><b>  {</b></p>&

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

35、t;Can not open file !"<<endl;</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  while(k)</b></p><p>  { in.getline(s,12);k--;}</

36、p><p>  in.close();</p><p><b>  return s;</b></p><p><b>  }</b></p><p>  void write2(int n)</p><p><b>  {</b></p>&

37、lt;p>  ofstream out;</p><p>  out.open("f:\\filej.text",ios::out|ios::ate|ios::app);</p><p><b>  if(!out)</b></p><p><b>  {</b></p><p

38、>  cout<<"Can not open file !"<<endl;</p><p>  //return NULL;</p><p><b>  }</b></p><p><b>  while(n)</b></p><p>  { cha

39、r s1[20];</p><p><b>  cin>>s1;</b></p><p>  out<<s1<<"\n";</p><p><b>  n--;}</b></p><p>  cout<<"\t*

40、 文件創(chuàng)建成功!! *\t"<<endl;</p><p>  out.close();</p><p><b>  }</b></p><p>  int main()</p><p><b>  { </b></p><

41、;p>  cout<<"\n C++課程設計:字符串類的設計\n";</p><p>  cout<<" ***********************************************\n";</p><p>  cout<<"

42、 ***** 設計人:劉歡 *****\n";</p><p>  cout<<" ***** 學號:201110910422 *****\n";</p><p>  cout<<" *****

43、 專業(yè):計算機科學與技術2班 *****\n";</p><p>  cout<<" ***********************************************\n";</p><p>  cout<<"\n"<<"請輸入字符串:\n";

44、</p><p>  write2(MAX);</p><p>  String::menun();</p><p>  cout<<"輸入n選擇文件中第幾個字符串:\n";</p><p><b>  int m;</b></p><p><b>  c

45、in>>m;</b></p><p>  cout<<"建立類的對象str1:\n";</p><p>  String str1( read2(m),12);</p><p>  cout<<str1.str<<endl;</p><p>  int k;int

46、 j=1;</p><p>  cout<<"請選擇操作<當輸入為0時結束操作,退出... >\n";</p><p>  while(j!=0&&cin>>k)</p><p><b>  switch(k)</b></p><p><b&g

47、t;  {case 1:</b></p><p>  cout<<"輸入m選擇文件中第幾個字符串復制:\n";</p><p><b>  cin>>m;</b></p><p>  str1.Strcpy(read2(m));write(str1.str);</p>&l

48、t;p>  cout<<"復制后的字符串:";</p><p>  cout<<str1.str <<endl;</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  c

49、out<<"輸入m選擇文件中第幾個字符串鏈接:\n";</p><p><b>  cin>>m;</b></p><p>  str1.Strcat(read2(m));</p><p>  write(str1.str);</p><p>  cout<<&qu

50、ot;連接后的字符串:"<<str1.str<<endl;</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  cout<<"輸入m選擇文件中第幾個字符串進行比較:\n";</p&g

51、t;<p><b>  cin>>m;</b></p><p>  str1.Compare(read2(m));</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  cout<

52、;<"下面開始求子串\n";</p><p><b>  int m,n;</b></p><p>  cout<<"請輸入需要取子串的起始與結束位置: \n";</p><p>  cin>>m>>n;</p><p>  cout&l

53、t;<"所求子串為: ";</p><p>  cout<<str1.substring(m,n)<<endl;</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  cout&

54、lt;<"輸入m選擇文件中第幾個字符串進行交換:\n";</p><p><b>  cin>>m;</b></p><p>  str1.exchange(read2(m)) ;</p><p><b>  break;</b></p><p><b&g

55、t;  case 6:</b></p><p>  default: cout<<"你輸入的功能序號有誤,請重新輸入!!"<<endl;</p><p><b>  case 0:</b></p><p><b>  j=0;</b></p><p

56、>  cout<<"謝謝使用,退出字符串設計....\n";</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>

57、;  }</b></p><p><b>  6.運行結果</b></p><p><b>  7.課程設計心得</b></p><p>  首先,這次課程設計使我深刻感受到平日書本上看似簡單的理論知識在真正派上用場的時候當中所涵蓋的學問是那么多。理論與實踐的距離之間我們今天的努力還只是一個開始。只有理論知識沒

58、有實踐經驗是不可能成為一名出色的軟件設計師的。理論是實踐的基礎,實踐是對所學知識的鞏固與提高,只有理論與實踐相結合才能真正掌握知識。設計思想是很重要的,沒有一個人能說自己對于一個問題考慮得面面具到,一個再成功的個人也離不開一個優(yōu)秀的團體。所以只有通過研究出來的設計思想才是清晰的、全面的,這是一個好的程序最基本的要求,也是我們成功的決定性因素。</p><p>  雖然這次設計我做的不是很成功,但是我通過了自己的努

59、力完成了這次設計,使我增強動手能力的同時也提高了我的基礎文化知識。使我不再單調的只會看課本上的東西而不會運用,讓我懂得了學而會用的道理。在以后的學習中,不再懈怠自己,努力讓自己變得更優(yōu)秀!</p><p><b>  8.參考文獻</b></p><p>  C++程序設計教程(修訂版)錢能著</p><p>  面向對象程序設計(C++語言)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論