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

下載本文檔

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

文檔簡(jiǎn)介

1、湖南人文科技學(xué)院課程設(shè)計(jì) 湖南人文科技學(xué)院計(jì)算機(jī)系 課程設(shè)計(jì)說(shuō)明書(shū) 課 程 名 稱: C+程序設(shè)計(jì) 課 程 代 碼: 408025 題 目: 字符串類的設(shè)計(jì) 年級(jí)/專業(yè)/班: 09級(jí)計(jì)算機(jī)軟件工程專業(yè)本二班 學(xué)生姓名: 田昌亮、文曦遠(yuǎn)、向文魁、張志丹、魏齊 學(xué) 號(hào): 0943622109436225 指 導(dǎo) 教 師: 袁 輝 勇 開(kāi) 題 時(shí) 間: 2008 年 10 月 27 日完 成 時(shí) 間: 2010 年 9 月 25 日第11頁(yè)目 錄摘 要1一、引 言2二、設(shè)計(jì)目的與任務(wù)2三、設(shè)計(jì)方案21、總體設(shè)計(jì)22、詳細(xì)設(shè)計(jì)23、程序清單44、程序調(diào)試與體會(huì)75、運(yùn)行結(jié)果7四、結(jié) 論9五、參考文獻(xiàn)9

2、摘 要本課程設(shè)計(jì)的目的是設(shè)計(jì)一個(gè)定義字符串(string)類,包含存放字符串的字符數(shù)組和字符串中字符的個(gè)數(shù)的程序,用來(lái)實(shí)現(xiàn)設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇、字符串的輸入與賦值、字符串的運(yùn)算、字符串的輸出。設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇和字符串的輸入與輸出都比較簡(jiǎn)單,這里不詳細(xì)講述;至于字符串的賦值,有三種方法:LET語(yǔ)句,INPUT語(yǔ)句,READ/DATA語(yǔ)句給字符串變量賦值;字符串的運(yùn)算有很多種,比方說(shuō):連接、復(fù)制、查找、交換、求子串和比較等。一些編程語(yǔ)言設(shè)計(jì)為編寫(xiě)字符串處理程序更容易編寫(xiě),使程序變得更簡(jiǎn)單、清晰,方便用戶的操作,盡量減少用戶的操作。關(guān)鍵詞:類; 對(duì)象; C+; 算法; 函數(shù)Abstract Th

3、is course is planed to design a statistical procedure for definition Sting class, contain the storage of the string of characters into an array and the number of character sting. Its to be realize the function of Menu Design Selection and the input string and assignment and the operate of character

4、string and the output string. Menu Design Selection and the input string and assignment are simple and without going into details. As for the assignment of string, there are three methods, LETLET and INPUT and READ/DATA, and the assignment of string variable. The operation of string has various meth

5、ods, for example, connection, copy, seeker, exchange, seek substring and compare and so on. Some programming language designer use string, the program will be simple and easy and clear. Its convenience to operate for customers, to the best of ones abilities reduce customers operation. Keywords : Cla

6、ss; Object; C+; Arithmetic;Functions C+程序設(shè)計(jì)課程設(shè)計(jì)-字符串類的設(shè)計(jì)一、引 言本課程設(shè)計(jì)要實(shí)現(xiàn)的是一個(gè)字符串類的設(shè)計(jì)的程序,這在現(xiàn)實(shí)生活和以后的工作中有很強(qiáng)的實(shí)際意義。符串或串(String)是由零個(gè)或多個(gè)字符組成的有限序列。一般記為 s='a1a2an'(n>=0)。它是編程語(yǔ)言中表示文本的數(shù)據(jù)類型。 通常以串的整體作為操作對(duì)象,如:在串中查找某個(gè)子串、求取一個(gè)子串、在串的某個(gè)位置上插入一個(gè)子串以及刪除一個(gè)子串等。兩個(gè)字符串相等的充要條件是:長(zhǎng)度相等,并且各個(gè)對(duì)應(yīng)位置上的字符都相等。設(shè)p、q是兩個(gè)串,求q在p中首次出現(xiàn)的位置的運(yùn)

7、算叫做模式匹配。串的兩種最基本的存儲(chǔ)方式是順序存儲(chǔ)方式和鏈接存儲(chǔ)方式。二、設(shè)計(jì)目的與任務(wù)字符串主要用于編程,概念說(shuō)明、函數(shù)解釋、用法詳述見(jiàn)正文,這里補(bǔ)充兩點(diǎn):1.Free Pascal中的Ansistring只能看成整體,很多函數(shù)無(wú)法使用,就算是提取單個(gè)元素也很麻煩,所以除非萬(wàn)不得已就不要用;2.字符串在存儲(chǔ)上類似字符數(shù)組,所以它每一位的單個(gè)元素都是可以提取的,如s=“aaaaabbbbb”,則s【1】=“a”,s【10】="b",而字符串的零位正是它的長(zhǎng)度,如s【0】=10(上述功能Ansistring沒(méi)有。),這可以給我們提供很多方便,如高精度運(yùn)算時(shí)每一位都可以轉(zhuǎn)化為數(shù)

