版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)結構課程設計報告題 目 文 章 編 輯 學生姓名 學 號 08120116 專業(yè)班級 計算機0801 指導老師 設計日期 2009/12/18 指導老師評閱意見:評閱成績:簽名:一、問題定義5.5文章編輯功能:輸入一頁文字,程序可以統(tǒng)計出文字、數(shù)字、空格的個數(shù)。靜態(tài)存儲一頁文章,每行最多不超過80個字符,共N行;要求:(1)分別統(tǒng)計出其中英文字母數(shù)和空格數(shù)及整篇文章總字數(shù);(2)統(tǒng)計某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。存儲結構使用線性表,分別用幾個子函數(shù)實現(xiàn)相應的功能。輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標點符號。輸
2、出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出"全部字母數(shù)"、"數(shù)字個數(shù)"、"空格個數(shù)"、"文章總字數(shù)"(3)輸出刪除某一字符串后的文章。二、可行性分析主要流程:首先調(diào)用initlist()輸入一段字符,并輸出。然后運用switch提供5個選擇,第一個統(tǒng)計整篇文章的總字數(shù),并輸出;第二個統(tǒng)計某一字符串在文章中出現(xiàn)的次數(shù),并輸出;第三個刪除某一字符串,并輸出剩下的字符;第四個分行輸出用戶輸入的字符;第五個退出。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)計p1,p2,p3,nStrNo統(tǒng)計s次數(shù)DelStr刪除所有sPrintf1分行輸出c圖2三、程序設計#include #include #include struct ca char c;ca *next;void InitList(ca *L /輸入文字printf("輸入一頁文字(
4、以#結束:n"while(L->c = getchar( != '#' /當輸入的字符不為#時,開辟新的空間,繼/續(xù)輸入L->next = new ca;L = L->next;L->next = NULL;void StrNo(ca *L /統(tǒng)計字符出現(xiàn)的次數(shù)int n = 0; /初始化總數(shù)nchar s80, *q;ca *p;printf("輸入一字符串: "cin>>s;while(L->next /L鏈表的next域為真 for (p = L, q = s; *q != '0'
5、&& p->next; p = p->next, q+/指針p指向L,q指向輸入的字符串s,當q指向的不為空時,并且p有next域,則,P指/針后移,q+,重新循環(huán). if (p->c != *q break; /當p指向的字符不等于q時,跳出循環(huán)if (*q = '0' n+; /當L中的某一字符串與s相對應完全,即q指向空時,n+1L = L->next;cout<<"字符串 "< 出現(xiàn) "< 次 n" ca *DelStr(ca *L /刪除一個字符串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)計英文字母的個數(shù)else if(isdigit(L->c p2+; /統(tǒng)計數(shù)字的個數(shù)else if(L->c = ' ' p3+; /統(tǒng)計空格的個數(shù)else if(L->c =
8、9;n' n-; cout<<"n全部字母數(shù): "< cout<<"n數(shù)字個數(shù): "< cout<<"n空格個數(shù): "< cout<<"n文章總字數(shù): "< void main( ca *L = new ca;int p1, p2, p3, n, c;InitList(L;do cout<<"n0:退出n""1:統(tǒng)計中英文字母和空格數(shù)以及整篇文章總字數(shù)n""2:統(tǒng)計某一字符串
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ù)字個數(shù): "< cout<<"n空格個數(shù): "< cout<<"n文章總字數(shù): "< void main( ca *L = new ca;int p1, p2, p3, n, c;InitList(L;do cout<<"n0:退出n""1:統(tǒng)計中英文字母和空格數(shù)以及整篇文章總字數(shù)n""2:統(tǒng)計某一字符串在文章中出現(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ù)類型不同,定義一個結構體;2、 運用函數(shù)isalpha isdigit來查找字母與
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個性化視頻制作委托合同書(2024年版)版B版
- 2025年環(huán)保型打印紙張品研發(fā)與認證合同4篇
- 2025年度文化創(chuàng)意產(chǎn)業(yè)承包經(jīng)營合同賠償與創(chuàng)意成果轉(zhuǎn)化3篇
- 二零二五版房產(chǎn)維修基金管理合同3篇
- 2025年綠色建筑彩板房采購協(xié)議3篇
- 2025年度商業(yè)地產(chǎn)項目租賃協(xié)議范本4篇
- 二零二五年度美容師客戶滿意度調(diào)查與反饋協(xié)議4篇
- 2024年銷售合同風險評估3篇
- 2025版合伙企業(yè)個人退伙權益保障協(xié)議書3篇
- 2025年度數(shù)據(jù)中心基礎設施建設承包協(xié)議8篇
- 2025年度公務車輛私人使用管理與責任協(xié)議書3篇
- 售后工程師述職報告
- 綠化養(yǎng)護難點要點分析及技術措施
- 2024年河北省高考歷史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學六年級數(shù)學奧數(shù)題100題附答案(完整版)
- 高中綜評項目活動設計范文
- 英漢互譯單詞練習打印紙
- 2023湖北武漢華中科技大學招聘實驗技術人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術說明書MSDS
- 物流簽收回執(zhí)單
評論
0/150
提交評論