字符串處理系統課程設計_第1頁
字符串處理系統課程設計_第2頁
字符串處理系統課程設計_第3頁
字符串處理系統課程設計_第4頁
字符串處理系統課程設計_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、課程設計(論文)任務書 軟件 學院軟件+交通運輸 專業 3 班一、課程設計(論文)題目字符處理系統 二、課程設計(論文)工作自 2012 年 6 月 4日起至 2012 年 6 月 10日止。三、課程設計(論文) 地點: 創新大樓 目錄一 課題描述1二 設計目的與要求1三 總體設計2四 詳細設計34.1字符串賦值函數-34.2求取字符串長度函數-44.3字符串復制函數-54.4字符串大小比較-64.5字符串查找-74.6字符串插入-74.7字符串刪除-10五 程序編碼12六 程序調試與測試結果17七 總結19參考文獻19一 課題描述本次課程設計采用c+語言編寫一個字符串處理函數系統,該系統具有

2、將給出任意的兩個字符串,求出其字符串的長度,實現字符串的拷貝、連接、比較的功能;同時具有實現將給定字符串1(主串)字符串2(子串),查找子串在主串中的位置;給定字符串,輸入所要插入的字符串(字符)及插入的位置,實現字符串(字符)的插入的功能;對于給定的字符串,實現刪除特定某個字符的功能。二 設計目的與要求1、 設計目的(1) 熟練掌握c+語言的基本知識和技能。(2) 掌握面向對象程序設計的基本思路和方法;(3) 了解指針、類的繼承、文件的打開和保存、鏈表應用;(4) 利用所學的基本知識和技能,解決面向對象程序設計問題(5) 培養分析、解決問題的能力;提高學生的科技論文寫作能力。2、 設計要求運

3、用c+語言描述數據類、字符串類,每一個類應包含數據成員和成員函數。設計基類和派生類,并運用多態性和虛函數的知識。注重面向對象程序設計理論知識的理解與實際的動一手編程能力。要求設計其有繼承與派生以及多態性的類.理解面向對象程序設計的核心的概念。(1) 建立數據類、字符串類;(2) 數據、字符串信息的初始化;(3) 字符串信息的輸出;(4) 獲得字符串長度;(5) 在字符串中查找一個字符;(6) 在字符串中查找另外一個字符串;(7) 比較字符串;(8) 字符串插入與刪除;三、總體設計定義一個string類,實現對字符串類的賦值、連接、復制、查找、交換等操作。先設計一個總類然后寫出多個子類來實現任務

4、所給定的功能。四、詳細設計 4.1字符串賦值函數:1)字符串賦值函數及輸出算法如下:cout<<"輸入字符串1(長度小于200個字符):"<<endl;cin>>s1;cout<<"輸入字符串2(長度小于200個字符):"<<endl;cin>>s2;cout<<"字符串1為:"<<s1<<endl;cout<<"字符串2為:"<<s2<<endl;2) 字符串賦值函數流程

5、圖如圖4.1所示:圖4.1 字符串初始化賦初值4.2求取字符串長度函數1)字符串長度函數算法如下所示:int i=0;int j=0;char *p1=s1;char *p2=s2;cout<<"字符串1的長度:"<<endl;while(*p1+!='0')+i;/直到碰到0時,i不在+1cout<<i<<endl;while(*p2+!='0')/直到碰到0時,j不在+1+j;cout<<"字符串2的長度:"<<endl;cout<<j

6、<<endl;2)求字符串長度流程圖如圖4.2所示:4.3字符串復制函數1)字符串復制函數算法如下:char *p1=s1;char *p2=s2; cout<<"輸出復制后的字符串:"<<endl;while(*p2!='0')*p1=*p2; p1+; p2+; *p1='0'cout<<s1<<endl;2)字符串復制函數流程圖如圖4.3所示:4.4字符串比較大小:1) 字符串連接函數算法如下:char *p1=s1;char *p2=s2; cout<<"

7、;輸入字符串1(長度小于200個字符):"<<endl;cin>>s1;cout<<"輸入字符串2(長度小于200個字符):"<<endl;cin>>s2;cout<<"輸出兩個字符串大小的比較結果:"<<endl;for(;*p1!='0'|*p2!='0'+p1,+p2)/從第一個字母比較,指針不斷下移,一直到能判斷出大小為止if(*p1-*p2)<0) cout<<"字符串1小于字符串2"

