201671010415+詞頻統計軟件項目報告
任務一:
源碼在Github的倉庫主頁連鏈接地址:https://github.com/jinshengfang123/jsf
一、需求分析:
在信息技術普及的現代教學中,有很多有關英語學習的軟件,但是對於一篇文章進行詞頻統計的軟件還是比較少的。為了方便老師和學生在上課時能夠快速統計出一片文章中出現的單詞的頻率,能讓老師和學生更明確地了解學習的任務,也能讓課堂氣氛更加活躍,特此寫了這段程序。
2:該程序的功能有如下幾點:
二、基本功能:
1.程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。
2.程序需要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。
3.指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。
4.高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。
三、設計實現
類:class ByvalueComparator
方法:用到了比較的方法和構造方法
四、測試運行
五、代碼展示
StringTokenizer st = new StringTokenizer(file," ,.!?\"‘"); //用於切分字符串
TreeMap hm = new TreeMap<>();
while(st.hasMoreTokens()) {
String word = st.nextToken();
int value = ((Integer)hm.get(word)).intValue();
value++;
hm.put(word, new Integer(value));
}
else {
hm.put(word, new Integer(1));
}
}
TreeMap tm = new TreeMap(hm);
ByValueComparator bvc = new ByValueComparator(tm);
List<String> ll = new ArrayList<String>(tm.keySet());
Collections.sort(ll, bvc);
for(String str:ll){
System.out.println(str+"——"+tm.get(str));
}
}
}
六、總 結
在整個作業的完成過程中,也是很不容易的,請教了很多同學和老師後才算完成。在寫程序的過程中,是將程序分成好幾個模塊進行的。通過這次實驗真心體會到了自己代碼的功底,如果說沒有同學和老師的幫忙,估計這次作業很難獨立完成。在以後的學習中得加強程序的練習。
七、展示PSP
PSP2.1 | 任務內容 | 計劃共完成需要的時間(min) | 實際完成需要的時間(min) |
Planning | 計劃 | 7 | 6 |
Estimate |
估計這個任務需要多少時間, 並規劃大致工作步驟 |
4 | 3 |
Development | 開發 | 22 | 17 |
Analysis | 需求分析 (包括學習新技術) | 6 | 7 |
Design Spec | 生成設計文檔 | 4 | 2 |
Design Review | 設計復審 (和同事審核設計文檔) | 5 | 3 |
Coding Standard | 代碼規範 (為目前的開發制定合適的規範) | 3 | 3 |
Design | 具體設計 | 7 | 10 |
Coding | 具體編碼 | 20 | 16 |
Code Review | 設計復審 (和同事審核設計文檔) | 7 | 9 |
Test | 自我測試,修改代碼,提交修改 | 5 | 4 |
Reporting | 報告 | 9 | 6 |
Test Report | 測試報告 | 3 | 2 |
Size Measurement | 計算工作量 | 2 | 1 |
Postmortem & Process Improvement Plan | 事後總結 ,並提出過程改進計劃 | 3 | 3 |
八:心得體會
這是自己第一次獨立完成一個小項目,以前總是覺得自己的編程能力不是太好,但也沒怎麽在意,通過這次實驗,徹底認識到了自己的能力不足,在以後的學習中必須提高編程能力,大量地閱讀代碼和寫代碼,盡快掌握 基本的編程語言。
201671010415+詞頻統計軟件項目報告