版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 1 題目內(nèi)容及設(shè)計(jì)要求1</p><p><b> 2 總體設(shè)計(jì)1</b></p><p> 2.1 總體功能框圖1</p><p> 2.2 類的設(shè)計(jì)說明2</p><p> 2.3
2、 主要算法流程圖3</p><p> 3程序清單及注釋5</p><p> 4運(yùn)行結(jié)果與分析5</p><p><b> 5總結(jié)5</b></p><p><b> 6參考文獻(xiàn)5</b></p><p> 1 題目內(nèi)容及設(shè)計(jì)要求</p>
3、;<p><b> 字符串類的設(shè)計(jì)</b></p><p> 定義字符串類(String),包含存放字符串的字符數(shù)組和字符串中字符的個(gè)數(shù)。</p><p> ?。?)字符串的輸入與賦值;</p><p> ?。?)字符串的運(yùn)算:連接、復(fù)制、查找、交換、求子串、比較;</p><p> ?。?)字符串的輸
4、出:對(duì)字符串的輸入和輸出都用文件實(shí)現(xiàn)。</p><p><b> 2 總體設(shè)計(jì)</b></p><p> 2.1 總體功能框圖</p><p> 輸入幾組字符串,字符串的輸入和輸出都用文件實(shí)現(xiàn),對(duì)于輸入的字符串,</p><p> 進(jìn)行相應(yīng)的連接、復(fù)制、查找、交換、求子串、比較等字符串的運(yùn)算;</p>
5、;<p> 以直接人性話的操作界面展現(xiàn)出來,當(dāng)執(zhí)行字符串的相應(yīng)運(yùn)算時(shí),</p><p> 調(diào)用程序中相應(yīng)的對(duì)應(yīng)部分的函數(shù)模塊進(jìn)行操作。</p><p><b> 總體框圖:</b></p><p><b> 圖2-1總體框圖</b></p><p> 2.2 類的設(shè)計(jì)說明
6、</p><p> 圖2-2類string的說明圖</p><p> 2.3 主要算法流程圖</p><p><b> Y</b></p><p><b> N</b></p><p> 圖2-3主要算法流程圖</p><p><b&
7、gt; 模塊功能流程圖:</b></p><p> 圖2-4連接模塊流程圖 圖2-5交換模塊流程圖</p><p><b> Y</b></p><p> N T</p><p> 圖2-6 Read功能模塊圖
8、</p><p><b> 程序清單及注釋</b></p><p> #include<iostream></p><p> #include<fstream></p><p> using namespace std;</p><p> char s[12];c
9、har s1[20];</p><p> const int MAX=5;</p><p> class String</p><p><b> {</b></p><p><b> public:</b></p><p> char *str;</p>
10、<p> int length;</p><p> static void menun()</p><p> { cout<<" ******************************* "<<endl;</p><p> cout&
11、lt;<"\t* 歡迎進(jìn)入字符串設(shè)計(jì) *\t"<<endl;</p><p> cout<<" ******************************* "<<endl;</p>
12、<p> cout<<" 1 enter ,執(zhí)行字符串復(fù)制!!!"<<endl;</p><p> cout<<" 2 enter ,執(zhí)行字符串鏈接!!!"<<endl;</p><p> cout<<"
13、 3 enter ,執(zhí)行字符創(chuàng)比較!!!"<<endl;</p><p> cout<<" 4 enter ,執(zhí)行字符串求字串!!!"<<endl;</p><p> cout<<" 5 enter ,執(zhí)行字符串交換!
14、!!"<<endl;</p><p> cout<<" 0 enter ,退出..."<<endl;</p><p><b> }</b></p><p> String(char *s,int l)//構(gòu)造函數(shù)</p><p
15、><b> {</b></p><p> str=new char[strlen(s)+1];</p><p> strcpy(str,s);</p><p><b> length=l;</b></p><p> cout<<"Construct String
16、!\n";</p><p><b> }</b></p><p> ~String()//析構(gòu)函數(shù)</p><p><b> {</b></p><p> delete[] str;</p><p><b> }</b></p&
17、gt;<p> void Strcpy(char *s)//復(fù)制</p><p> { char *x;</p><p> x=new char[strlen(s)+1];</p><p> strcpy(x,s);</p><p> delete[]str;</p><p><b&g
18、t; str=x;</b></p><p> length=strlen(x);</p><p> cout<<str<<endl;</p><p><b> }</b></p><p> void Strcat(char *z)//連接</p><p&g
19、t;<b> {</b></p><p><b> char *a;</b></p><p> a=new char[strlen(z)+length];</p><p> strcpy(a,str);</p><p> strcat(a,z);</p><p>&
20、lt;b> str=a;</b></p><p> cout<<str<<endl;</p><p><b> }</b></p><p> void Compare(char *b)//比較</p><p><b> {</b></p>
21、;<p> cout<<"str compare b is:"<<strcmp(str,b)<<endl;</p><p><b> }</b></p><p> char * substring(int start,int end)//求子串</p><p><
22、b> {</b></p><p> char *newstr=new char[end-start+1];</p><p> int i,j=0;</p><p> for(i=start;i<end;i++,j++)</p><p> newstr[j]=str[i];</p><p&
23、gt; newstr[j]='\0';</p><p> return newstr;</p><p><b> }</b></p><p> void exchange(char *e)//交換</p><p><b> {</b></p><p>
24、; char *temp1,*temp2;</p><p> temp1=new char[length];</p><p> temp2=new char[strlen(e)+1];</p><p> strcpy(temp1,str);</p><p> strcpy(temp2,e);</p><p>
25、 str=temp2;</p><p><b> e=temp1;</b></p><p> cout<<e<<endl;</p><p> cout<<str<<endl;</p><p><b> }</b></p><
26、;p><b> };</b></p><p> void write(char s1[10])</p><p><b> {</b></p><p> ofstream out;</p><p> out.open("f:\\filej.text",ios::ou
27、t|ios::ate|ios::app);</p><p><b> if(!out)</b></p><p><b> {</b></p><p> cout<<"Can not open file !"<<endl;</p><p><b&
28、gt; }</b></p><p> out<<s1<<"\n";</p><p> out.close();</p><p><b> }</b></p><p> char * read()</p><p><b>
29、 {</b></p><p> ifstream in;</p><p> in.open("f:\\filej.text",ios::in);</p><p><b> if(!in)</b></p><p><b> {</b></p>&l
30、t;p> cout<<"Can not open file !"<<endl;</p><p> return NULL;</p><p><b> }</b></p><p><b> int k=1;</b></p><p><b&
31、gt; while(k)</b></p><p> { in.getline(s,12);k=0;}</p><p> in.close();</p><p><b> return s;</b></p><p><b> }</b></p><p>
32、 char * read2(int k)</p><p><b> {</b></p><p> ifstream in;</p><p> in.open("f:\\filej.text",ios::in);</p><p><b> if(!in)</b></p
33、><p><b> {</b></p><p> cout<<"Can not open file !"<<endl;</p><p> return NULL;</p><p><b> }</b></p><p><b
34、> while(k)</b></p><p> { in.getline(s,12);k--;}</p><p> in.close();</p><p><b> return s;</b></p><p><b> }</b></p><p>
35、 void write2(int n)</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
36、(!out)</b></p><p><b> {</b></p><p> cout<<"Can not open file !"<<endl;</p><p> //return NULL;</p><p><b> }</b>&l
37、t;/p><p><b> while(n)</b></p><p> { char s1[20];</p><p><b> cin>>s1;</b></p><p> out<<s1<<"\n";</p><p>
38、;<b> n--;}</b></p><p> cout<<"\t* 文件創(chuàng)建成功!! *\t"<<endl;</p><p> out.close();</p><p><b> }</b></p>
39、<p> int main()</p><p><b> { </b></p><p> cout<<"\nC++課程設(shè)計(jì):字符串類的設(shè)計(jì)\n";</p><p> cout<<" 設(shè)計(jì)人:鐘以軍\n";</p><p> cout&
40、lt;<" 學(xué)號(hào):0903050434\n";</p><p> cout<<"********************************************************\n";</p><p> cout<<"************************************
41、********************\n";</p><p> cout<<"\n"<<"開始創(chuàng)建文件請(qǐng)輸入字符串:\n";</p><p> write2(MAX);</p><p> String::menun();</p><p> cout<&
42、lt;"輸入n選擇文件中第幾個(gè)字符串:\n";</p><p><b> int m;</b></p><p><b> cin>>m;</b></p><p> cout<<"建立類的對(duì)象str1:\n";</p><p>
43、String str1( read2(m),12);</p><p> cout<<str1.str<<endl;</p><p> int k;int j=1;</p><p> cout<<"請(qǐng)選擇執(zhí)行什么操作<當(dāng)輸入為0是結(jié)束操作,退出... >\n";</p><p
44、> while(j!=0&&cin>>k)</p><p><b> switch(k)</b></p><p><b> {case 1:</b></p><p> cout<<"輸入m選擇文件中第幾個(gè)字符串復(fù)制:\n";</p>
45、<p><b> cin>>m;</b></p><p> str1.Strcpy(read2(m));write(str1.str);</p><p> cout<<"復(fù)制后的字符串:";</p><p> cout<<str1.str <<endl;<
46、;/p><p><b> break;</b></p><p><b> case 2:</b></p><p> cout<<"輸入m選擇文件中第幾個(gè)字符串鏈接:\n";</p><p><b> cin>>m;</b><
47、/p><p> str1.Strcat(read2(m));</p><p> write(str1.str);</p><p> cout<<"連接后的字符串:"<<str1.str<<endl;</p><p><b> break;</b></p&g
48、t;<p><b> case 3:</b></p><p> cout<<"輸入m選擇文件中第幾個(gè)字符串進(jìn)行比較:\n";</p><p><b> cin>>m;</b></p><p> str1.Compare(read2(m));</p>
49、;<p><b> break;</b></p><p><b> case 4:</b></p><p> cout<<"下面開始求子串\n";</p><p><b> int m,n;</b></p><p> co
50、ut<<"請(qǐng)輸入需要取子串的起始與結(jié)束位置: \n";</p><p> cin>>m>>n;</p><p> cout<<"所求子串為: ";</p><p> cout<<str1.substring(m,n)<<endl;</p&
51、gt;<p><b> break;</b></p><p><b> case 5:</b></p><p> cout<<"輸入m選擇文件中第幾個(gè)字符串進(jìn)行交換:\n";</p><p><b> cin>>m;</b></p
52、><p> str1.exchange(read2(m)) ;</p><p><b> break;</b></p><p><b> case 0:</b></p><p><b> j=0;</b></p><p> cout<<
53、"謝謝使用,退出字符串設(shè)計(jì)....\n";</p><p><b> break;</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b><
54、/p><p><b> 運(yùn)行結(jié)果與分析</b></p><p> 圖4-1基本操作界面</p><p> 圖4-2字符串創(chuàng)建成功</p><p> 圖4-3實(shí)現(xiàn)字符串的復(fù)制</p><p> 圖4-4實(shí)現(xiàn)字符串的鏈接</p><p> 圖4-5實(shí)現(xiàn)字符串的比較<
55、;/p><p> 圖4-6實(shí)現(xiàn)字符串的求子串</p><p> 圖4-6實(shí)現(xiàn)字符串的交換</p><p> 運(yùn)行結(jié)果符合題目的要求,實(shí)現(xiàn)了對(duì)字符串的連接、復(fù)制、查找、求子串、比較、交換</p><p><b> 等操作。</b></p><p><b> 總結(jié)</b>&
56、lt;/p><p> 通過對(duì)這一課題的設(shè)計(jì)和實(shí)現(xiàn),我對(duì)Micosoft Visual C++環(huán)境進(jìn)行了深一步的了解,并逐漸開始熟練Micosoft Visual C++環(huán)境的工作界面,以及對(duì)每一個(gè)快捷鍵的熟悉。并認(rèn)識(shí)到,熟悉這些快捷鍵,極為便捷編寫程序,但是還要更加熟悉。編程時(shí)要養(yǎng)成良好的風(fēng)格,注意相同內(nèi)容的縮進(jìn)和對(duì)齊。這樣做,可以使程序代碼出錯(cuò)的情況下,可以快速并且便捷的查找到錯(cuò)誤的行,利于很好的修改。通過這
57、次編程我們深深的感受到對(duì)代碼的變量命名,代碼內(nèi)注釋格式,甚至嵌套中行縮進(jìn)的長度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫習(xí)慣,不但有助于代碼的移植和糾錯(cuò),也有助于不同人員之間的協(xié)作。</p><p> 同時(shí),在*老師的身上我學(xué)得到很多實(shí)用的知識(shí),在此表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和指導(dǎo)老師再次表示忠心的感謝!</p><p><b> 參考文獻(xiàn)</b>&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)--字符串類的設(shè)計(jì)與實(shí)現(xiàn)
- c++課程設(shè)計(jì)報(bào)告--字符串處理
- c語言課程設(shè)計(jì)--字符串類
- 課程設(shè)計(jì)--字符串類
- c++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---字符串操作
- C++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---字符串操作.doc
- c++字符串分詞
- 課程設(shè)計(jì)--- 字符串排序
- c語言課程設(shè)計(jì)(字符串函數(shù)包)
- c課程設(shè)計(jì)---字符串處理系統(tǒng)
- 課程設(shè)計(jì)--字符串的操作
- 字符串類課程設(shè)計(jì)說明書
- 字符串處理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--實(shí)現(xiàn)字符串的多種操作
- 課程設(shè)計(jì)--查找字符串中的指定字符
- 微機(jī)課程設(shè)計(jì)--字符串動(dòng)畫加速減速
- 匯編課程設(shè)計(jì)-字符串查找與替換
- 微機(jī)原理課程設(shè)計(jì)---字符串動(dòng)畫顯示
- 微機(jī)原理課程設(shè)計(jì)--字符串分類統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--字符串的操作
評(píng)論
0/150
提交評(píng)論