C++課程設(shè)(字符串)_第1頁
C++課程設(shè)(字符串)_第2頁
C++課程設(shè)(字符串)_第3頁
C++課程設(shè)(字符串)_第4頁
C++課程設(shè)(字符串)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)說明書 課 程 名 稱: C+設(shè)計(jì) 課 程 代 碼: 題 目: 字符串類的設(shè)計(jì) 年級(jí)/專業(yè)/班: 學(xué) 生 姓 名: 學(xué) 號(hào): 指 導(dǎo) 教 師: 開 題 時(shí) 間: 年 月 日完 成 時(shí) 間: 年 月 日目 錄一 引 言2二 設(shè)計(jì)目的與任務(wù)2三 設(shè)計(jì)方案2 1 總體設(shè)計(jì)2 2 詳細(xì)設(shè)計(jì)3四 程序清單5五 程序調(diào)試與體會(huì)7六 運(yùn)行結(jié)果11七 結(jié) 論12八 參考文獻(xiàn)12摘 要 本設(shè)計(jì)通過定義字符串類來實(shí)現(xiàn)對(duì)字符串的賦值、連接、復(fù)制、查找、交換操作。首先定義一個(gè)字符串類,通過調(diào)用字符串類中成員函數(shù),對(duì)字符串類進(jìn)行賦值,然后實(shí)現(xiàn)了字符串類之間的連接,字符串類之間的交換,最后可以對(duì)該字符串類中的字符

2、串進(jìn)行查找。關(guān)鍵字:字符串;類;成員函數(shù);對(duì)象Abstract By defining the design of this type of string to string to the realization of the assignment, to connect, copy, find, exchange operations. First of all, the definition of a type of string, by calling members of the String class function, the type of string for assignm

3、ent, and then realized the connection between the type of string, string-type between the copy, between string-type In exchange, the last class to the string of string to find.Keywords: string; category; members of the function; object。C+程序設(shè)計(jì)課程設(shè)計(jì)-字符串類的設(shè)計(jì)一 引 言隨著人們生活水平的提高,計(jì)算機(jī)發(fā)展異常迅速。如今,計(jì)算機(jī)已經(jīng)深入到我們社會(huì)的各個(gè)領(lǐng)

4、域,計(jì)算機(jī)的使用也已不再局限于科學(xué)計(jì)算,它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。通過計(jì)算機(jī)對(duì)各類信息的管理已經(jīng)成為一種高效、快捷的方式。本課程設(shè)計(jì)就是要求完成一個(gè)字符串類的設(shè)計(jì),使所設(shè)計(jì)出的字符串類具有包括賦值、連接、復(fù)制、查找、交換等功能二 設(shè)計(jì)目的與任務(wù)1、設(shè)計(jì)目的:這個(gè)程序是通過C+語言采用向量的方法來設(shè)計(jì)的。通過本次的C+課程設(shè)計(jì),我們將會(huì)把平日書本上的知識(shí)真正應(yīng)用到了實(shí)際中來。深入了解C+各類及相關(guān)函數(shù)的應(yīng)用,結(jié)合其它相關(guān)知識(shí),如軟件工程等,把所學(xué)知識(shí)融會(huì)貫通。2、設(shè)計(jì)任務(wù):我們此次做的字符串類設(shè)計(jì)課程將要完成以下功能:1字符串類對(duì)象的輸入輸出 ;2.字符串的長(zhǎng)度 ;3.

5、字符串的連接 ;4.字符串的拷貝 ;5.字符串的減法 ;6.子串在主串中的定位 ;7.子串替換功能 ; 三 設(shè)計(jì)方案1 總體設(shè)計(jì)定義一個(gè)String類,實(shí)現(xiàn)對(duì)字符串類的賦值、連接、復(fù)制、查找、交換等操作。先設(shè)計(jì)一個(gè)總類然后寫出多個(gè)子類來實(shí)現(xiàn)任務(wù)所給定的功能。2 詳細(xì)設(shè)計(jì)程序中用到的函數(shù):通過下列成員函數(shù)來說明設(shè)計(jì)中需要考慮的問題。String類是用來對(duì)字符串類的賦值,字符串之間的比較,字符串之間的連接,字符串之間的相互復(fù)制,字符串之間的交換,字符串中的字符查找等功能。1.連接子類代碼清單如下:class a創(chuàng)建一個(gè)構(gòu)造函數(shù)定義一個(gè)字符串?dāng)?shù)組str2;從鍵盤上獲取字符串存入str2;定義一個(gè)字符

