316黃宏亮327騰文本文件單詞的檢索與計(jì)數(shù)_第1頁(yè)
316黃宏亮327騰文本文件單詞的檢索與計(jì)數(shù)_第2頁(yè)
316黃宏亮327騰文本文件單詞的檢索與計(jì)數(shù)_第3頁(yè)
316黃宏亮327騰文本文件單詞的檢索與計(jì)數(shù)_第4頁(yè)
316黃宏亮327騰文本文件單詞的檢索與計(jì)數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、具體任務(wù)安排2軟件開(kāi)發(fā)環(huán)境2算法設(shè)計(jì)及流程圖3源代碼6運(yùn)行結(jié)果9收獲及體會(huì)10參考文獻(xiàn)11一二三四五六七一具體任務(wù)安排工作進(jìn)度表組員分工二軟件開(kāi)發(fā)環(huán)境Visual C+ 6.0Windows XPWindows 7201235020316 黃宏亮(組長(zhǎng))201235020327騰2012350203041、 設(shè)計(jì)并編寫界面部分代碼;2、 算法分析與設(shè)計(jì);3、 和隊(duì)友共同并優(yōu)化;1、編寫代碼2、 和隊(duì)友共同并優(yōu)化;3、 畫算法的程序流程圖;1、 編寫課程設(shè)計(jì)和心得體會(huì);2、 畫程序流程圖3、 測(cè)試時(shí)間完成工作完成人周四上午完成課程設(shè)計(jì)的需求分析,畫程序流程圖黃宏亮、騰、陳健棟周四下午設(shè)計(jì)并編寫程

2、序代碼黃宏亮、騰、陳健棟周五上午測(cè)試代碼并由問(wèn)題優(yōu)化代碼黃宏亮、騰、陳健棟周五下午編寫課程設(shè)計(jì)和心得體會(huì)黃宏亮、騰、陳健棟三算法設(shè)計(jì)及流程圖1、 定義一個(gè)串變量、文本文件,輸入文件名,打開(kāi)該文件,循環(huán)讀入文本行,寫入文本文件,關(guān)閉該文件。開(kāi)始While 以#號(hào)結(jié)束結(jié)束關(guān)閉文件文件輸入結(jié)束NY循環(huán)讀入文本行,寫入文件輸入文件名,打開(kāi)該文件定義文本 文件定義一個(gè) 串變量2、 逐行掃描文本文件。匹配一個(gè),計(jì)數(shù)器加 1,直到整個(gè)文件掃描結(jié)束;然后輸出單詞的次數(shù)。結(jié)束開(kāi)始If 第N 個(gè)單詞與所給單詞相同If N=M結(jié)束3、 逐行掃描文本文件。掃描一個(gè)單詞,單詞數(shù)加 1,匹配一個(gè),計(jì)數(shù)器加 1,輸出該單詞

3、數(shù),行數(shù)到底以此,行數(shù)加 1,單詞數(shù)清零,直到整個(gè)文件掃描結(jié)束;然后輸出單詞的次數(shù),行號(hào),第幾個(gè)單詞。輸出S 及其單詞的計(jì)數(shù)NYS=S+1N=N+1YN掃描第N 個(gè)單詞給定一個(gè)單詞定義 N=1,S=0 一個(gè)給了M 個(gè)單詞開(kāi)始If 第 N 個(gè)單詞與所給單詞相同NIf N=XIf L=YN結(jié)束L=L+1YI=0N=1輸出I輸出LNYN=N+1I=I+1輸出NY掃描第L 行第N 個(gè)單詞輸入要檢索的單詞定義L=1,I=0,N=1L 為行數(shù),I 為次數(shù),N 為第幾個(gè)單詞假設(shè)一共X 行,每行 Y 個(gè)單詞輸入文本文件名四 源代碼#include #include #include#define MaxStr

