簡(jiǎn)單行編輯器數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第1頁(yè)
簡(jiǎn)單行編輯器數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第2頁(yè)
簡(jiǎn)單行編輯器數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第3頁(yè)
簡(jiǎn)單行編輯器數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第4頁(yè)
簡(jiǎn)單行編輯器數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、簡(jiǎn)單行編寫(xiě)器數(shù)據(jù)構(gòu)造課程設(shè)計(jì)簡(jiǎn)單行編寫(xiě)器數(shù)據(jù)構(gòu)造課程設(shè)計(jì)18/18簡(jiǎn)單行編寫(xiě)器數(shù)據(jù)構(gòu)造課程設(shè)計(jì)中國(guó)礦業(yè)大學(xué)徐海學(xué)院計(jì)算機(jī)系軟件認(rèn)知實(shí)踐報(bào)告姓名:學(xué)號(hào):專(zhuān)業(yè):設(shè)計(jì)題目:簡(jiǎn)單行編寫(xiě)器指導(dǎo)教師:2012年12月25目錄第1章題目概括1第1.1節(jié)題目要求1第1.2節(jié)主要難點(diǎn)2第2章系統(tǒng)流程圖3第3章數(shù)據(jù)構(gòu)造和算法4第4章核心代碼剖析6第5章復(fù)雜度剖析10第6章總結(jié)11參照文件13中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告第1章題目概括在此次課程設(shè)計(jì)中我選的題目是文本編寫(xiě),文本編寫(xiě)幾乎是每個(gè)使用電腦的人都會(huì)碰到的問(wèn)題,特別是網(wǎng)絡(luò)小說(shuō)作家們。在文本的編寫(xiě)中,我們會(huì)經(jīng)常碰到文本信息的統(tǒng)計(jì)問(wèn)題、小型子串的查找問(wèn)題、

2、子串的查找和刪除問(wèn)題等。假如靠人自己去察看和履行有關(guān)操作的話,不單累人,并且很簡(jiǎn)單犯錯(cuò)。而使用計(jì)算機(jī)程序去實(shí)現(xiàn)的話,則會(huì)省力許多,并且相對(duì)來(lái)說(shuō)特別精準(zhǔn)。本程序使用了較迅速的查找算法,能夠大大提升檢索的效率,相信這可一極大的方便用戶(hù)用電腦編寫(xiě)文本文件。第1.1節(jié)題目要求文章編寫(xiě)功能:輸入一頁(yè)文字,程序能夠統(tǒng)計(jì)出文字、數(shù)字、空格的個(gè)數(shù)。靜態(tài)儲(chǔ)存一頁(yè)文章,每行最多不超出80個(gè)字符,共N行;要求1)分別統(tǒng)計(jì)出此中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);3)刪除某一子串,并將后邊的字符前移。儲(chǔ)存構(gòu)造使用線性表,分別用幾個(gè)子函數(shù)實(shí)現(xiàn)相應(yīng)的功能;輸入數(shù)據(jù)的形式

3、和范圍:能夠輸入大寫(xiě)、小寫(xiě)的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號(hào)。輸出形式:1)分行輸出用戶(hù)輸入的各行字符;2)分4行輸出所有字母數(shù)、數(shù)字個(gè)數(shù)、空格個(gè)數(shù)、文章總字?jǐn)?shù)3)輸出刪除某一字符串后的文章;實(shí)現(xiàn)功能1)文章內(nèi)容的輸入:包含字母、標(biāo)點(diǎn)符號(hào)、數(shù)字等;2)文章內(nèi)容的統(tǒng)計(jì):包含文章中大寫(xiě)字母、小寫(xiě)字母、數(shù)字、標(biāo)點(diǎn)符1中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告號(hào)、空格以及文章所有字?jǐn)?shù)的個(gè)數(shù)的統(tǒng)計(jì);(3)文章內(nèi)容的辦理:包含對(duì)文章內(nèi)容的查找、刪除以,此中在查找的過(guò)程中統(tǒng)計(jì)出該字符或字符串在文章中出現(xiàn)的次數(shù);第1.2節(jié)主要難點(diǎn)本程序是對(duì)一段英文文章的內(nèi)容進(jìn)行辦理,儲(chǔ)存方式采納鏈?zhǔn)絻?chǔ)存,沒(méi)有文件操作,故本程序?qū)ζ湮谋?/p>