6、串存放數(shù)組s2,并將str2中的字符串放入s2;定義一個(gè)字符串存放數(shù)組s3;調(diào)運(yùn)append( )函數(shù)連接s2到s1后并賦s3;輸出s3;通過此子類的運(yùn)行可以將兩個(gè)不同的字符串連接在一起. 2. 復(fù)制子類代碼清單如下:class b 創(chuàng)建一個(gè)構(gòu)造函數(shù)輸入一個(gè)字符串存入s1中;定義一個(gè)字符串存放數(shù)組s2;調(diào)運(yùn)函數(shù)的s1拷貝給s2;輸出s2;通過此子類的運(yùn)行可以將第二個(gè)字符串覆蓋第一個(gè)字符串. 3.查找子類代碼清單如下:class c創(chuàng)建一個(gè)構(gòu)造函數(shù) 輸入一個(gè)字符串存入s1中;定義一個(gè)字符串?dāng)?shù)組str2;從鍵盤上獲取字符串存入str2;如果str2的字符串的長(zhǎng)度大于s1的長(zhǎng)度,則提示錯(cuò)誤;否則調(diào)運(yùn)

7、find( )函數(shù)將子串的位置顯示出來;;通過該子類可以實(shí)現(xiàn)字符的查找功能. 4.交換類代碼清單如下: Class d創(chuàng)建一個(gè)構(gòu)造函數(shù) 輸入一個(gè)字符串存入s1中;定義一個(gè)字符串?dāng)?shù)組str2;從鍵盤上獲取字符串存入str2;定義一個(gè)字符串?dāng)?shù)組s2, 將str2中的字符串放入s2中;調(diào)運(yùn)swap()實(shí)現(xiàn)s1與s2交換,并把交換后的字符串放入s1中;將s1顯示出來;;該子類可以實(shí)現(xiàn)兩組不同的字符串的交換. 5 字串類代碼清單如下:class e創(chuàng)建一個(gè)構(gòu)造函數(shù) 輸入一個(gè)字符串存入s1中;定義一個(gè)整型數(shù)start表示子串的開始位置,定義一個(gè)整型數(shù)n表示子串的長(zhǎng)度;調(diào)運(yùn)s1.assign(s1,star

8、t-1,n)得到子串,并將它存入s3中;將s3顯示出來;;通過該類可以查找子串在主串的位置; 6.比較類的代碼清單如下: class f創(chuàng)建一個(gè)構(gòu)造函數(shù) 輸入一個(gè)字符串存入s1中;定義一個(gè)字符串?dāng)?shù)組str2;從鍵盤上獲取字符串存入str2;定義一個(gè)字符串?dāng)?shù)組s2, 將str2中的字符串放入s2中;如果s1的字典大小小于s2(調(diào)運(yùn)compare( )函數(shù)實(shí)現(xiàn)比較),則輸出s1比s2小;如果s1的字典大小大于s2,則輸出s1比s2大;如果s1的字典大小等于s2,則輸出s1與s2相等;;通過該類可以比較兩組字符串的大小.void main( )輸出菜單;輸入字符串s1;獲取s1的長(zhǎng)度;使用一個(gè)循環(huán)如

9、果選擇功能1,則調(diào)運(yùn)類a,并通過構(gòu)造函數(shù)輸入s1;如果選擇功能2,則調(diào)運(yùn)類b,并通過構(gòu)造函數(shù)輸入s1;如果選擇功能3,則調(diào)運(yùn)類c,并通過構(gòu)造函數(shù)輸入s1;如果選擇功能4,則調(diào)運(yùn)類d,并通過構(gòu)造函數(shù)輸入s1;如果選擇功能5,則調(diào)運(yùn)類e,并通過構(gòu)造函數(shù)輸入s1;如果選擇功能6,則調(diào)運(yùn)類f,并通過構(gòu)造函數(shù)輸入s1;四 程序清單#include <iostream.h>#include <string>using namespace std;class a/連接類public:a(string &s1) char str220;cout<<"請(qǐng)輸入

10、要連接的字符串:"<<endl;gets(str2);string s2(str2);string s3; s3=s1.append(s2);/連接s2到s1后并賦s3 cout<<s3.data()<<endl;class b/復(fù)制類public:b(string &s1) string s2(s1);/把s1拷貝給s2cout<<"字符串2:"<<s2.data()<<endl;class c/查找類public:c (string &s1) cout<<&qu

