?? 459502659.txt
字號:
題目描述:
從硬盤上讀取一文本文件(一篇英語文章),將這篇文章的內容使用適當的數據結構保存起來,能夠方便的統計出各個單詞出現的頻率、和查詢特定的單詞。
在主函數中實現下列控制命令
openfile <輸入文件名>
display 顯示文件單詞統計結果
find <查詢的單詞>
quit
對于執行失敗的命令,給出相應的提示信息。
操作過程:
1) 打開文件
command:
openfile <輸入文件名>
2) 顯示文件統計結果
command:
display
輸出結果:顯示各個單詞出現的頻率并且降序排列: <單詞> <次數> <頻率>
3) 查詢單詞
cmmand:
find <查詢的單詞>
輸出結果:
<段序號> - <句序號> - <單詞序號>
<段序號> - <句序號> - <單詞序號>
<段序號> - <句序號> - <單詞序號>
共出現了 <單詞個數> 次
4) 退出
command:
quit
5) 顯示幫助
command:
help
輸出結果:
openfile <輸入文件名>
display 顯示單詞統計結果
find <查詢的單詞>
quit 退出
考察點:
1) 對象的繼承和使用
2) 對象的構造和析構
3) 控制臺的輸入和輸出
4) 程序的調試和運行
提示:
1) 將文章分為詞、句、段等三級結構,定義三個對象保存詞、句、段。單詞的分割符是空格、分號、頓號(ascii碼0x20,0x2D、0x3B),句子的分割符是句號、問號和感嘆號(ascii碼0x21、0x2E、0x2F),段落的分割符是回車(ascii碼0x0D 0x0A),其它符號省略。
2) 對象保存可以使用Vector或動態數組
/*把cailiao.txt中含有cidian.txt中的字的詞統計出來,如:含有“程”的詞有:程序、程度、程序員等*/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *cidian,*cailiao,*output;//輸入輸出文件指針,output是生成的結果
char *temp_cidian,*temp_cailiao,buf_cidian[10],buf_cailiao[64],*p;
int i=0,j=0,k=1,l=0;
cidian=fopen( "cidian.txt ", "rt ");
cailiao=fopen( "cailiao.txt ", "rt ");
output=fopen( "output.txt ", "w ");
while(!feof(cidian) ){
temp_cidian=fgets(buf_cidian,10,cidian);
*(buf_cidian+2)= '\0 ';//去掉詞典詞后的換行
fprintf(output, "含有\ "%s\ "的詞有:\n ",buf_cidian);
k++;
fseek(cailiao,0,SEEK_SET);
while(!feof(cailiao) ){//每次循環往結果里寫一個詞
temp_cailiao=fgets(buf_cailiao,32,cailiao);
p=strstr(buf_cailiao,buf_cidian);
if(p){
i++;
fprintf(output, "%s ",temp_cailiao);
}
}
fprintf(output, "共%d個 ",i);//統計個數
i=0;
fprintf(output, "\n\n\n ");
}
system( "PAUSE ");
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -