實驗目的與要求html
(1)掌握軟件項目我的開發流程。java
(2)掌握Github上發佈軟件項目的操做方法。git
源碼在Github的倉庫主頁連接地址:https://github.com/1996muzili/-github
一.需求分析:函數
1.程序須要讀入至少一個詞,可讀入任意英文文本。post
2.至少能夠統計10萬詞及以上的文本。學習
3.用戶能夠同時查詢多個單詞的統計,並顯示出其個數和柱狀圖。測試
4.用戶能夠篩選單詞頻數大於n的單詞,進行降序顯示其單詞及其頻數。編碼
5.統計文本因此單詞及其詞頻,並在文本文件中按字典序進行顯示。url
二.功能設計:
1.基本功能:對輸入的大於等於一個單詞的英文,
實現其一個或多個單詞的單詞和詞頻統計並以柱狀圖的形式顯示出來,
能夠對多個單詞進行條件查詢並對其按降序或字典序進行顯示。
2.擴展功能:對輸入的英文文本,篩選出包含某個單詞的句子。
(在英語單詞的學習過程當中,最好是結合真題去學習。那麼就能夠把歷年真題進行掃描錄入,而後篩選包含某個單詞的句子。)
三.設計實現:
1.包含主函數main的主類:Driver.java:該類用於菜單欄的顯示,讀入要統計單詞的文本文件和對單詞進行排序;
2.定義功能的抽象類Functions.java: 該類用於定義功能,具體的實如今Function類,體現面向對象中的多態思想;
3.功能的實現類Function.java:該類用於柱狀圖的顯示,前k個高頻單詞詞頻的顯示,將單詞及詞頻數按字典順序輸出到result.txt文件中。
四.程序設計流程圖
五.測試運行:
六.代碼片斷精選:
七.總結
這個項目對於我來講真的是花了很大的力氣,由於以前不是本專業的,也讓我認識到軟件開發的艱辛。從項目佈置的那天起,我就開始查閱各類資料,向室友不斷的請教,從需求分析,到功能設計,再到代碼實現真的是困難重重,經過此次項目,鍛鍊了個人實踐能力,同時也牢記了作一件事必定不能粗心,否則就會出現不少bug!也認識到本身不少的不足,本身必定要在課餘時間去好好「惡補」java語言。
八.展現PSP:
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
Planning | 計劃 | 30 | 35 |
Estimate | 估計這個任務須要多少時間,並規劃大體工做步驟 | 30 | 20 |
Development | 開發 | 160 | 270 |
Analysis | 需求分析(包括學習新技術) | 120 | 180 |
Design Spec | 生成設計文檔 | 30 | 30 |
Design Review | 設計複審(和同事審覈設計文檔) | 20 | 15 |
Coing Standard | 代碼規範(爲目前開發制定合適的規範) | 30 | 30 |
Design | 具體設計 | 30 | 30 |
Coding | 具體編碼 | 720 | 900 |
Code Review | 代碼複審 |
30 | 30 |
Test | 測試(自我測試,修改代碼,提交修改) | 30 | 30 |
Reporting | 報告 | 15 | 30 |
Test Report | 測試報告 | 30 | 35 |
Size Measurement | 計算工做量 |
10 | 15 |
Postmortem&Process Improvement Plan | 過後總結,並提出過程改進計劃 | 30 | 30 |