11、ot;請(qǐng)輸入要查找的字符或字符串"<<endl;char str220;gets(str2);if(s1.find(str2)>s1.length()cout<<"找不到你輸入的字符或字符串!"<<endl;/要查找的字符串開始位置大于原字符串的長(zhǎng)度就是沒有這個(gè)字符串else cout<<"你要找的字符串的開始位置是:"<<s1.find(str2)+1<<endl;class d/交換類public:d(string &s1) char str220;cou

12、t<<"請(qǐng)輸入要交換字符串s2:"<<endl;gets(str2);string s2(str2); s1.swap(s2);/把s2和s1交換cout<<"交換后s1為:"<<endl;cout<<s1.data()<<endl;class e/求子串類public:e(string &s1) int start,n;cout<<"請(qǐng)輸入子串的起始位置:"cin>>start;cout<<"請(qǐng)輸入子串的長(zhǎng)度

13、:" cin>>n;string s3=s1.assign(s1,start-1,n);/把字符串s中從start開始的n個(gè)字符賦給當(dāng)前字符串cout<<s3.data()<<endl;class f/比較類public:f(string &s1) char str220;cout<<"請(qǐng)輸入要比較的字符串s2:"<<endl;gets(str2);string s2(str2);if(pare(s2)<0)/比較其大小cout<<"s1比s2小"<&l

14、t;endl; if(pare(s2)>0)cout<<"s1比s2大"<<endl; if(pare(s2)=0)cout<<"s1與s2相等"<<endl;void main( )cout<<"menu:"<<endl;cout<<"1)link 2)copy 3)find 4)change 5)seek 6)compare 7)exit"<<endl;char str120;int num=0,len;cou

15、t<<"請(qǐng)輸入一個(gè)字符串s1:"<<endl;gets(str1);string s1(str1);len=strlen(str1);/保存字符串長(zhǎng)度while(num!=7)/功能選項(xiàng)cout<<"請(qǐng)選擇功能的序號(hào):"<<endl;cin>>num; if(num=1)a a(s1);if(num=2)b a(s1);if(num=3)c a(s1);if(num=4)d a(s1);if(num=5)e a(s1);if(num=6)f a(s1);五 程序調(diào)試與體會(huì)1)調(diào)試在對(duì)程序的調(diào)過程

16、中,我們遇到了很多不同的問題,在發(fā)現(xiàn)問題與解決問題的過程中我們深刻體會(huì)到一個(gè)程序所要具備的健全性的重要性,我們必須考慮到該程序在解決具體問題的直觀性與全面性,也就是要加強(qiáng)程序的可讀性,也就是要盡可能地多加注釋,這樣就大大方便了我們提高了我們的進(jìn)展。也會(huì)方便讀者很容易就了解到程序的層次及功能。我們所編寫的程序具體要求我們輸入一條完整的記錄其中包括:1.連接:通過運(yùn)行結(jié)果的顯示我們看出此功能已經(jīng)實(shí)現(xiàn).2.復(fù)制:通過第二個(gè)運(yùn)行圖的結(jié)果顯示,第二個(gè)功能復(fù)制完成;3.查找:通過該圖可以得出。第三個(gè)功能查找實(shí)現(xiàn)。4.交換: 根據(jù)該圖顯示的結(jié)果得知交換功能已實(shí)現(xiàn)。5.求子串已實(shí)現(xiàn):6.比較:通過該圖顯示的結(jié)

17、果得出,第六個(gè)功能都實(shí)現(xiàn).2)體會(huì)通過本次課程設(shè)計(jì),我們整個(gè)團(tuán)隊(duì)的每個(gè)成員都是受益匪淺:首先,我們深刻感受到平日書本上看似簡(jiǎn)單的理論知識(shí)在真正派上用場(chǎng)的時(shí)候當(dāng)中所涵蓋的學(xué)問是那么多。理論與實(shí)踐的距離之間我們今天的努力還只是一個(gè)開始。在完成此次課程設(shè)計(jì)的過程中我們屢屢碰到不同的問題。比如;面向?qū)ο蟮乃枷?。只有理論知識(shí)沒有實(shí)踐經(jīng)驗(yàn)是不可能成為一名出色的軟件設(shè)計(jì)師的。理論是實(shí)踐的基礎(chǔ),實(shí)踐是對(duì)所學(xué)知識(shí)的鞏固與提高,只有理論與實(shí)踐相結(jié)合才能真正掌握知識(shí)。設(shè)計(jì)思想是很重要的,沒有一個(gè)人能說自己對(duì)于一個(gè)問題考慮得面面具到,一個(gè)再成功的個(gè)人也離不開一個(gè)優(yōu)秀的團(tuán)體。所以只有通過大家反覆討論出來的設(shè)計(jì)思想才是清

