版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)/NUMPAGES47數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告書(shū)題目:文本文件單詞的檢索與計(jì)數(shù)專業(yè):網(wǎng)絡(luò)工程學(xué)號(hào):131007137學(xué)生姓名:張欽昆指導(dǎo)教師:王初陽(yáng)完成日期:2014/6/7目錄TOC\o"1-3"\h\u單詞 個(gè)數(shù)\n"); for(i=0;i<sq.length;i++) {x=strlen(et[i].word); for(w=x-1;w>=0;w--) if(et[i].word[w]<65||(et[i].word[w]>90&&et[i].word[w]<97)||et[i].word[w]>122) { et[i].word[w]=''; } for(w=0;w<x;w++) if(et[i].word[w]=='') y++; if(y==x) { et[i].count=0; y=0; } elsey=0; if(et[i].count!=0) printf("%20s%10d\n",et[i].word,et[i].count); elseq++; } j=sqlist_count(&sq,et);printf("\n%s的單詞總數(shù)為%d個(gè)\n",file_name,j); printf("\n%s的非單詞個(gè)數(shù)為%d種\n",file_name,q); printf("\n");} intpartposition(strings1,strings2,intk) { inti,j; 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(i<s1.length&&j<s2.length) { if(s1.ch[i]==s2.ch[j]) { i++;j++;/*繼續(xù)使下標(biāo)移向下一個(gè)字符位置*/ } else { i=i-j+1;j=0; } } if(j>=s2.length) returni-s2.length;/*表示s1中存在s2,返回其起始位置*/ else return-1;/*表示s1中不存在s2,返回-1*/ }/*函數(shù)結(jié)束*/ voidsubstrcount() { FILE*fp; strings,t;/*定義兩個(gè)串變量*/ charfname[10];inti=0,j,k; printf("輸入文本文件名:"); scanf("%s",fname); fp=fopen(fname,"r"); printf("輸入要統(tǒng)計(jì)計(jì)數(shù)的單詞:"); scanf("%s",t.ch); t.length=strlen(t.ch); while(!feof(fp)) { memset(s.ch,'\0',110); fgets(s.ch,110,fp); s.length=strlen(s.ch); k=0;/*初始化開(kāi)始檢索位置*/ while(k<s.length-1)/*檢索整個(gè)主串S*/ { j=partposition(s,t,k);/*調(diào)用串匹配函數(shù)*/ if(j<0)break; else { i++;/*單詞計(jì)數(shù)器加1*/k=j+t.length;/*繼續(xù)下一字串的檢索*/ } } } printf("\n單詞%s在文本文件%s中共出現(xiàn)%d次\n",t.ch,fname,i);/*統(tǒng)計(jì)單詞出現(xiàn)的個(gè)數(shù)*/ } voidsubstrint() { FILE*fp; strings,t;/*定義兩個(gè)串變量*/ charfname[10]; inti,j,k,l,m; intwz[20];/*存放一行中字串匹配的多個(gè)位置*/ printf("輸入文本文件名:"); scanf("%s",fname); fp=fopen(fname,"r"); printf("輸入要檢索的單詞:"); scanf("%s",t.ch); t.length=strlen(t.ch); l=0;/*行計(jì)數(shù)器置0*/ while(!feof(fp))/*掃描整個(gè)文本文件*/ { memset(s.ch,'\0',110); fgets(s.ch,110,fp); s.length=strlen(s.ch); l++;/*行計(jì)數(shù)器自增1*/ k=0;/*初始化開(kāi)始檢索位置*/ i=0;/*初始化單詞計(jì)數(shù)器*/ while(k<s.length-1)/*檢索整個(gè)主串S*/ { j=partposition(s,t,k);/*調(diào)用串匹配函數(shù)*/ if(j<0)break; else { i++;/*單詞計(jì)數(shù)器加1*/ wz[i]=j;/*記錄匹配單詞位置*/ k=j+t.length;/*繼續(xù)下一字串檢索*/ } } if(i>0) { printf("行號(hào):%d,次數(shù):%d,位置分別為:",l,i); for(m=1;m<=i;m++) printf("第%4d個(gè)字符",wz[m]+1); } printf("\n"); } printf("\n本軟件自定義110個(gè)字節(jié)為一行\(zhòng)n\n"); }/*檢索單詞出現(xiàn)在文本文件中的行號(hào)、次數(shù)及其位置*/ voidsubstrio() { voidsubstrcount(),substrint(); chart; while(1) { printf("===============================================\n"); printf("請(qǐng)輸入:"); printf("||文本文件單詞字串的定位統(tǒng)計(jì)及定位||\n"); printf("||===================================||\n"); printf("||a.單詞出現(xiàn)次數(shù)||\n"); printf("||||\n"); printf("||||\n"); printf("||b.單詞出現(xiàn)位置||\n"); printf("||||\n"); printf("====================================\n"); scanf("%c",&t); switch(t) { case'a':substrcount(); break; case'b':substrint(); break; default:return; } } } intmain() { voidcreat_text_file(),substrsum(),substrio(); intxz; while(1) { printf("===============================================\n"); printf("||文本文件的檢索、字串的統(tǒng)計(jì)及定位||\n"); printf("||===========================================||\n"); printf("||1.建立文本文件||\n"); printf("||2.單詞字串的計(jì)數(shù)||\n"); printf("||3.單詞字串的定位||\n"); printf("||4.退出整個(gè)程序||\n"); printf("===============================================\n"); printf("請(qǐng)選擇(1--4)\n"); scanf("%d",&xz); switch(xz) { case1:creat_text_file(); break; case2:substrsum(); break; case3:substrio(); break; case4:return0; default:printf("選擇錯(cuò)誤,重新選\n"); } } return0; }4調(diào)試分析4.1問(wèn)題分析與回顧問(wèn)題1:在語(yǔ)句“請(qǐng)輸入一行文本”后邊,只寫(xiě)一句接受語(yǔ)句,結(jié)果運(yùn)行時(shí),請(qǐng)輸入文本和結(jié)束輸入嗎?演示在一起,并且不能接受文本輸入。解決:和同學(xué)討論后,加入了文本接受語(yǔ)句,成功運(yùn)行。問(wèn)題2:當(dāng)要檢索文本時(shí),輸入為空,或輸入非建立的文本文件名,系統(tǒng)不能正常運(yùn)行。分析:缺少判斷語(yǔ)句。解決:當(dāng)出現(xiàn)這種情況時(shí),系統(tǒng)提示輸入錯(cuò)誤,請(qǐng)重新輸入。4.2算法時(shí)空分析確定給定單詞出現(xiàn)的個(gè)數(shù),需要統(tǒng)計(jì)文本文件中全部的單詞,因此時(shí)間復(fù)雜度為O(n);確定給定單詞出現(xiàn)的位置,需要顯示其所在的行和列,時(shí)間復(fù)雜度為O(i*l);4.3算法改進(jìn)此算法雖然基本實(shí)現(xiàn)了功能,但卻仍存在許多不足,例如當(dāng)當(dāng)前建立的文件名與之前相同時(shí),沒(méi)有錯(cuò)誤提示,另如在對(duì)單詞的檢索方面,時(shí)間復(fù)雜度及空間復(fù)雜度仍不盡如人意。仍需要改進(jìn)代碼,達(dá)到算法的高效性。4.4經(jīng)驗(yàn)和體會(huì)通過(guò)本次數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì),讓我對(duì)數(shù)據(jù)結(jié)構(gòu)這門(mén)課有了更加深刻的認(rèn)識(shí)。數(shù)據(jù)結(jié)構(gòu)這門(mén)課程的理論性只是較強(qiáng),要學(xué)好這門(mén)課程,就必要在掌握好理論知識(shí)的同時(shí),加強(qiáng)上機(jī)操作,遇到問(wèn)題,解決問(wèn)題,這樣才會(huì)有更大的進(jìn)步。我課程設(shè)計(jì)的題目是文件文本的檢索與計(jì)數(shù),由于這個(gè)課題要用到串的知識(shí)。而我對(duì)之前對(duì)串的定義卻不是很明確,于是我有詳細(xì)的學(xué)習(xí)了課本上的知識(shí)并查閱了很多文獻(xiàn)。在著手作
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度創(chuàng)業(yè)公司員工勞動(dòng)合同管理與股權(quán)激勵(lì)3篇
- 2024年版車輛掛靠經(jīng)營(yíng)合作合同版B版
- 2024版二手車市場(chǎng)三輪車交易合同2篇
- 2024年文員崗位信息安全責(zé)任合同2篇
- 2024年標(biāo)準(zhǔn)門(mén)頭裝飾合作合同版B版
- 2024年度園林樹(shù)木病蟲(chóng)害防治技術(shù)研究合同范本3篇
- 2024年標(biāo)準(zhǔn)泥工班組施工勞務(wù)承包合同模板版B版
- 2024年借款合同解除爭(zhēng)議3篇
- 2024年度定制衣柜品牌代理合作協(xié)議2篇
- 2024事業(yè)單位內(nèi)部勞務(wù)派遣用工合同3篇
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 大學(xué)美育(同濟(jì)大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 安徽省江南十校2023-2024學(xué)年高一生物上學(xué)期分科診斷摸底聯(lián)考試題
- 高教版【中職專用】《中國(guó)特色社會(huì)主義》期末試卷+答案
- 足三陰經(jīng)周康梅
- MOOC 跨文化交際通識(shí)通論-揚(yáng)州大學(xué) 中國(guó)大學(xué)慕課答案
- 10000中國(guó)普通人名大全
- 交通事故快速處理單(正反打印)
- 通科實(shí)習(xí)出科考核病歷
- 獅子王2經(jīng)典臺(tái)詞中英文對(duì)照
- 水利工程竣工驗(yàn)收?qǐng)?bào)告表格(共5頁(yè))
評(píng)論
0/150
提交評(píng)論