4、內(nèi)容的所有操作都是在鏈表中進(jìn)行的。關(guān)于文本的輸入,采納頭插法將文本信息儲(chǔ)存到鏈表已申請(qǐng)好的儲(chǔ)存空間中,在此部分設(shè)計(jì)中最大的問(wèn)題在于輸入文章過(guò)程中輸入的字符數(shù)大于80時(shí)怎樣換行;關(guān)于文本內(nèi)容的統(tǒng)計(jì),使用循環(huán)對(duì)已儲(chǔ)存的文章進(jìn)行般配,大寫(xiě)字母數(shù)、小寫(xiě)字母數(shù)、空格數(shù)、數(shù)字?jǐn)?shù)直接經(jīng)過(guò)比較即可獲得,標(biāo)點(diǎn)符號(hào)經(jīng)過(guò)ASC比較即可獲得;關(guān)于文本內(nèi)容的辦理,查找部分還是使用循環(huán)對(duì)已儲(chǔ)存的文章進(jìn)行般配,判斷需要查找的字符或許字符串能否與文章中某部分內(nèi)容同樣,假如存在同樣的記錄同樣的個(gè)數(shù)及地點(diǎn)并輸出個(gè)數(shù)及地點(diǎn)。刪除部分先使用程序的查找功能對(duì)文章中需要?jiǎng)h除的字符或許字符串進(jìn)行查找,而后對(duì)其進(jìn)行刪除。文本編寫(xiě)的基本內(nèi)容為

5、查察文本文件內(nèi)容,統(tǒng)計(jì)內(nèi)容基本信息,查找子串能否存在及其出現(xiàn)次數(shù),查找并刪除所有的有關(guān)子串并從頭輸出文本內(nèi)容等等。2輸入文字輸出文字中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告第2章系統(tǒng)流程圖開(kāi)始主函數(shù)統(tǒng)計(jì)個(gè)數(shù)查找某一子串統(tǒng)計(jì)字母、數(shù)字、空刪除這一子串格、某一字符串的個(gè)數(shù)以及文章總字?jǐn)?shù)輸出刪除后的文章詳細(xì)操作3中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告第3章數(shù)據(jù)構(gòu)造和算法1、定義構(gòu)造體structline,文本行采納次序儲(chǔ)存,行與行之間采納鏈?zhǔn)絻?chǔ)存.2、主要函數(shù):intFindString(LINE*&head,char*str)/*統(tǒng)計(jì)str在文章中出現(xiàn)的次數(shù)*/求在一行中Str出現(xiàn)的次數(shù)的流程圖:開(kāi)始c

6、ount=0;h=0;len1=0;len2=strlen(str);i+p-datai=str0NYk=0;j=0;Np-datai+j=strjYk+;j+;Nk=len2Ycount+;i=i+k-1;結(jié)束4中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告查找第一個(gè)字符,假如有第一個(gè)字符即p-datai=str0,設(shè)計(jì)數(shù)器k=0查找這個(gè)字符后邊的字符與要查找的字符串能否般配即p-datai+j=strj,假如般配k+重復(fù)第二步,假如k=len2,則查找到,count+;假如沒(méi)查找到,從頭進(jìn)行第一步。voiddelstringword(char*s,char*str)/*刪除字符串*s中的字符串*st

7、r*/psstrijfor(m=0;mi;m+)for(n=j;ndatastrlen(tmp)-1=0除掉最后一個(gè)控制符E。5中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告第4章核心代碼剖析1.typedefstructlinechar*data;structline*next;LINE;/*創(chuàng)立一鏈表,同時(shí)向里面輸入文本數(shù)據(jù)*/2./*統(tǒng)計(jì)字母數(shù)*/intCountLetter(LINE*&head)LINE*p=head;intcount=0;dointLen=strlen(p-data);/*計(jì)算目前data里的數(shù)據(jù)元素的個(gè)數(shù)*/for(inti=0;idatai=a&p-dataidatai=

8、A&p-datainext)!=NULL);/*遍歷鏈表*/returncount;/*返回文章的字母總數(shù)*/*統(tǒng)計(jì)數(shù)字?jǐn)?shù)*/intCountNumber(LINE*&head)LINE*p=head;intcount=0;dointLen=strlen(p-data);/*計(jì)算目前data里的數(shù)據(jù)元素的個(gè)數(shù)*/for(inti=0;idatai=48&p-datainext)!=NULL);/*遍歷鏈表*/returncount;6中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告/*統(tǒng)計(jì)空格數(shù)*/intCountSpace(LINE*&head)LINE*p=head;intcount=0;dointL

