版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題 目 文 章 編 輯 學(xué)生姓名 學(xué) 號 08120116 專業(yè)班級 計(jì)算機(jī)0801 指導(dǎo)老師 設(shè)計(jì)日期 2009/12/18 指導(dǎo)老師評閱意見:評閱成績:簽名:一、問題定義5.5文章編輯功能:輸入一頁文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個(gè)數(shù)。靜態(tài)存儲一頁文章,每行最多不超過80個(gè)字符,共N行;要求:(1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);(2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。存儲結(jié)構(gòu)使用線性表,分別用幾個(gè)子函數(shù)實(shí)現(xiàn)相應(yīng)的功能。輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號。輸
2、出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出"全部字母數(shù)"、"數(shù)字個(gè)數(shù)"、"空格個(gè)數(shù)"、"文章總字?jǐn)?shù)"(3)輸出刪除某一字符串后的文章。二、可行性分析主要流程:首先調(diào)用initlist()輸入一段字符,并輸出。然后運(yùn)用switch提供5個(gè)選擇,第一個(gè)統(tǒng)計(jì)整篇文章的總字?jǐn)?shù),并輸出;第二個(gè)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出;第三個(gè)刪除某一字符串,并輸出剩下的字符;第四個(gè)分行輸出用戶輸入的字符;第五個(gè)退出。Main (InitlistPrint20print1(ca *LDelStr(ca *LStr
3、No(ca*L)print2(ca *L, int &p1, int &p2, int &p3, int &n圖1開始輸入cC=#?假 L->next =new caL=L->next真 L->next = NULL輸出:輸入nn退出Printf2統(tǒng)計(jì)p1,p2,p3,nStrNo統(tǒng)計(jì)s次數(shù)DelStr刪除所有sPrintf1分行輸出c圖2三、程序設(shè)計(jì)#include #include #include struct ca char c;ca *next;void InitList(ca *L /輸入文字printf("輸入一頁文字(
4、以#結(jié)束:n"while(L->c = getchar( != '#' /當(dāng)輸入的字符不為#時(shí),開辟新的空間,繼/續(xù)輸入L->next = new ca;L = L->next;L->next = NULL;void StrNo(ca *L /統(tǒng)計(jì)字符出現(xiàn)的次數(shù)int n = 0; /初始化總數(shù)nchar s80, *q;ca *p;printf("輸入一字符串: "cin>>s;while(L->next /L鏈表的next域?yàn)檎?for (p = L, q = s; *q != '0'
5、&& p->next; p = p->next, q+/指針p指向L,q指向輸入的字符串s,當(dāng)q指向的不為空時(shí),并且p有next域,則,P指/針后移,q+,重新循環(huán). if (p->c != *q break; /當(dāng)p指向的字符不等于q時(shí),跳出循環(huán)if (*q = '0' n+; /當(dāng)L中的某一字符串與s相對應(yīng)完全,即q指向空時(shí),n+1L = L->next;cout<<"字符串 "< 出現(xiàn) "< 次 n" ca *DelStr(ca *L /刪除一個(gè)字符串ca *H = L
6、;char s80, *q;ca *p;cout<<"輸入該子串: "cin>>s;while(L->next for (p = L->next, q = s; *q != '0' && p->next; p = p->next, q+if (p->c != *q break;if (*q = '0' L->next = p;else L = L->next; /后面的字符串前移return H;void print1(ca *L while(L->nex
7、t cout< c; L = L->next;cout< void print2(ca *L, int &p1, int &p2, int &p3, int &n n = p1 = p2 = p3 = 0;for( ; L->next; L = L->next, n+if(isalpha(L->c p1+; /統(tǒng)計(jì)英文字母的個(gè)數(shù)else if(isdigit(L->c p2+; /統(tǒng)計(jì)數(shù)字的個(gè)數(shù)else if(L->c = ' ' p3+; /統(tǒng)計(jì)空格的個(gè)數(shù)else if(L->c =
8、9;n' n-; cout<<"n全部字母數(shù): "< cout<<"n數(shù)字個(gè)數(shù): "< cout<<"n空格個(gè)數(shù): "< cout<<"n文章總字?jǐn)?shù): "< void main( ca *L = new ca;int p1, p2, p3, n, c;InitList(L;do cout<<"n0:退出n""1:統(tǒng)計(jì)中英文字母和空格數(shù)以及整篇文章總字?jǐn)?shù)n""2:統(tǒng)計(jì)某一字符串
9、在文章中出現(xiàn)次數(shù)n""3:刪除某一子串n""4:分行輸出用戶輸入的各行字符n"cin>>c;switch(c case 1:print2(L, p1, p2, p3, n;break;case 2:StrNo(L;break;case 3:DelStr(L;case 4:print1(L;while(c;四、調(diào)試過程及其解決方法原程序:#include #include #include Class ca Public:char c;ca *next;void InitList(ca *L while(L->c = getch
10、ar( != '#' L->next = new ca;L = L->next;L->next = NULL;void StrNo(ca *L int n = 0; char s80, *q;ca *p;printf("輸入一字符串: "cin>>s;while(L->next for (p = L, q = s; *q != '0' && p->next; p = p->next, q+ if (p->c != *q break;if (*q = '0'
11、n+;L = L->next;cout<<"字符串 "< 出現(xiàn) "< 次 n" ca *DelStr(ca *L ca *H = L;char s80, *q;ca *p;cout<<"輸入該子串: "cin>>s;while(L->next for (p = L->next, q = s; *q != '0' && p->next; p = p->next, q+if (p->c != *q break;if (*q
12、= '0' L->next = p;else L = L->next; return H;void print1(ca *L while(L->next cout< c; L = L->next;cout< void print2(ca *L, int &p1, int &p2, int &p3, int &n n = p1 = p2 = p3 = 0;for( ; L->next; L = L->next, n+if(isalpha(L->c p1+; else if(isdigit(L-&
13、gt;c p2+; else if(L->c = ' ' p3+; else if(L->c = 'n' n-; cout<<"n全部字母數(shù): "< cout<<"n數(shù)字個(gè)數(shù): "< cout<<"n空格個(gè)數(shù): "< cout<<"n文章總字?jǐn)?shù): "< void main( ca *L = new ca;int p1, p2, p3, n, c;InitList(L;do cout<<"n0:退出n""1:統(tǒng)計(jì)中英文字母和空格數(shù)以及整篇文章總字?jǐn)?shù)n""2:統(tǒng)計(jì)某一字符串在文章中出現(xiàn)次數(shù)n""3:刪除某一子串n""4:分行輸出用戶輸入的各行字符n"cin>>c;switch(c case 1:print2(L, p1, p2, p3, n;break;case 2:StrNo(L;break;case 3:DelStr(L;case 4:print1(L;while(c;1、 成員的數(shù)據(jù)類型不同,定義一個(gè)結(jié)構(gòu)體;2、 運(yùn)用函數(shù)isalpha isdigit來查找字母與
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版產(chǎn)業(yè)升級募集資金三方監(jiān)管與支持合同4篇
- 2025年企業(yè)數(shù)字化智能物聯(lián)網(wǎng)物聯(lián)網(wǎng)連接合作協(xié)議
- 2025年家族財(cái)富傳承繼承管理規(guī)劃遺產(chǎn)協(xié)議
- 2025版委托擔(dān)保合同范本:互聯(lián)網(wǎng)金融平臺風(fēng)險(xiǎn)控制協(xié)議3篇
- 《地球上生命的起源課件》
- 二零二五年度生態(tài)旅游區(qū)開發(fā)合同書4篇
- 二零二五年度退休返聘人員合同終止告知書
- 二零二五年度大學(xué)生就業(yè)實(shí)習(xí)實(shí)訓(xùn)基地合作框架協(xié)議范本
- 2025年度醫(yī)療健康管理系統(tǒng)軟件購銷合同模板
- 2025年度汽車零部件車輛質(zhì)押租賃協(xié)議
- 2025年度公務(wù)車輛私人使用管理與責(zé)任協(xié)議書3篇
- 售后工程師述職報(bào)告
- 綠化養(yǎng)護(hù)難點(diǎn)要點(diǎn)分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學(xué)六年級數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 高中綜評項(xiàng)目活動設(shè)計(jì)范文
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說明書MSDS
- 物流簽收回執(zhí)單
評論
0/150
提交評論