8、字存入數(shù)組。三、設(shè)計(jì)方案1、總體設(shè)計(jì)我們?cè)O(shè)計(jì)一個(gè)程序,定義點(diǎn)字符串(string)類,包含存放字符串的字符數(shù)組和字符串中字符的個(gè)數(shù)。實(shí)現(xiàn)功能 1、設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇; 2、字符串的輸入與賦值; 3、字符串的運(yùn)算,包括: 1)連接 2)復(fù)制 3)查找 4)交換 5)求子串 6)比較 4、字符串的輸出2、詳細(xì)設(shè)計(jì)class lj:連接類,實(shí)現(xiàn)字符的連接。lj():構(gòu)造函數(shù)傳入s1參數(shù)s3=s1.append(s2):連接s2到s1后并賦s3class c:復(fù)制類,實(shí)現(xiàn)字符的復(fù)制c(string s1) :構(gòu)造函數(shù)傳入s1參數(shù)class cha:查找類,實(shí)現(xiàn)字符的查找。if(s1.find(str

9、2)>s1.length()cout<<"找不到你輸入的字符或字符串!"<<endl;/要查找的字符串開(kāi)始位置大于原字符串的長(zhǎng)度就是沒(méi)有這個(gè)字符串else cout<<"你要找的字符串的開(kāi)始位置是:"<<s1.find(str2)+1<<endl;class jiao:交換類,實(shí)現(xiàn)字符的交換。jiao(string s1) :構(gòu)造函數(shù)傳入s1參數(shù)s1.swap(s2):把s2和s1交換class son:求子串類,求輸入字符串的子串。son(string s1) :構(gòu)造函數(shù)傳入s1參數(shù)st

10、ring s3=s1.assign(s1,start-1,n);/把字符串s中從start開(kāi)始的n個(gè)字符賦給當(dāng)前字符串class bi:比較類,實(shí)現(xiàn)字符的比較。if(pare(s2)<0) :compare成員方法比較其大小cout<<"s1比s2小"<<endl; if(pare(s2)>0)cout<<"s1比s2大"<<endl; if(pare(s2)=0)cout<<"s1與s2相等"<<endl;main( ):主函數(shù)調(diào)用各類。string

11、 s1(str1);/字符串的賦值char str120;/存放字符串的數(shù)組str1int num=0,len;/保存功能選擇參數(shù)num和輸入字符串的長(zhǎng)度lenstring s1(str1);/字符串?dāng)?shù)組str1賦值給字符串類s1len=strlen(str1);/保存字符串長(zhǎng)度cin>>num;:輸入的數(shù)值,實(shí)現(xiàn)功能選擇. if(num=1)lj a(s1); 調(diào)用連接類。if(num=2)c a(s1); 調(diào)用復(fù)制類。if(num=3)cha a(s1); 調(diào)用查找類if(num=4)jiao a(s1); 調(diào)用交換類if(num=5)son a(s1); 調(diào)用求子串類if(n

12、um=6)bi a(s1); 調(diào)用比較類3、程序清單本程序代碼如下:#include <iostream.h>#include <string>using namespace std;class lj/連接類public:lj(string s1) char str220;cout<<"請(qǐng)輸入要連接的字符串:"<<endl;gets(str2);string s2(str2);string s3; s3=s1.append(s2);/連接s2到s1后并賦s3 cout<<s3.data()<<endl;

13、class c/復(fù)制類public:c(string s1) string s2(s1);/把s1拷貝給s2cout<<"副本字符串2:"<<s2.data()<<endl;class cha/查找類public:cha(string s1) cout<<"請(qǐng)輸入要查找的字符或字符串"<<endl;char str220;gets(str2);if(s1.find(str2)>s1.length()cout<<"找不到你輸入的字符或字符串!"<<

14、endl;/要查找的字符串開(kāi)始位置大于原字符串的長(zhǎng)度就是沒(méi)有這個(gè)字符串else cout<<"你要找的字符串的開(kāi)始位置是:"<<s1.find(str2)+1<<endl;class jiao/交換類public:jiao(string s1) char str220;cout<<"請(qǐng)輸入要交換字符串s2:"<<endl;gets(str2);string s2(str2); s1.swap(s2);/把s2和s1交換cout<<"交換后s1為:"<<

15、endl;cout<<s1.data()<<endl;class son/求子串類public:son(string s1) int start,n;cout<<"請(qǐng)輸入子串的起始位置:"cin>>start;cout<<"請(qǐng)輸入子串的長(zhǎng)度:" cin>>n;string s3=s1.assign(s1,start-1,n);/把字符串s中從start開(kāi)始的n個(gè)字符賦給當(dāng)前字符串cout<<s3.data()<<endl;class bi/比較類public:

16、bi(string s1) char str220;cout<<"請(qǐng)輸入要比較的字符串s2:"<<endl;gets(str2);string s2(str2);if(pare(s2)<0)/比較其大小cout<<"s1比s2小"<<endl; if(pare(s2)>0)cout<<"s1比s2大"<<endl; if(pare(s2)=0)cout<<"s1與s2相等"<<endl;void main(

17、)char str120;/存放字符串的數(shù)組str1int num=0,len;/保存功能選擇參數(shù)num和輸入字符串的長(zhǎng)度lencout<<"請(qǐng)輸入一個(gè)字符串s1:"<<endl;gets(str1);string s1(str1);/字符串?dāng)?shù)組str1賦值給字符串類s1len=strlen(str1);/保存字符串長(zhǎng)度while(num!=7)/功能選項(xiàng)cout<<"請(qǐng)選擇功能的序號(hào):"<<endl;cout<<"1)連接 2)復(fù)制 3)查找 4)交換 5)求子串 6)比較 7)退出