18、晰的、全面的,這是一個(gè)好的程序最基本的要求,也是我們成功的決定性因素。在本次程序設(shè)計(jì)過程中,大家共同努力,分工合作,一起到圖書館找資料,找范文,共同學(xué)習(xí),相互交流所學(xué)知識(shí)與經(jīng)驗(yàn),促使著我們共同進(jìn)步并順利地完成了該項(xiàng)任務(wù)。每個(gè)人的力量是有限的,但一旦團(tuán)結(jié)起來力量將是無窮的。在競(jìng)爭(zhēng)如此激烈的當(dāng)今社會(huì),這些東西都是我們終生受用的,因此對(duì)我們以后的工作和學(xué)習(xí)奠定了不錯(cuò)的基礎(chǔ)??傮w來說,這次課程設(shè)計(jì)我們付出了努力但也是獲得了很多。六 運(yùn)行結(jié)果我們也對(duì)該程序所能實(shí)現(xiàn)的功能作了相應(yīng)的代碼進(jìn)行了標(biāo)識(shí)。這樣用戶就可以很方便直觀地使用該程序。圖1 字符串連接功能的界面經(jīng)過運(yùn)行之后,出現(xiàn)了一個(gè)與用戶的對(duì)話框,這個(gè)對(duì)

19、話框就是圖1。在這個(gè)對(duì)話框中給出了六種功能:我們輸入一個(gè)字符串thank;選擇功能1(連接字符串);再輸入一個(gè)字符串you;再按下回車鍵,此程序就將連接字符串;顯示運(yùn)行結(jié)果thankyou。圖2 字符串復(fù)制功能的界面經(jīng)過運(yùn)行之后,出現(xiàn)了一個(gè)與用戶的對(duì)話框,這個(gè)對(duì)話框就是圖2。在這個(gè)對(duì)話框中給出了六種功能:我們輸入一個(gè)字符串thank;選擇功能2(復(fù)制字符串);再按下回車鍵,此程序就將復(fù)制字符串;顯示運(yùn)行結(jié)果字符串2:thank。圖3 字符串查找功能的界面 經(jīng)過運(yùn)行之后,出現(xiàn)了一個(gè)與用戶的對(duì)話框,這個(gè)對(duì)話框就是圖3。在這個(gè)對(duì)話框中給出了六種功能:我們輸入一個(gè)字符串thank;選擇功能3 (查找制

20、字符/串);再輸入字符或字符串a(chǎn);運(yùn)行結(jié)果:你要找的字符串的開始位置是:3。圖4 字符串交換功能的界面 經(jīng)過運(yùn)行之后,出現(xiàn)了一個(gè)與用戶的對(duì)話框,這個(gè)對(duì)話框就是圖4。在這個(gè)話框中給出了六種功能:我們輸入一個(gè)字符串thank;選擇功能4(交換字符串);輸入一個(gè)字符串you;再按下回車鍵,此程序就將交換字符串;顯示運(yùn)行結(jié)果交換后的s1為:you。圖5 查找子字符串的功能界面經(jīng)過運(yùn)行之后,出現(xiàn)了一個(gè)與用戶的對(duì)話框,這個(gè)對(duì)話框就是圖5。在這個(gè)對(duì)話框中給出了六種功能:我們輸入一個(gè)字符串thank you;選擇功能5(查找子字符串);輸入子字符串的起始位置:5;輸入子串的長(zhǎng)度;4;運(yùn)行結(jié)果為k yo。圖6

21、比較字符串的功能界面經(jīng)過運(yùn)行之后,出現(xiàn)了一個(gè)與用戶的對(duì)話框,這個(gè)對(duì)話框就是圖6。我們輸入一個(gè)字符串:thank;選擇功能6;再輸入一個(gè)字符串s2:you;則輸出結(jié)果為s1比s2小。七 結(jié) 論通過“字符串類的設(shè)計(jì)”的課程設(shè)計(jì)實(shí)驗(yàn),可以得出:通過字符串類可以實(shí)現(xiàn)串的賦值、字符在字符串中所在位置的查找、把一個(gè)字符串復(fù)制到另一個(gè)字符串中、兩個(gè)字符串的連接、兩個(gè)字符串之間的相互交換、子串在主串中的定位等操作。八 參考文獻(xiàn)1 張國峰編著.C+語言及其程序設(shè)計(jì)教程.北京:電子工業(yè)出版社,1996.2 秦勇編著.Visual C程序設(shè)計(jì).北京:北京大學(xué)出版社,1994.3 張素琴主編.C+程序設(shè)計(jì)語言.北京:清華大學(xué)出版社,1

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論