程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。html
程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。java
指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。git
高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。github
統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。編程
讀取功能:能夠讀取並存儲任意英文文本。模塊化
單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。函數
高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。學習
輸出功能:統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。測試
擴展功能: 無編碼
程序包含兩個類,分別是主函數類MAIN類和存儲類SAVE類
MAIN類:
public static void main主函數、
public static void select菜單界面函數、
public static void out輸出函數、
public static void sort排序函數、
public static void highsta高頻詞輸出函數等等
界面以及高頻詞
指定高頻詞次數及柱狀圖
保存至result.txt文件
按字典保存的單詞
public static void sc(String e,int max) { double num=0; int bz=0; if(e.length()!=0) { for(SAVE s : sum1) { if(s.getWord().equals(e)) { System.out.printf("%-12s-%,5d|",e,s.getNumber()); num=(double)(s.getNumber())/max*80; for(int i=0;i<num;i++) System.out.print("★"); System.out.println(); bz=1; } } if(bz==0)System.out.printf("%-12s-%,5d|數據未找到\n",e,0); } }
public static void highsta() { System.out.println("請輸入要查看的單詞數"); Scanner sc=new Scanner(System.in); int x=sc.nextInt(); for(SAVE s : sum1) { System.out.println(s.getWord()+":"+s.getNumber()); x--; if(x==0)break; } }
首先在作完需求分析等部分的內容開始編程時就出現了不少困難,首先是java編程的不熟悉,在編程的過程當中花了不少時間至關於從新學習了java的簡單實現,其次是本次實驗模塊化的劃分,有一個主函數main函數統領全局,其下有菜單界面顯示的函數、對文本排序的函數、統計單詞次數的函數、輸出字典到文件result的函數等等。每一個函數在main函數下被調用。
PSP | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
---|---|---|---|
Planning | 計劃 | 15 | 20 |
Development | 開發 | 180 | 200 |
Analysis | 需求分析(包括學習新技術) | 15 | 20 |
Design Spec | 生成設計文檔 | 5 | 5 |
Design Review | 設計複審 | 5 | 5 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 20 | 10 |
Design | 具體設計 | 30 | 45 |
Coding | 具體編碼 | 120 | 150 |
Code Review | 代碼複審 | 10 | 15 |
Test | 測試(自我測試,修改代碼,提交修改) | 5 | 5 |
Reporting | 報告 | 5 | 5 |
Test Report | 測試報告 | 5 | 5 |
Size Measurement | 計算工做量 | 0 | 0 |
Postmortem & Process Improvement Plan | 過後總結,並提出過程改進計劃 | 10 | 20 |