下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淮海 工學(xué)院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)選題名稱:簡(jiǎn)單行編輯姓 名: 侯耀生 學(xué) 號(hào):2012122694專業(yè)班級(jí):軟件工程軟件121系(院): 計(jì)算機(jī)工程學(xué)院設(shè)計(jì)時(shí)間: 2013.12.232013.1.5設(shè)計(jì)地點(diǎn):軟件工程實(shí)驗(yàn)室、教室成績(jī):指導(dǎo)教師評(píng)語(yǔ):簽名:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告第 18 頁(yè),共 頁(yè)1.課程設(shè)計(jì)目的1、訓(xùn)練學(xué)生靈活應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識(shí),獨(dú)立完成問(wèn)題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識(shí),編寫(xiě)程序求解指定問(wèn)題。2 .初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;3 .提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力;4 .訓(xùn)練
2、用系統(tǒng)的觀點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),鞏固、深化學(xué)生的理論知識(shí),提高編程水平,并在此過(guò)程中培養(yǎng)他們嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的工作作風(fēng)。2 .課程設(shè)計(jì)任務(wù)與要求:任務(wù)根據(jù)教材數(shù)據(jù)結(jié)構(gòu)-C語(yǔ)言描述(耿國(guó)華主編)和參考書(shū)數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版)(嚴(yán)蔚敏、吳偉民主編)選擇課程設(shè)計(jì)題目,要求通過(guò)設(shè)計(jì),在數(shù)據(jù)結(jié)構(gòu)的邏輯特性和物理表示、數(shù)據(jù)結(jié)構(gòu) 的選擇應(yīng)用、算法的設(shè)計(jì)及其實(shí)現(xiàn)等方面加深對(duì)課程基本內(nèi)容的理解和綜合運(yùn)用。設(shè)計(jì)題目從任務(wù)書(shū)所列選題表中選取,每班每題不得超過(guò)2人。學(xué)生自選課題學(xué)生原則上可以結(jié)合個(gè)人愛(ài)好自選課題,要求課題有一定的深度與難度,有一定的算法復(fù)雜性,能夠鞏固數(shù)據(jù)結(jié)構(gòu)課程所學(xué)的知識(shí)。學(xué)生自選
3、課題需在18周前報(bào)課程設(shè)計(jì)指導(dǎo)教師批準(zhǔn)方可生效。要求:1、在處理每個(gè)題目時(shí),要求從分析題目的需求入手,按設(shè)計(jì)抽象數(shù)據(jù)類型、構(gòu)思算法、通過(guò)設(shè)計(jì)實(shí)現(xiàn)抽象數(shù)據(jù)類型、編制上機(jī)程序和上機(jī)調(diào)試等若干步驟完成題目,最終寫(xiě)出完整的分析報(bào)告。前期準(zhǔn)備工作完備與否直接影響到后序上機(jī)調(diào)試工作的效率。在程序設(shè)計(jì)階段應(yīng)盡量利用已有的標(biāo)準(zhǔn)函數(shù),加大代碼的重用率。2、.設(shè)計(jì)的題目要求達(dá)到一定工作量(300行以上代碼),并具有一定的深度和難度。3、程序設(shè)計(jì)語(yǔ)言推薦使用 C/C+,程序書(shū)寫(xiě)規(guī)范,源程序需加必要的注釋;4、每位同學(xué)需提交可獨(dú)立運(yùn)行的程序;5、每位同學(xué)需獨(dú)立提交設(shè)計(jì)報(bào)告書(shū)(每人一份),要求編排格式統(tǒng)一、規(guī)范、內(nèi)容充
4、實(shí),不少于10頁(yè)(代碼不算);6、課程設(shè)計(jì)實(shí)踐作為培養(yǎng)學(xué)生動(dòng)手能力的一種手段,單獨(dú)考核。3 .課程設(shè)計(jì)說(shuō)明書(shū)一需求分析設(shè)計(jì)一個(gè)簡(jiǎn)單的行編輯程序,輸入一頁(yè)文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個(gè)數(shù)。靜態(tài)存 儲(chǔ)一頁(yè)文章,每彳T最多不超過(guò)80個(gè)字符,共N行。存儲(chǔ)結(jié)構(gòu)使用線性表,文字中可以是大寫(xiě)、小寫(xiě)的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號(hào)?;疽?1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);(2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。(4)輸出形式:1)分行輸出用戶輸入的各行字符;2)分4行輸出"全部字母數(shù)"、"數(shù)字個(gè)
5、數(shù)"、"空格個(gè)數(shù)"、"文章總字?jǐn)?shù)"3)輸出刪除某一字符串后的文章;二概要設(shè)計(jì)1 .結(jié)構(gòu)體定義:typedef struct linechar *data;struct line *next;LINE;2 .各函數(shù)功能(1) void Create(LINE * &head)功能:創(chuàng)建一個(gè)鏈表,同時(shí)向里面輸入文本數(shù)據(jù)(2) int Countwords(LINE * &head)功能:統(tǒng)計(jì)字母數(shù)(3) int CountNumber(LINE * &head)功能:統(tǒng)計(jì)數(shù)字?jǐn)?shù)(4) int CountSpace(LINE
6、* &head)功能:統(tǒng)計(jì)空格數(shù)(5) int CountAll(LINE * &head)功能:統(tǒng)計(jì)文章的總字?jǐn)?shù)(6) int FindString(LINE * &head,char*str)功能:統(tǒng)計(jì)str在文章中出現(xiàn)的次數(shù)(7) void delstringword(char *s,char *str)void DelString(LINE * &head,char *str)功能:刪除指定的字符串(8) void OutPut(LINE * &head)功能:向屏幕輸出文章系統(tǒng)流程圖主函數(shù)f1廣、統(tǒng)統(tǒng)統(tǒng)統(tǒng)計(jì)刪計(jì)計(jì)計(jì)某除數(shù)空文個(gè)指字格早字士 7E
7、數(shù)J數(shù)1z總 字 數(shù)符 串 出現(xiàn) 次、數(shù),字 符 串1)退 出 該 系 統(tǒng)三詳細(xì)設(shè)計(jì)1 .定義頭文件#include <iostream.h>#include <string.h>#include <stdio.h>2 .定義結(jié)構(gòu)體定義一個(gè)鏈表,文本每行以字符串形式存儲(chǔ),行與行之間以鏈表存儲(chǔ)typedef struct linechar *data;struct line *next;LINE;3 .主要難點(diǎn)函數(shù)的功能及其實(shí)現(xiàn)(1)統(tǒng)計(jì)str在文章中出現(xiàn)的次數(shù)。int FindString(LINE * &head,char*str) LINE *p
8、=head;int count=0;int h=0;int len1=0;/保存當(dāng)前行的總字符數(shù)int len2=strlen(str);/待統(tǒng)計(jì)字符串的長(zhǎng)度int i,j,k;do len1=strlen(p->data);/當(dāng)前行的字符數(shù)for(i=0;i<len1;i+)/字符匹配if(p->datai=str0) k=0;for(j=0;j<len2;j+)if(p->datai+j=strj) k+;if(k=len2) count+; i=i+k-1;while(p=p->next)!=NULL);/遍歷鏈表return count;(2)刪除指
9、定字符申void delstringword(char *s,char *str)char *p=strstr(s,str);從字符串s中尋找str第一次出現(xiàn)的位置char tmp80;int len=strlen(s);int i=len-strlen(p);int j=i+strlen(str);int count=0;for(int m=0;m<i;m+)tmpcount+=sm;for(int n=j;n<len;n+)tmpcount+=sn;tmpcount='0'strcpy(s,tmp);/ 返回新的字符串void DelString(LINE *
10、&head,char *str)LINE*p=head;do/刪除指定字符申if(strstr(p->data,str)!=NULL) delstringword(p->data,str);while(p=p->next)!=NULL);/遍歷鏈表/向屏幕輸出文章void OutPut(LINE * &head)LINE *p=head;doprintf("%sn",p->data);while(p=p->next)!=NULL);/ 遍歷鏈表四設(shè)計(jì)與調(diào)試分析(1)系統(tǒng)起始界面,要求輸入字符串文章I Q I S3 II尸* M
11、KMK MTM M K X M M MMM MM M M |"單 j丁當(dāng)先 MM M KM'K MM M MM M KM X M K M KMK 整4堇 JCAM*裝 MM 2012122694 JKM MM! M: MM ML MM K JCM JH M M: X MM M:請(qǐng)輸入字符串,以Ctrl.ELQ為結(jié)尾(每行最多輸入3嚀符紇:(2)系統(tǒng)王界面E舊”侯印生果程的,口或ugL。/1 = 1 回1n部一子恬草J式樂(lè) ±整文 i十汜盥 統(tǒng)統(tǒng)統(tǒng)第晦 12 3 4 5 6 7數(shù) 次 的 現(xiàn) 出請(qǐng)輸入ir,選擇你要的步騷(3)統(tǒng)計(jì)字母數(shù)(4)統(tǒng)計(jì)數(shù)子數(shù)(6).-統(tǒng)訐文
12、章總字?jǐn)?shù)-統(tǒng)計(jì)某個(gè)字符串出現(xiàn)的次數(shù)刪除指定字符申(8)退出該系統(tǒng)(9)未按指定要求輸入編號(hào)(10)史巳信S年Debugl.exe'a五用戶手冊(cè)Ctrl+E 鍵。1 .進(jìn)入用戶界面,輸入一篇文章,可以包括字母數(shù)字以及空格符,完成后按2 .輸入完成后,進(jìn)入用戶主界面,在選項(xiàng) 17內(nèi)進(jìn)行選擇。(1)若按1鍵,統(tǒng)計(jì)該篇文章的全部字母數(shù)。(2)若按2鍵,統(tǒng)計(jì)該篇文章的全部數(shù)字?jǐn)?shù)。(3)若按3鍵,統(tǒng)計(jì)該篇文章的全部空格數(shù)。(4)若按4鍵,統(tǒng)計(jì)該篇文章的總字?jǐn)?shù)。(5)若按5鍵,統(tǒng)計(jì)某個(gè)字符串在文章中出現(xiàn)的次數(shù),(6)若按6鍵,刪除該文章中的指定字符用。(7)若按7鍵,退出該系統(tǒng)。(8)若按8鍵,則返
13、回異常,提示輸入鍵為17鍵六測(cè)試成果±缶侯耀生:果程只計(jì)DobuglExek*mM*MWM*N MM* 簡(jiǎn)單彳 J 編輯系金克 MX XMKKJtlEJCKXMM2B12122694情輸入于符串,協(xié)口七出反嗚為結(jié)尾匕每行蜃多輸入幽字中” 扁入面文章為:. _ _&Fh尊g號(hào)ing 12312ingr bcxg*/s6324c66g2xi*F6ingr 乂wgy后Adic數(shù)革出現(xiàn)的次數(shù)部字量®KH/E系 全獨(dú)支KW 充塞南充充胴艮IL g £k幺 ;2* 一 一 - 10 12 3 4 5 6 7選擇你要的步驟請(qǐng)輸入2.統(tǒng)計(jì)湫字?jǐn)?shù)七附錄(源程序清單)#inc
14、lude <iostream.h>#include <string.h>#include <stdio.h>文本每行以字符串形式存儲(chǔ),行與行之間以鏈表存儲(chǔ)typedef struct linechar *data;struct line *next;LINE;void Create(LINE * &head)printf("請(qǐng)輸入字符串,以Ctrl+E1E)為結(jié)尾(每行最多輸入80字符!):n");LINE *p=new LINE;head=p;char tmp100;while(1)gets(tmp);if(strlen(tmp
15、)>80)printf("每行最多輸入80字符");break;if(tmp0=5)break;p=p->next=new LINE;p->data=new charstrlen(tmp)+1;strcpy(p->data,tmp);if(tmpstrlen(tmp)-1=5)p->datastrlen(tmp)-1='0'break;p->next=NULL;head=head->next;統(tǒng)計(jì)字母數(shù)int Countwords(LINE * &head)LINE *p=head;int count=0;d
16、oint Len=strlen(p->data);for(int i=0;i<Len;i+)if(p->datai>='a'&&p->datai<='z')|(p->datai>='A'&&p->datai<='Z')count+;while(p=p->next)!=NULL);return count;統(tǒng)計(jì)數(shù)字?jǐn)?shù)int CountNumber(LINE * &head)LINE *p=head;int count=0;do
17、int Len=strlen(p->data);for(int i=0;i<Len;i+)if(p->datai>=48&&p->datai<=57)count+;while(p=p->next)!=NULL);return count;統(tǒng)計(jì)空格數(shù)int CountSpace(LINE * &head)LINE *p=head;int count=0;doint Len=strlen(p->data);for(int i=0;i<Len;i+)if(p->datai=32)count+;while(p=p-&g
18、t;next)!=NULL);統(tǒng)計(jì)文章的總字?jǐn)?shù)int CountAll(LINE * &head)LINE *p=head;docount+=strlen(p->data);while(p=p->next)!=NULL);統(tǒng)計(jì)str在文章中出現(xiàn)的次數(shù)int FindString(LINE * &head,char*str)return count;int count=0;return count;LINE *p=head;int count=0;int h=0;int len1=0;int len2=strlen(str);int i,j,k;dolen1=strl
19、en(p->data);for(i=0;i<len1;i+)if(p->datai=str0)k=0;for(j=0;j<len2;j+)if(p->datai+j=strj)k+;if(k=len2)count+;i=i+k-1;while(p=p->next)!=NULL);return count;刪除指定的字符串void delstringword(char *s,char *str)char *p=strstr(s,str);char tmp80;int len=strlen(s);int i=len-strlen(p);int j=i+strle
20、n(str);int count=0;for(int m=0;m<i;m+)tmpcount+=sm;for(int n=j;n<len;n+)tmpcount+=sn;tmpcount='0'strcpy(s,tmp);void DelString(LINE * &head,char *str)LINE*p=head;do刪除指定字符串if(strstr(p->data,str)!=NULL)delstringword(p->data,str);while(p=p->next)!=NULL); 向屏幕輸出文章void OutPut(LIN
21、E * &head)LINE *p=head;doprintf("%sn",p->data);while(p=p->next)!=NULL); / 遍歷鏈表主函數(shù)void main()int choice;LINE *head;char str120,str220;printf("n");printf("*n");printf("*簡(jiǎn)單行編輯系統(tǒng)*n");printf("*2012122694*n");printf("*n");printf("n
22、");Create(head);printf("輸入的文章為:n");OutPut(head);printf("*請(qǐng)輸入17,選擇你要的步驟*n");printf("*1.統(tǒng)計(jì)全部字母數(shù)*n"printf("*2.統(tǒng)計(jì)數(shù)字個(gè)數(shù)*n"printf("*3.統(tǒng)計(jì)空格個(gè)數(shù)*n"printf("*4.統(tǒng)計(jì)文章總字?jǐn)?shù)*n"printf("*5.統(tǒng)計(jì)某個(gè)字符串出現(xiàn)的次數(shù)*n"printf("*6.刪除指定字符串*n"printf(&quo
23、t;*7.退出該系統(tǒng)*n");););););););printf(" *n");printf(" *n");printf(" *n"); while(1)cin>>choice;switch(choice)case 1:printf("*1.統(tǒng)計(jì)字母數(shù)*n");printf("*n");printf("*該文章的全部字母數(shù)為:%d *n",Countwords(head);printf("*請(qǐng)您繼續(xù)進(jìn)行選擇*n");printf(
24、"*n"); printf("n");break;case 2:printf("*2.統(tǒng)計(jì)數(shù)字?jǐn)?shù)*n");printf(”*n");數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告第19頁(yè),共頁(yè)printf("*該文章的數(shù)字個(gè)數(shù):%d *n",CountNumber(head);printf("*請(qǐng)您繼續(xù)進(jìn)行選擇*n");printf("+*n");printf("n");break;case 3:printf("*3.統(tǒng)計(jì)空格數(shù)*n");printf(
25、"*n");printf("*該文章的空格個(gè)數(shù):%d *n",CountSpace(head);printf("*請(qǐng)您繼續(xù)進(jìn)行選擇*n");printf("*n");printf("n");break;case 4:printf("*4.統(tǒng)計(jì)文章總字?jǐn)?shù)*n");printf("*n");printf("*該文章的總字?jǐn)?shù):d n",CountAll(head);printf("*請(qǐng)您繼續(xù)進(jìn)行選擇*n");printf(
26、"*n");printf("n");break;case 5:printf("*5.統(tǒng)計(jì)某個(gè)字符串出現(xiàn)的次數(shù)*n");printf("*n");printf("*請(qǐng)輸入要統(tǒng)計(jì)的字符串:");scanf("%s",str1);printf("*%s 出現(xiàn)的次數(shù)為:d *n",str1,FindString(head,str1);printf("*請(qǐng)您繼續(xù)進(jìn)行選擇*n");printf("*n");printf(&quo
27、t;n");break;數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告第16頁(yè),共 頁(yè)printf("*6.刪除指定字符串printf("*n");printf("*請(qǐng)輸入要?jiǎng)h除的某一字符串:*n");*n");scanf("%s",str2);DelString(head,str2);printf("刪除s后的文章為:”,str2);OutPut(head);printf("*請(qǐng)您繼續(xù)進(jìn)行選擇*n");printf("*n");printf("n");break;case 6:printf("*7.退出該系統(tǒng)printf("*n");printf("*已退出該系統(tǒng)printf("*n");*n");*n");printf( "*n");printf("n");break;default:printf("*n");printf("*對(duì)不起,您所輸入的編號(hào)不在17之間printf("*請(qǐng)重新輸入*n");*n");p
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智能穿戴設(shè)備開(kāi)模及批量生產(chǎn)合同范本3篇
- 2024年文化園區(qū)開(kāi)發(fā)與運(yùn)營(yíng)管理服務(wù)合同3篇
- 2024年跨境電商貨物收款代理服務(wù)合同3篇
- 2025版租賃房產(chǎn)風(fēng)險(xiǎn)評(píng)估與預(yù)警服務(wù)合同范本3篇
- 汽車制造廠油工施工合同
- 軍事設(shè)施土方施工合同
- 文化創(chuàng)意產(chǎn)業(yè)房產(chǎn)買賣合同模板
- 進(jìn)口商品存儲(chǔ)協(xié)議
- 銀行員工提升服務(wù)質(zhì)量承諾書(shū)
- 建筑橋梁施工人工費(fèi)合同
- Unit 2 How often do you exercise Section A 1a-2d 教學(xué)實(shí)錄 2024-2025學(xué)年人教版八年級(jí)英語(yǔ)上冊(cè)
- 2024年公路工程資料歸檔與承包合同3篇
- 2024-2025學(xué)年上學(xué)期杭州初中英語(yǔ)八年級(jí)期末試卷
- 法律邏輯學(xué)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋西南政法大學(xué)
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末學(xué)業(yè)水平檢測(cè)歷史試題 含答案
- 中考數(shù)學(xué)復(fù)習(xí)第二章方程(組)與不等式(組)第三節(jié)分式方程及其應(yīng)用課件
- 水肥一體化智能種植管理技術(shù)實(shí)施方案
- 廣告牌匾安裝施工方案
- 馬克思主義基本原理期末試題及答案
- 成人流行性感冒抗病毒治療專家共識(shí)(2022年)解讀
- GB/T 13738.2-2017紅茶第2部分:工夫紅茶
評(píng)論
0/150
提交評(píng)論