9、en=strlen(p-data);/*計(jì)算目前data里的數(shù)據(jù)元素的個(gè)數(shù)*/for(inti=0;idatai=32)count+;/*計(jì)算空格數(shù),空格ASCII碼為32*/while(p=p-next)!=NULL);/*遍歷鏈表*/returncount;/*統(tǒng)計(jì)文章的總字?jǐn)?shù)*/intCountAll(LINE*&head)LINE*p=head;/*保留鏈表的首地點(diǎn)*/intcount=0;do/*計(jì)算總字符數(shù)*/count+=strlen(p-data);while(p=p-next)!=NULL);/*遍歷鏈表*/returncount;/*統(tǒng)計(jì)str在文章中出現(xiàn)的次數(shù)*/intF

10、indString(LINE*&head,char*str)LINE*p=head;intcount=0;inth=0;intlen1=0;/*保留目前行的總字符數(shù)*/intlen2=strlen(str);/*待統(tǒng)計(jì)字符串的長(zhǎng)度*/inti,j,k;dolen1=strlen(p-data);/*目前行的字符數(shù)*/for(i=0;idatai=str0)k=0;for(j=0;jdatai+j=strj)k+;7中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告if(k=len2)count+;i=i+k-1;while(p=p-next)!=NULL);/*遍歷鏈表*/returncount;8中國(guó)礦業(yè)

11、大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告第5章復(fù)雜度剖析本算法的空間復(fù)雜度很低,空間復(fù)雜度為O(N)??墒潜舅惴ǖ臅r(shí)間復(fù)雜度比較高,輸出函數(shù)、查找函數(shù)算法時(shí)間復(fù)雜度均為O(N),可是刪除函數(shù)算法的時(shí)間復(fù)雜度較高。我臨時(shí)還問(wèn)想到時(shí)間復(fù)雜度更小的算法,所以在這里我無(wú)法對(duì)該算法進(jìn)行優(yōu)化。9中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告第6章總結(jié)為期一周的課程設(shè)計(jì)結(jié)束了,在這一周里我達(dá)成了編寫(xiě)文本編寫(xiě)程序的任務(wù)。任務(wù)書(shū)上要求是對(duì)輸入的信息進(jìn)行操作,自己開(kāi)始是不知道該向什么方向去努力,自己應(yīng)當(dāng)怎樣去編寫(xiě)這個(gè)程序,以后經(jīng)過(guò)比較著任務(wù)書(shū)上的要乞降到網(wǎng)上查找有關(guān)資料,慢慢找到了感覺(jué)。所以自己在整個(gè)課程設(shè)計(jì)的編寫(xiě)程序過(guò)程中碰到的困難

12、及問(wèn)題都經(jīng)過(guò)查閱資料、向老師發(fā)問(wèn)得以解決。本次課程設(shè)計(jì)自己最大的領(lǐng)會(huì)就是不論寫(xiě)什么程序,自己第一得對(duì)這個(gè)問(wèn)題要剖析透辟,要知道自己要干什么,而后才能讓自己干什么。經(jīng)過(guò)本次課程設(shè)計(jì),我學(xué)到了好多:加強(qiáng)了查閱有關(guān)參照資料的能力,獨(dú)立剖析解決問(wèn)題的能力;自己的上機(jī)著手的能力和對(duì)課程設(shè)計(jì)的理解,獲得好多啟迪;課程設(shè)計(jì)為我們供給了一個(gè)即著手又動(dòng)腦、獨(dú)立實(shí)踐的時(shí)機(jī),將課本上的知識(shí)理論和實(shí)質(zhì)有機(jī)的聯(lián)合起來(lái),鍛煉了我們的剖析解決實(shí)質(zhì)問(wèn)題的能力。此次課程設(shè)計(jì)使我我對(duì)數(shù)據(jù)邏輯構(gòu)造的特色和儲(chǔ)存表示方式的有了更深的認(rèn)識(shí)和認(rèn)識(shí),培育了我在詳細(xì)應(yīng)用中選擇適合的數(shù)據(jù)構(gòu)造和儲(chǔ)存構(gòu)造的能力,同時(shí)也使我認(rèn)識(shí)到自己在學(xué)習(xí)編程方面還

13、有好多的不足。此后我要多讀一些紡織方面的書(shū)本,不可以只拘泥于課本上的知識(shí),并著重理論與實(shí)踐的聯(lián)合,多上機(jī)練習(xí)編寫(xiě)程序,提升自己的實(shí)質(zhì)著手能力和獨(dú)立思慮的能力,不停充分自己,更好的掌握編程思想。10中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告參照文件嚴(yán)蔚敏、吳偉民主編,數(shù)據(jù)構(gòu)造(C語(yǔ)言版),清華大學(xué)第一版社,2002。殷人昆等著,數(shù)據(jù)構(gòu)造(C+版),清華大學(xué)第一版社,2001。金遠(yuǎn)平著,數(shù)據(jù)構(gòu)造(C+描繪),清華大學(xué)第一版社,2005。許卓群等著,數(shù)據(jù)構(gòu)造與算法,高等教育第一版社,2004。5FrankM.Carrano等著,數(shù)據(jù)構(gòu)造與+高級(jí)教程,清華大學(xué)第一版社,2004。嚴(yán)蔚敏、吳偉民著,數(shù)據(jù)構(gòu)造習(xí)

