1、GitHub地址:java
https://github.com/N006Unnamed/WC/tree/mastergit
2、PSP表格github
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 30 |
· Estimate | · 估計這個任務須要多少時間 | 30 | 30 |
Development | 開發 | 1500 | 1620 |
· Analysis | · 需求分析 | 100 | 100 |
· Design Spec | · 生成設計文檔 | 30 | 60 |
· Design Review | · 設計複審 | 50 | 60 |
· Coding Standard | · 代碼規範 | 30 | 30 |
· Design | · 具體設計 | 120 | 150 |
· Coding | · 具體編碼 | 800 | 820 |
· Code Review | · 代碼複審 | 30 | 30 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 120 | 90 |
Reporting | 報告 | 120 | 150 |
· Test Report | · 測試報告 | 60 | 60 |
· Size Measurement | · 計算工做量 | 30 | 30 |
· Postmortem & Process Improvement Plan | · 過後總結, 並提出過程改進計劃 | 40 | 40 |
合計 | 1530 | 1650 |
3、解題思路編程
一、主體: 數組
wc.exe 是一個常見的工具,它能統計文本文件的字符數、單詞數和行數。要想實現統計字符數、單詞數和行數就要對文本的內容進行掃描,記錄與統計出字符、單詞和行數。爲了方便編程與縮短程序的長度能夠直接調用java中自帶的函數,爲主體設定一個返回值,當用其餘程序調用主體的時候返回其結果。函數
二、可視化界面:工具
經過設計一個JFrame類建立顯示窗口以及各個功能的按鈕,爲按鈕設定一個鼠標監聽器,當鼠標點擊時便會調用相關主體中的功能並將其結果顯示在textArea中,同時爲了防止內容過多超出顯示範圍就爲textArea設置一個滾動軸,使得顯示界面更加簡潔方便。學習
三、選擇文件:開發工具
想要建立一個選擇文件的窗口就能夠直接使用java中的JFileChooser類,經過result來接收選擇的結果。若選擇的是打開文件則選擇文件後調用getSelectedFile().getPath()獲取文件的路徑,而後使用Desktop.getDesktop().open()來打開所選擇的文件,方便對程序的測試的結果進行檢驗。而若想要選擇文件夾就只須要把JFileChooser的模式換成DIRECTORIES_ONLY(只能選擇目錄)就能夠直接選擇一整個文件夾,而後對文件夾裏面的子文件進行操做。測試
四、遞歸處理的實現:
選擇完文件夾以後對其子文件一個一個進行檢測看其是否知足所須要的要求(txt文件或者.c.java文件),設置一個file[]數組對找到目標文件進行接收,後面則直接用一個循環語句將file[]數組中的文件一個一個進行操做而後將結果所有輸出到窗口。
五、測試文檔的選擇:
爲了保證程序的完整性,分別對單個文檔和文件夾進行測試,單個文檔包括空白文檔、單字符文檔、一行文檔以及自由源文檔和java源文檔,對文件夾的處理則是對這些文檔所有一塊兒進行處理,將其結果與選擇單個文檔進行處理的結果進行比較。
4、設計實現過程
5、運行測試
測試文件爲:空文檔、單字符文檔、一行文檔、自由文檔、java源代碼文件以及包含前四個文檔的文件夾
空文檔測試:
單字符文檔測試:
一行文檔測試:
自由文檔測試:
java源文檔測試:
文件夾測試:
測試圖形可視化化功能
經過對比可知程序運行結果一致!
代碼覆蓋率:
6、總結
此次項目我用java做爲開發工具,除此以外還採用了許多的插件(WindowsBuilder等)和內部的一些方法使得設計過程輕鬆很多而且代碼的長度也有必定程度縮短,可是我在設計的過程當中仍是會遇到一些難題,爲此我只能上網、詢問他人和閱讀相關書籍等方法尋找解決方法,在編程方面我仍是有所不足,日後我要更加學習編程提升本身的能力,同時還要學習其餘的編程語音(C+、Python等)讓本身更加全面!