201671010439-詞頻統計軟件項目報告

一,需求分析c++

1.程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。算法

2.程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。函數

3.指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。測試

4.高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。設計

5.統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。對象

二,功能設計blog

1.用戶輸入任意多個英文單詞,顯示對應單詞在文本中出現的次數和柱狀圖。字符串

2.用戶從鍵盤輸入高頻詞輸出的個數k,按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。get

3.統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。原型

三,設計實現

說明每一個部分的算法設計說明(能夠是描述算法的流程圖)、每一個程序中使用的存儲結構設計說明(若是指定存儲結構寫出該存儲結構的定義),面向對象的方法,應該給出類中成員變量和成員函數原型聲明

4、測試運行

部分代碼

while(fscanf(fp,"%s",st)!=EOF)

{   found=0;

for(i=0;i<wordnum;i++)

   { if(strcmp(wl[i].word,st)==0)    //字符串的讀取  

  {

wl[i].num++;    

found=1; 

    break; }

}   if(!found)  

{

strcpy(wl[i].word,st);  

  wl[i].num=1;  

  wordnum++; }

}  fclose(fp); 

  if((fp=fopen("14220105.txt","r"))==NULL) 

exit(1);

  while((c=fgetc(fp))!=EOF)

{

if(c==' ')

 ++n;

else if(c>='0'&&c<='9')

++j;

else if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

++k;

else ++m

}

fclose(fp)

printf("讀取完畢,結果以下:\n")

printf("數字%d\n 字母%d\n 空格%d\n 其餘%d\n);//輸出結果

}

void shuru()

{char str[100]

char letter[52]

int count[52]={0}

int i;

int lc=0;

cout<<「輸入字符串:」<<endl;

scanf("%s",str);

//初始字母表

for(i=0;i<26;i++)

letter[i]='A'+i;

for(i=26;i<52;i++)

letter[i]='a'+i-26;

i=0;

while(str[i]!='\0')

{

if(str[i]!='\0')//字符串未結束

{

if(str[i]>='A'&&str[i]<='Z')

count[str[i]-65]++;

lc++;

}

i++;

}for(i=0,i<52;i++)

{if(count[i]!=0)

printf(%c-%d-%3.2f%\n",letter[i],count[i],(float)count[i]/lc*100);

}

}

5、運行結果

 

 

相關文章
相關標籤/搜索