4、Size 256 /數(shù)組最大界限 256 using namespatd;typedef struct charaxStrSize; /ch 是一個(gè)可容納 256 個(gè)字符的字符數(shù)組length;/字符串長(zhǎng)度 SString;/定義順序串類型void CreatTextFile()/建立文件SString S;char tmpMaxStrSize; char fname10,yn;z;i=0;FILE *fp;/定義文件類型的指針 pr f(輸入要建立的文件名:); scanf(%s,fname); fp=fopen(fname,w);/ yn=n;/輸入結(jié)束標(biāo)志初值pr f(請(qǐng)輸入文本(以#號(hào)

5、結(jié)束):n);while(yn!=#)gets(S.ch);/文本輸入/gets(S.ch);S.length=strlen(S.ch);/計(jì)算長(zhǎng)度 if(S.chS.length-1!=#)S.chS.length-1 = ;elseS.chS.length-1 = ;S.chS.length = #;S.chS.length+1 = 0;strcpy(tmp, S.ch); S.ch0= ;S.ch1=0;strcat(S.ch, tmp); S.length=strlen(S.ch);fwrite(&S,S.length,1,fp);/寫數(shù)據(jù)到文件/ S.chS.lengthfpr f(

6、fp,%c,10);/是輸入換行yn=S.chS.length-1;fclose(fp);/關(guān)閉文件pr f(建立文件結(jié)束!n);Parti,j;ition (SString s1,SString s2,k)/對(duì)文本的掃描i=k-1;/掃描s1 的下標(biāo),因?yàn)閏 中數(shù)組下標(biāo)是從 0 開(kāi)始,串中序號(hào)相差 1 j=0;/掃描s2 的開(kāi)始下標(biāo)while(is1.length & j=s2.length) return i-s2.length;elsereturn -1;/表示s1 中不存在s2,返回-1/表示 s1 中存在s2,返回其起始位置void SubStrCount()/統(tǒng)計(jì)單詞出現(xiàn)的個(gè)數(shù)FI