8、;<<endl;break; else if(*p1-*p2)>0) cout<<"字符串1大于于字符串2"<<endl;break;if(*p1='0'&&*p2='0')cout<<"兩個字符串大小相等!"<<endl;2)字符串比較大小函數流程圖如圖4.4所示:4.5字符串查找1) 字符串查找函數算法如下:char a1512 = '0'char a2512 = '0'int i=0;int j=0;co

9、ut << "請輸入字符串: "cin >>a1;/a1為原字符串cout << "請輸入要查找的字符串: "cin >>a2;/a2為要查找的for(i=0;i<(strlen(a1)-strlen(a2)+1);i+)for(j = 0; j < strlen(a2); j+)if(a2j!=a1i+j)break;if(j = strlen(a2)cout << "位置為:"<<i+1<< endl;return 0;cout <

10、;< "不存在" << endl;return 0;4.6字符串插入1) 字符串插入函數算法如下:int i;char s3100;char s4100;char *p1=s1;char *p3=s3;char *p4=s4;/s1為原字符串,s3為要插入的字符串cout<<"輸入字符串(長度小于200個字符):"<<endl;cin>>s1; cout<<"輸入所要插入的字符串:"<<endl;cin>>s3;cout<<"

11、;輸入所要插入的位置:"<<endl;cin>>i; for(p1=&s1i;(*p1)!='0'+p1,+p4)*p4=*p1;/將字符串1賦給4*p4='0'for(p1=&s1i;(*p3)!='0'+p1,+p3)*p1=*p3;*p1='0'while(*p1!='0')+p1;for(p4=s4;(*p4)!='0'+p4,+p1)*p1=*p4; *p1='0'cout<<"輸出插入字符串后的新字符

12、串:"<<endl;cout<<s1<<endl;2) 字符串插入函數流程圖如圖4.6所示: 開始int i;char s3100;char s4100;char *p3=s3;char *p4=s4;char *p1=s1;cout<<"輸入所要插入的字符串"<<endl;cin>>s3;cout<<"輸入所要插入的位置:"<<endl;cin>>i;p1=&s1i(*p1)!='0'*p4=*p1;+p1,+p

13、4*p4='0'p1=&s1i(*p3)!='0'*p1=*p3;+p1,+p3*p1='0'nnyya*p1!='0+p1;p4=s4(*p4)!='0'*p1=*p4;+p4,+p1*p1='0'cout<<"輸出插入字符串后的新字符串:"<<endl;cout<<s1<<endl;結束nnyyb圖4.6字符串插入4.7字符串刪除1) 字符串插入函數算法如下: char a200; int i; cout<<&quo

14、t;請輸入一個字符或字符串:" cin>>a; cout<<"請輸入你要刪除的字符的位置:" cin>>i;/i不能超過字符串的長度 if(i>200) cout<<"輸出錯誤!"<<endl; else for(int j=i;j<200;+j) aj-1=aj; cout<<"刪除后的字符串為:"<<a<<endl; 2) 字符串刪除函數流程圖如圖4.7所示: 圖4.7字符串插入5 程序編碼#include<

15、iostream>#include <string>using namespace std;int menu_select();class stringprivate:char s1200; /定義長度為200的一維字符數組char s2200;public:void enter(); /輸入輸出字符串void getlength();/求取字符串的長度void strcpy(); /復制字符串void strcmp(); /比較字符串的大小int strfind(); /查找字符串void strinsert(); /插入字符串void strdel(); /字符刪除;vo

16、id string:enter() /輸入字符串cout<<"輸入字符串1(長度小于200個字符):"<<endl;cin>>s1;cout<<"輸入字符串2(長度小于200個字符):"<<endl;cin>>s2;cout<<"字符串1為:"<<s1<<endl;cout<<"字符串2為:"<<s2<<endl;void string:getlength() /求取字符串