14、題集(C語(yǔ)言版),清華大學(xué)第一版社。11中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告附錄一:源代碼:#include#include#include/*文本每行以字符串形式儲(chǔ)存,行與行之間以鏈表存儲(chǔ)*/typedefstructlinechar*data;structline*next;LINE;/*創(chuàng)立一鏈表,同時(shí)向里面輸入文本數(shù)據(jù)*/voidCreate(LINE*&head)printf(請(qǐng)輸入一頁(yè)文章,以Ctrl+E(E)為結(jié)尾(每行最多輸入80字符!):n);LINE*p=newLINE;/*第一為鏈表成立一個(gè)附帶表頭結(jié)點(diǎn)*/head=p;/*將p付給表頭指針*/chartmp100;whi

15、le(1)gets(tmp);/*輸入字符串!*/if(strlen(tmp)80)printf(每行最多輸入80字符);break;if(tmp0=5)break;/*假如發(fā)現(xiàn)輸入E,則退出輸入*/p=p-next=newLINE;p-data=newcharstrlen(tmp)+1;/*為結(jié)點(diǎn)分派空間*/strcpy(p-data,tmp);if(tmpstrlen(tmp)-1=5)/*除掉最后一個(gè)控制符E*/p-datastrlen(tmp)-1=0;break;p-next=NULL;/*最后的一個(gè)指針為空*/12中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告head=head-next;/

16、*統(tǒng)計(jì)字母數(shù)*/intCountLetter(LINE*&head)LINE*p=head;intcount=0;dointLen=strlen(p-data);/*計(jì)算目前data里的數(shù)據(jù)元素的個(gè)數(shù)*/for(inti=0;idatai=a&p-dataidatai=A&p-datainext)!=NULL);/*遍歷鏈表*/returncount;/*返回文章的字母總數(shù)*/*統(tǒng)計(jì)數(shù)字?jǐn)?shù)*/intCountNumber(LINE*&head)LINE*p=head;intcount=0;do*/intLen=strlen(p-data);/*計(jì)算目前data里的數(shù)據(jù)元素的個(gè)數(shù)for(inti

17、=0;idatai=48&p-datainext)!=NULL);/*遍歷鏈表*/returncount;/*統(tǒng)計(jì)空格數(shù)*/intCountSpace(LINE*&head)13中國(guó)礦業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告LINE*p=head;intcount=0;dointLen=strlen(p-data);/*計(jì)算目前data里的數(shù)據(jù)元素的個(gè)數(shù)*/for(inti=0;idatai=32)count+;/*計(jì)算空格數(shù),空格ASCII碼為32*/while(p=p-next)!=NULL);/*遍歷鏈表*/returncount;/*統(tǒng)計(jì)文章的總字?jǐn)?shù)*/intCountAll(LINE*&hea

18、d)LINE*p=head;/*保留鏈表的首地點(diǎn)*/intcount=0;do/*計(jì)算總字符數(shù)*/count+=strlen(p-data);while(p=p-next)!=NULL);/*遍歷鏈表*/returncount;/*統(tǒng)計(jì)str在文章中出現(xiàn)的次數(shù)*/intFindString(LINE*&head,char*str)LINE*p=head;intcount=0;inth=0;intlen1=0;/*保留目前行的總字符數(shù)*/intlen2=strlen(str);/*待統(tǒng)計(jì)字符串的長(zhǎng)度*/inti,j,k;dolen1=strlen(p-data);/*目前行的字符數(shù)*/14中國(guó)礦

19、業(yè)大學(xué)徐海學(xué)院軟件認(rèn)知實(shí)踐報(bào)告for(i=0;idatai=str0)k=0;for(j=0;jdatai+j=strj)k+;if(k=len2)count+;i=i+k-1;while(p=p-next)!=NULL);/*遍歷鏈表*/returncount;/*刪除指定的字符串*/voiddelstringword(char*s,char*str)/*s為輸入的字符串,*str為將要?jiǎng)h除的字符*/char*p=strstr(s,str);/*從字符串s中找尋str第一次出現(xiàn)的地點(diǎn)*/chartmp80;intlen=strlen(s);inti=len-strlen(p);intj=i+strlen(str);intcount=0;for(intm=0;mi;m+)tm

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論