18、"<<endl;cin>>num; if(num=1)lj a(s1);/調(diào)用各類的開(kāi)關(guān)if(num=2)c a(s1);if(num=3)cha a(s1);if(num=4)jiao a(s1);if(num=5)son a(s1);if(num=6)bi a(s1);4、程序調(diào)試與體會(huì)此程序設(shè)計(jì)完成了定義點(diǎn)字符串(string)類,包含存放字符串的字符數(shù)組和字符串中字符的個(gè)數(shù),實(shí)現(xiàn)了設(shè)計(jì)菜單實(shí)現(xiàn)功能選擇、字符串的輸入與賦值、字符串的運(yùn)算、字符串的輸出等功能,程序的設(shè)計(jì)較多,如自動(dòng)保存,自動(dòng)導(dǎo)入功能簡(jiǎn)化了操作過(guò)程,程序還人性化得增加了幫助這個(gè)選項(xiàng),這對(duì)于程

19、序的使用者來(lái)說(shuō)是一個(gè)不小的幫助,本設(shè)計(jì)基本按要求完成了課程設(shè)計(jì)的任務(wù)。 但是在程序中還存在一些不足,需要改進(jìn)。如:程序的編寫(xiě)不夠簡(jiǎn)潔,總之,這次設(shè)計(jì)程序讓我受益良多,我會(huì)好好珍惜像這種難得的機(jī)會(huì)5、運(yùn)行結(jié)果連接復(fù)制查找交換求子串比較退出四、結(jié) 論本課程設(shè)計(jì)中,我們成功地實(shí)現(xiàn)了一個(gè)定義字符串(string)類,包含存放字符串的字符數(shù)組和字符串中字符的個(gè)數(shù)的程序,達(dá)到了預(yù)期的目的。在課程設(shè)計(jì)之前對(duì)C+程序的認(rèn)識(shí)僅停留在看的階段,而對(duì)編程實(shí)現(xiàn)的認(rèn)識(shí)很模糊,只知道大概的意思,在課程設(shè)計(jì)期間才知道離獨(dú)立編程還有很遠(yuǎn)的距離。在課程設(shè)計(jì)中我們遇到了很多問(wèn)題,在解決問(wèn)題的過(guò)程中,我們都學(xué)到了很多,而這些都是在

20、課堂和書(shū)本上學(xué)不到的。通過(guò)此次課程設(shè)計(jì),我們對(duì)面向?qū)ο缶幊?、類、字符串的運(yùn)算等一系列概念有了更進(jìn)一步的認(rèn)識(shí),也熟悉了所學(xué)知識(shí)在實(shí)際應(yīng)用中的作用。同時(shí),在課程設(shè)計(jì)過(guò)程中,有的問(wèn)題是自己解決不了的,通過(guò)同學(xué)們和老師的幫助我們才成功地及時(shí)完成了課程設(shè)計(jì),對(duì)此我們表示感謝,同時(shí)我們也在這個(gè)過(guò)程中意識(shí)到了團(tuán)隊(duì)合作的重要性??傊?,這次課程設(shè)計(jì)給了我很大的幫助。五、參考文獻(xiàn)1 張國(guó)峰編著.C+語(yǔ)言及其程序設(shè)計(jì)教程.北京:電子工業(yè)出版社,1996.2 秦勇編著.Visual C程序設(shè)計(jì).北京:北京大學(xué)出版社,1994.3 張素琴主編.C+程序設(shè)計(jì)語(yǔ)言.北京:清華大學(xué)出版社,19954 揣錦華等編.C+程序設(shè)計(jì)語(yǔ)言.西安: 西安電子科技大學(xué)出版社,20035 李軍民等編.C+程序設(shè)計(jì)語(yǔ)言經(jīng)典題解與實(shí)驗(yàn)指導(dǎo).西安: 西安電子科技大學(xué)出版社

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論