—程序可讀入任意的英文文本文件,該文件中的英文詞數大於等於一個。 —可以讀取容納英文原版《哈利波特》10萬詞以上的文章。 —.要有指定單詞的詞頻統計功能,即用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖; —高頻單詞統計功能,即用戶共鍵盤輸入高頻詞輸出個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞; —統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt
基本功能:
—統計文件中單詞,並輸出到指定文件
—根據題目要求讀入文件
— 查詢文件中單詞出現的次數
—文本中的詞頻數降序顯示前K個單詞以及柱狀圖
擴展功能:
目前沒有java
Figure.java :統計前K個出現的頻次最高的單詞及詞頻的柱狀圖
StatisticalWord.java: 輸入一個單詞統計單詞在文章中出現的個數,若是不在提示不在!
WordList.java :統計文件中單詞出現的頻數並輸出到文件
這三個類和一個Main()函數,用戶能夠根據不一樣功能進行選擇git
System.out.println("請輸入要查看的最高詞頻的個數:");
int k = sc.nextInt();
if(k>0&&k<=ordlist.size())
{
System.out.println("----------詞頻最高的前"+k+"個單詞及其柱狀圖-----------");github
for (Map.Entry<String, Integer> entry : ordlist) { System.out.printf("單詞 "+"%-8s" + "出現" +"%-3d"+"次 ",entry.getKey(),entry.getValue()); //用符號個數來顯示模擬柱狀圖 for(int i=entry.getValue();i>0;i--) { System.out.print("▏"); } System.out.println(); //System.out.println(entry.getKey() + ":" + entry.getValue()); if(--k==0) break;//k=0,則再也不輸出後面的詞頻 } System.out.println("------------------------------------------------"); }else{ System.out.println("輸入有誤!請從新輸入!"); }
try { FileWriter fw= new FileWriter("src\\results.txt"); System.out.println("詞頻統計結果已輸出列 result.txt文件·"); } catch (IOException e) { e.printStackTrace(); }
Comparator<Map.Entry<String, Integer>> valcom = new Comparator<Map.Entry<String,Integer>>() { public int compare(Map.Entry<String, Integer> rst1,Map.Entry<String, Integer> rst2) { int sortrst=rst2.getValue()-rst1.getValue(); return sortrst; } }; List<Map.Entry<String, Integer>> ordlist = new ArrayList<Map.Entry<String,Integer>>(map.entrySet()); Collections.sort(ordlist,valcom);
經過此次的項目發現,以前學過的JAVA忘的一乾二淨,原本就基礎很差,學到的一點也忘了,因此此次代碼編寫花費了不少時間,須要經過網上和課本以及同窗的幫助下大概的完成了項目,但仍是有不少問題,須要我花更多的時間學習。
psp | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
---|---|---|---|
Planning | 計劃 | 15 | 10 |
Estimate | 估計這個任務須要多少時間,並規劃大體的工做步驟 | 5 | 10 |
Development | 開發 | 120 | 150 |
Analysis | 需求分析(包括學習新技術) | 30 | 60 |
Design Spec | 生成設計文檔 | 30 | 20 |
Design Review | 設計複審(和同窗審覈設計文檔) | 15 | 10 |
Coding Standard | 代碼規範化(爲目前的開發制定合適的規範) | 20 | 30 |
Design | 具體設計 | 120 | 180 |
Coding | 具體編碼 | 180 | 220 |
Code Review | 代碼複審 | 30 | 20 |
Test | 測試(自我測試,修改代碼,提交修改) | 20 | 15 |
Reporting | 報告 | 50 | 35 |
Test Report | 測試報告 | 20 | 15 |
Size Measurement | 計算工做量 | 10 | 10 |
Postmortem &Process Improvement plan | 過後總結,並提出過程改進計劃 | 15 | 10 |
GitHub函數