7、LE *fp;/定義一個(gè)文件類型的指針 SString S,T;/定義兩個(gè)串變量char fname10; i=0,j,k,z;pr f(輸入文本文件名:);scanf(%s,fname); if(!(fp=fopen(fname,r)/判斷文件是否存在pr f(沒(méi)有該文件哦親!請(qǐng)重新選擇!);return;pr f(輸入要統(tǒng)計(jì)計(jì)數(shù)的單詞:); cinT.ch;/輸入單詞 for(z=strlen(T.ch);z!=-1;z-)T.chz+1 = T.chz;z=strlen(T.ch);T.chz= ;T.chz+1=0;T.ch0= ;T.length=strlen(T.ch);while

8、(!feof(fp)/掃描整個(gè)文本文件memset(S.ch,0,256); fgets(S.ch,100,fp); / S.length=strlen(S.ch);文本數(shù)據(jù)k=0; /初始化開(kāi)始檢索位置 while(kS.length-1) /檢索整個(gè)主串Sj=Partition(S,T,k);/調(diào)用串匹配函數(shù)if(j0 ) break; else i+;/單詞計(jì)數(shù)器加 1 k=j+T.length;/繼續(xù)下一字串的檢索prf(n 單詞%s 在文本文件%s出現(xiàn)%d 次n,T.ch,fname,i);void SubStrInd()/檢索單詞出現(xiàn)在文本文件中的行號(hào)、次數(shù)及其位置FILE *fp

9、;SString S,T; /定義兩個(gè)串變量char fname10;char tmp; i,j,k,l,m,p=0;z;wz20; /存放一行中字串匹配的多個(gè)位置 pr f(輸入文本文件名:);scanf(%s,fname); if(!(fp=fopen(fname,r)/判斷文件是否存在pr f(沒(méi)有該文件哦親!請(qǐng)重新選擇!);return;pr f(輸入要檢索的單詞:); scanf(%s,T.ch);for(z=strlen(T.ch);z!=-1;z-) T.chz+1 = T.chz;z=strlen(T.ch);T.chz= ;T.chz+1=0;T.ch0= ;T.length

10、=strlen(T.ch); l=0; /行計(jì)數(shù)器置 0while(!feof(fp) /掃描整個(gè)文本文件/fread(&S,sizeof(S),1,fp);/讀入一行文本 memset(S.ch,0,256); fgets(S.ch,256,fp); /文本數(shù)據(jù) S.length=strlen(S.ch);l+; /行計(jì)數(shù)器自增 1 k=0;/初始化開(kāi)始檢索位置 i=0; /初始化單詞計(jì)數(shù)器while(kS.length-1) /檢索整個(gè)主串Sj=Partition(S,T,k); /調(diào)用串匹配函數(shù)if(j0)p=i;pr f(行號(hào):%d,次數(shù):%d,在該行的位置為:,l-1,i); for

11、(m=1;m=i;m+) pr f(%4d,wzm+1); pr f(n);if(p=0) pr f(親,沒(méi)有找到您要的單詞哦!);main()void CreatTextFile(),SubStrCount(),SubStrInd(); xz;char s;pr f( n);pr f(pr f(n);n);while(1) pr f(n);pr pr pr pr pr pr prf( * * * * * * * * * * * * * * * * * * * * * * * *n);f(f(f(f(n);n);n);n);f( n);f(請(qǐng)選擇(14):);while(scanf(%d,&x

12、z)=0)五 運(yùn)行結(jié)果scanf(%s,&s); break;switch(xz) case 1 : CreatTextFile();break; case 2 : SubStrCount();break; case 3 : SubStrInd();break; case 4 : return 0;default:pr f(親的選擇有錯(cuò)誤哦,請(qǐng)重新選擇!n);六 收獲及體會(huì)黃宏亮:兩天的課程設(shè)計(jì)結(jié)束了,在這次課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識(shí),也培養(yǎng)了的團(tuán)隊(duì)合作。在設(shè)計(jì)過(guò)程中,與同學(xué)分工設(shè)計(jì),和相互探討,相互學(xué)習(xí)。課程設(shè)計(jì)是專業(yè)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,這是從事職業(yè)工作前一個(gè)必不少的過(guò)程,認(rèn)

13、真的進(jìn)行課程設(shè)計(jì),為以后的工作打下了堅(jiān)實(shí)的基礎(chǔ)。在這次課程設(shè)計(jì)中,選的是“文本文件單詞的檢索與計(jì)數(shù)”。雖然是比較簡(jiǎn)單的設(shè)計(jì),但是如果沒(méi)有團(tuán)隊(duì)的合作,一個(gè)人也是很耗時(shí)間的。經(jīng)過(guò)算法分析與設(shè)計(jì),編寫程序代碼,測(cè)試并優(yōu)化代碼,完成了這次的設(shè)計(jì)內(nèi)容,雖然也不是一帆風(fēng)順,遇到了一些問(wèn)題,在經(jīng)過(guò)和合作伙伴一起探討會(huì)了很多。后才解決了。總之,在這次的課程設(shè)計(jì)中收獲很大,學(xué)騰:兩天的課程設(shè)計(jì)即將結(jié)束,這兩天的課程設(shè)計(jì)也使我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程有了更深的理解,當(dāng)然令我感悟更深的是“編程”。通過(guò)這次的課程設(shè)計(jì),我親身感受到了編程的樂(lè)趣,自己的程序運(yùn)行成功時(shí)的那種心情,也讓我明白了對(duì)于編程,以后我該學(xué)什么,該做什么。

14、在這次課程設(shè)計(jì)過(guò)程中,我和組員們通過(guò)算法分析與設(shè)計(jì)編寫具體的實(shí)驗(yàn)代碼,共同討論并優(yōu)化,當(dāng)然,在這其中也遇到了許多小問(wèn)題,但經(jīng)過(guò)我和組員們共同探討下,解決了包括“程序”,“找不到數(shù)據(jù)沒(méi)有提示”等小問(wèn)題。在本次課程設(shè)計(jì)中,我明白了理論與實(shí)踐應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)及編寫程序的能力,培養(yǎng)了基本的、良好的程序設(shè)計(jì)技能以及合作能力,同時(shí),也認(rèn)識(shí)到了自己的不足之處,希望能有更大的進(jìn)步。:這次課程設(shè)計(jì),我有很大收獲和體會(huì)。小組做的是“文本文件單詞的檢索與計(jì)數(shù)”,首先要建立文本文件的實(shí)現(xiàn)思路,然后讀入一文本行至串變量,串變量寫入文件。再做給定單詞的計(jì)數(shù),檢索單詞出現(xiàn)在文本文件中的行號(hào)、次數(shù)及其位置,主控菜單程序的結(jié)構(gòu),最后經(jīng)過(guò)小組 3 個(gè)人的共同努力,終于把這個(gè)課程設(shè)計(jì)完成了。在完成后,遇到了,原來(lái)輸錯(cuò)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論