




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計(論文)任務(wù)書 軟件 學院軟件+交通運輸 專業(yè) 3 班一、課程設(shè)計(論文)題目字符處理系統(tǒng) 二、課程設(shè)計(論文)工作自 2012 年 6 月 4日起至 2012 年 6 月 10日止。三、課程設(shè)計(論文) 地點: 創(chuàng)新大樓 目錄一 課題描述1二 設(shè)計目的與要求1三 總體設(shè)計2四 詳細設(shè)計34.1字符串賦值函數(shù)-34.2求取字符串長度函數(shù)-44.3字符串復(fù)制函數(shù)-54.4字符串大小比較-64.5字符串查找-74.6字符串插入-74.7字符串刪除-10五 程序編碼12六 程序調(diào)試與測試結(jié)果17七 總結(jié)19參考文獻190一 課題描述本次課程設(shè)計采用c+語言編寫一個字符串處理函數(shù)系統(tǒng),該系統(tǒng)具
2、有將給出任意的兩個字符串,求出其字符串的長度,實現(xiàn)字符串的拷貝、連接、比較的功能;同時具有實現(xiàn)將給定字符串1(主串)字符串2(子串),查找子串在主串中的位置;給定字符串,輸入所要插入的字符串(字符)及插入的位置,實現(xiàn)字符串(字符)的插入的功能;對于給定的字符串,實現(xiàn)刪除特定某個字符的功能。二 設(shè)計目的與要求1、 設(shè)計目的(1) 熟練掌握c+語言的基本知識和技能。(2) 掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;(3) 了解指針、類的繼承、文件的打開和保存、鏈表應(yīng)用;(4) 利用所學的基本知識和技能,解決面向?qū)ο蟪绦蛟O(shè)計問題(5) 培養(yǎng)分析、解決問題的能力;提高學生的科技論文寫作能力。2、 設(shè)計要求
3、運用c+語言描述數(shù)據(jù)類、字符串類,每一個類應(yīng)包含數(shù)據(jù)成員和成員函數(shù)。設(shè)計基類和派生類,并運用多態(tài)性和虛函數(shù)的知識。注重面向?qū)ο蟪绦蛟O(shè)計理論知識的理解與實際的動一手編程能力。要求設(shè)計其有繼承與派生以及多態(tài)性的類.理解面向?qū)ο蟪绦蛟O(shè)計的核心的概念。(1) 建立數(shù)據(jù)類、字符串類;(2) 數(shù)據(jù)、字符串信息的初始化;(3) 字符串信息的輸出;(4) 獲得字符串長度;(5) 在字符串中查找一個字符;(6) 在字符串中查找另外一個字符串;(7) 比較字符串;(8) 字符串插入與刪除;三、總體設(shè)計定義一個string類,實現(xiàn)對字符串類的賦值、連接、復(fù)制、查找、交換等操作。先設(shè)計一個總類然后寫出多個子類來實現(xiàn)任
4、務(wù)所給定的功能。四、詳細設(shè)計 4.1字符串賦值函數(shù):1)字符串賦值函數(shù)及輸出算法如下:cout輸入字符串1(長度小于200個字符):s1;cout輸入字符串2(長度小于200個字符):s2;cout字符串1為:s1endl;cout字符串2為:s2endl;2) 字符串賦值函數(shù)流程圖如圖4.1所示:圖4.1 字符串初始化賦初值4.2求取字符串長度函數(shù)1)字符串長度函數(shù)算法如下所示:int i=0;int j=0;char *p1=s1;char *p2=s2;cout字符串1的長度:endl;while(*p1+!=0)+i;/直到碰到0時,i不在+1coutiendl;while(*p2+!
5、=0)/直到碰到0時,j不在+1+j;cout字符串2的長度:endl;coutjendl;2)求字符串長度流程圖如圖4.2所示:4.3字符串復(fù)制函數(shù)1)字符串復(fù)制函數(shù)算法如下:char *p1=s1;char *p2=s2; cout輸出復(fù)制后的字符串:endl;while(*p2!=0)*p1=*p2; p1+; p2+; *p1=0;couts1endl;2)字符串復(fù)制函數(shù)流程圖如圖4.3所示:4.4字符串比較大?。?) 字符串連接函數(shù)算法如下:char *p1=s1;char *p2=s2; cout輸入字符串1(長度小于200個字符):s1;cout輸入字符串2(長度小于200個字符
6、):s2;cout輸出兩個字符串大小的比較結(jié)果:endl;for(;*p1!=0|*p2!=0;+p1,+p2)/從第一個字母比較,指針不斷下移,一直到能判斷出大小為止if(*p1-*p2)0) cout字符串1小于字符串20) cout字符串1大于于字符串2endl;break;if(*p1=0&*p2=0)cout兩個字符串大小相等!endl;2)字符串比較大小函數(shù)流程圖如圖4.4所示:4.5字符串查找1) 字符串查找函數(shù)算法如下:char a1512 = 0;char a2512 = 0;int i=0;int j=0;cout a1;/a1為原字符串cout a2;/a2為要查找的fo
7、r(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;4.6字符串插入1) 字符串插入函數(shù)算法如下:int i;char s3100;char s4100;char *p1=s1;char *p3=s3;char *p4=s4;/s1為原字符串,s3為要插入的字符串cout輸入字符串(長度小于200個字符):s1; cout輸入所要插入的字符串:s3
8、;cout輸入所要插入的位置: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輸出插入字符串后的新字符串:endl;couts1endl;2) 字符串插入函數(shù)流程圖如圖4.6所示: 開始int i;char s3100;char s4100;char *p3=s3;char *p4=s4;char *p1=s1;cout輸入
9、所要插入的字符串s3;cout輸入所要插入的位置:i;p1=&s1i(*p1)!=0*p4=*p1;+p1,+p4*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;couts1endl;結(jié)束nnyyb圖4.6字符串插入4.7字符串刪除1) 字符串插入函數(shù)算法如下: char a200; int i; couta; couti;/i不能超過字符串的長度 if(i200) cout輸出錯誤!endl; else for(i
10、nt j=i;j200;+j) aj-1=aj; cout刪除后的字符串為:aendl; 2) 字符串刪除函數(shù)流程圖如圖4.7所示: 圖4.7字符串插入5 程序編碼#include#include using namespace std;int menu_select();class stringprivate:char s1200; /定義長度為200的一維字符數(shù)組char s2200;public:void enter(); /輸入輸出字符串void getlength();/求取字符串的長度void strcpy(); /復(fù)制字符串void strcmp(); /比較字符串的大小int
11、strfind(); /查找字符串void strinsert(); /插入字符串void strdel(); /字符刪除;void string:enter() /輸入字符串cout輸入字符串1(長度小于200個字符):s1;cout輸入字符串2(長度小于200個字符):s2;cout字符串1為:s1endl;cout字符串2為:s2endl;void string:getlength() /求取字符串的長度int i=0;int j=0;char *p1=s1;char *p2=s2;cout字符串1的長度:endl;while(*p1+!=0)/直到碰到0時,i不在+1+i;coutie
12、ndl;while(*p2+!=0)/直到碰到0時,j不在+1+j;cout字符串2的長度:endl;coutjendl;void string:strcpy() /字符串復(fù)制char *p1=s1;char *p2=s2; cout輸出復(fù)制后的字符串:endl;while(*p2!=0)*p1=*p2; p1+; p2+; *p1=0;couts1endl;void string:strcmp() /比較字符串大小cout輸入字符串1(長度小于200個字符):s1;cout輸入字符串2(長度小于200個字符):s2;char *p1=s1;char *p2=s2;cout輸出兩個字符串大小的
13、比較結(jié)果:endl;for(;*p1!=0|*p2!=0;+p1,+p2)/從第一個字母比較,指針不斷下移,一直到能判斷出大小為止 if(*p1-*p2)0)cout字符串1小于字符串20)cout字符串1大于于字符串2endl;break;if(*p1=0&*p2=0)cout兩個字符串大小相等!endl;int string:strfind() /字符串查找char a1512 = 0;char a2512 = 0;int i=0;int j=0;cout a1;/a1為原字符串cout a2;/a2為要查找的字符串for(i=0;i(strlen(a1)-strlen(a2)+1);i+
14、)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 s4100;char *p3=s3;char *p4=s4;char *p1=s1;/s1為原字符串,s3為要插入的字符串cout輸入字符串(長度小于200個字符):s1; cout輸入所要插入的字符串:s3;cout輸入所要插入的位置:i; for(p1=&s1
15、i;(*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輸出插入字符串后的新字符串:endl;couts1endl;void string:strdel() /字符串刪除 char a200; int i; couta; couti; if(i200) cout輸出錯誤!endl; else for(int j=i;j200;+j) aj-1=aj; cou
16、t刪除后的字符串為:aendl; int main()char choice; string maillist;for(;)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:mail
17、list.strdel();break;case 8:exit(0);return 0;int menu_select()char c;coutn;cout 字符串處理函數(shù)系統(tǒng) n;cout n;cout 1.輸入字符串 n;cout 2.求字符串長度 n;cout 3.復(fù)制字符串 n;cout 4.比較字符串 n;cout 5.查找字符串 n;cout 6.插入字符串 n;cout 7.刪除字符串 n;cout 8.退出 n;coutn;cout謝謝使用本系統(tǒng)n;coutn;coutn請輸入(18):;docin.get(c);while(c8);return c-48;6 程序調(diào)試與測試結(jié)
18、在vc+6.0運行界面如圖6.1所示: 圖6.1 字符串處理函數(shù)系統(tǒng)菜單界面選擇1,輸入字符串1:c+kecheng,和字符串2:zifuchuan,運行界面如圖6.2所示:圖6.2字符串賦初值并輸出選擇2,運行界面如圖6.3所示:圖6.3 字符串的長度選擇3,運行界面如圖6.4所示:圖6.4 字符串復(fù)制選擇4,運行界面如圖6.5所示:(1)(2)(3)圖6.5 字符串比較大小選擇5,輸入字符串:kaoshichengji,查找cheng運行界面如圖6.11所示:若不存在,如圖所示圖6.6字符串查找選擇6,插入字符串 將she插入到c+kechengji中,運行界面如圖6.12所示:圖6.7字符串插入選擇7,輸入字符串huaadongjiaoda,刪除a,運行界面如圖6.12所示:
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 滬教版高中語文第四冊諫太宗十思疏 同步練習根據(jù)課文內(nèi)容默寫填空
- 高中語文第四冊哈姆萊特 同步練習 語言積累
- 內(nèi)墻面維修合同范例
- 勞務(wù)公司自己招工合同范例
- 代理注銷合同范例 英文
- 傳遞娛樂經(jīng)紀合同范例
- 勞務(wù)分包加采購合同范例
- 個人發(fā)票供貨合同范例
- 公司多人轉(zhuǎn)讓合同范例
- 加工水稻售賣合同范例
- 鉗工實操評分表(凹凸配合)
- 鑄造廠熔煉工部安全操作規(guī)程
- 人類進化史精品課件
- 魯濱遜漂流記讀后感PPT
- 總包單位向門窗單位移交門窗安裝工程工作面交接單
- 設(shè)備供貨安裝方案(通用版)
- 【高中地理課件】2022-2023學年高中地理人教版(2019)選擇性必修1 構(gòu)造地貌的形成 航拍之旅課件
- 公開招聘社區(qū)居委專職工作人員考試筆試、面試題集及相關(guān)知識(11套試題含答案)
- 《植物生理學》課件第三章+植物的光合作用
- 中國藥膳理論與實踐-藥膳基本理論和技能
- 華東師大版七年級初一數(shù)學下冊全套試卷(單元、期中、期末)
評論
0/150
提交評論