一,需求分析git
1.程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。github
2.程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。函數
3.指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。測試
4.高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。編碼
5.統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。設計
二,功能設計blog
1.用戶輸入任意多個英文單詞,顯示對應單詞在文本中出現的次數和柱狀圖。排序
2.用戶從鍵盤輸入高頻詞輸出的個數k,按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。開發
3.統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。get
三,設計實現
1.設計兩個類,一個TEST類用來讀入a.txt文件,同時進行詞頻統計功能測試。另外一個MAIN類用來進行對讀入文件的各類操做。
2.在對文件的存儲方面採用了TreeMap函數,進行單詞的存儲,在函數中用到了鏈表的方式。
3.在MAIN函數類中須要有指定單詞統計功能,按單詞出現頻率,字母順序排序功能,除此以外還應該有將統計出的單詞及頻率寫入result.txt文件中功能。
四,測試運行
1.讀取已經寫好的a.txt文件,進行操做。
2.繼續功能測試,寫入result.txt中,最後退出。
3.最終寫入的result.txt文件內容。
五,主要代碼
1.功能菜單。
2.用*表明柱狀圖。
六,實驗總結
首先,以前學的Java知識點有好多都很陌生了,在剛開始着手寫代碼的時候,查閱了以前的課本。在通過基本的熟悉以後,能夠寫一些基本的東西,可是還有一部分有點難,好比按字母順序進行排序,寫入新的文件中,還有柱狀圖等,在網上進行參考,查閱,修改最終能夠基本實現詞頻統計的功能。
七,PSP展現
在上面的PSP表格中,在開發,程序編碼的過程當中所花費的時間較多,超出了預測的時間。但願之後能夠在保證質量的狀況下,提升效率。
點擊查看源代碼