17、的長度int i=0;int j=0;char *p1=s1;char *p2=s2;cout<<"字符串1的長度:"<<endl;while(*p1+!='0')/直到碰到0時,i不在+1+i;cout<<i<<endl;while(*p2+!='0')/直到碰到0時,j不在+1+j;cout<<"字符串2的長度:"<<endl;cout<<j<<endl;void string:strcpy() /字符串復制char *p1

18、=s1;char *p2=s2; cout<<"輸出復制后的字符串:"<<endl;while(*p2!='0')*p1=*p2; p1+; p2+; *p1='0'cout<<s1<<endl;void string:strcmp() /比較字符串大小cout<<"輸入字符串1(長度小于200個字符):"<<endl;cin>>s1;cout<<"輸入字符串2(長度小于200個字符):"<<en

19、dl;cin>>s2;char *p1=s1;char *p2=s2;cout<<"輸出兩個字符串大小的比較結果:"<<endl;for(;*p1!='0'|*p2!='0'+p1,+p2)/從第一個字母比較,指針不斷下移,一直到能判斷出大小為止 if(*p1-*p2)<0)cout<<"字符串1小于字符串2"<<endl;break; else if(*p1-*p2)>0)cout<<"字符串1大于于字符串2"<

20、<endl;break;if(*p1='0'&&*p2='0')cout<<"兩個字符串大小相等!"<<endl;int string:strfind() /字符串查找char a1512 = '0'char a2512 = '0'int i=0;int j=0;cout << "請輸入字符串: "cin >>a1;/a1為原字符串cout << "請輸入要查找的字符串: "cin >

21、>a2;/a2為要查找的字符串for(i=0;i<(strlen(a1)-strlen(a2)+1);i+)for(j = 0; j < strlen(a2); j+)if(a2j!=a1i+j)break;if(j = strlen(a2)cout << "位置為:"<<i+1<< endl;return 0;cout << "不存在" << endl;return 0;void string:strinsert() /字符串插入int i;char s3100;char s

22、4100;char *p3=s3;char *p4=s4;char *p1=s1;/s1為原字符串,s3為要插入的字符串cout<<"輸入字符串(長度小于200個字符):"<<endl;cin>>s1; cout<<"輸入所要插入的字符串:"<<endl;cin>>s3;cout<<"輸入所要插入的位置:"<<endl;cin>>i; for(p1=&s1i;(*p1)!='0'+p1,+p4)*p4=*

23、p1;/將字符串1賦給4*p4='0'for(p1=&s1i;(*p3)!='0'+p1,+p3)*p1=*p3;*p1='0'while(*p1!='0')+p1;for(p4=s4;(*p4)!='0'+p4,+p1)*p1=*p4; *p1='0'cout<<"輸出插入字符串后的新字符串:"<<endl;cout<<s1<<endl;void string:strdel() /字符串刪除 char a200; int

24、i; cout<<"請輸入一個字符或字符串:" cin>>a; cout<<"請輸入你要刪除的字符的位置:" cin>>i; if(i>200) cout<<"輸出錯誤!"<<endl; else for(int j=i;j<200;+j) aj-1=aj; cout<<"刪除后的字符串為:"<<a<<endl; int main()char choice; string maillist;for

25、(;)choice=menu_select();switch(choice)case 1:maillist.enter();break;case 2:maillist.getlength();break;case 3:maillist.strcpy();break;case 4:maillist.strcmp();break;case 5:maillist.strfind();break;case 6:maillist.strinsert();break;case 7:maillist.strdel();break;case 8:exit(0);return 0;int menu_select

26、()char c;cout<<"n"cout<<" 字符串處理函數系統 n"cout<<" n"cout<<" 1.輸入字符串 n"cout<<" 2.求字符串長度 n"cout<<" 3.復制字符串 n"cout<<" 4.比較字符串 n"cout<<" 5.查找字符串 n"cout<<" 6.插入字符串 n"cout<<" 7.刪除字符串 n"cout<<" 8.退出 n"cout<<"n"cout<<"謝謝使用本系統n"cout<<"n"cout<<"n請輸入(18):"docin.get(c);while(c<'1'|c>'8');return c-48;6 程序調試與測試結在vc+6.0運行界面如圖6.1所示: 圖6.1 字符串處理函數系統菜單界面選擇1,

溫馨提示

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

評論

0/150

提交評論