wc.exe 是一個常見的工具,它能統計文本文件的字符數、單詞數和行數。這個項目實現了一個命令行程序,模仿已有wc.exe 的功能,實力所限只完成了基礎功能,給出某程序設計語言源文件的字符數、單詞數和行數。
基本功能列表:
- wc.exe -c file.c //返回文件 file.c 的字符數
- wc.exe -w file.c //返回文件 file.c 的詞的數目
- wc.exe -l file.c //返回文件 file.c 的行數
PSP2.1表格
| PSP2.1 |
Personal Software Process Stages |
預估耗時(分鍾) |
實際耗時(分鍾) |
| Planning |
計划 |
10 |
15 |
| Estimate |
估計這個任務需要多少時間 |
10 |
10 |
| Development |
開發 |
355 |
520 |
| Analysis |
需求分析 (包括學習新技術) |
200 |
300 |
| Design Spec |
生成設計文檔 |
10 |
15 |
| Design Review |
設計復審 (和同事審核設計文檔) |
10 |
20 |
| Coding Standard |
代碼規范 (為目前的開發制定合適的規范) |
10 |
10 |
| Design |
具體設計 |
20 |
30 |
| Coding |
具體編碼 |
60 |
90 |
| Code Review |
代碼復審 |
15 |
10 |
| Test |
測試(自我測試,修改代碼,提交修改) |
30 |
25 |
| Reporting |
報告 |
20 |
20 |
| Test Report |
測試報告 |
10 |
10 |
| Size Measurement |
計算工作量 |
10 |
10 |
| Postmortem&Process Improvement Plan |
事后總結, 並提出過程改進計划 |
30 |
45 |
| 合計 |
|
445 |
610 |
拿到題目的時候很懵,對編程語言都不是熟悉,Java的話面向對象的特性使得他便於操作,所以最后選擇了用Java來寫,但是Java的API我又不熟悉,所以大部分的時候都是在嘗試各個API的用法,好多要注意的點都是慢慢摸索出來的。
思路:使用input得到目標文件的路徑,若輸入錯誤路徑則拋出錯誤,然后再傳進FileReader類里面,用BufferedReader創建一個對象,定義一個string存放.readline,把文件的內容逐行放進去一個字符串里面,再對該字符串逐個字符檢查,遇到空格就詞數+1,每使用一次readline就行數+1,每行的字符數就是String.length - 字符數 + 1,如圖:

實驗截圖:

test1:empty


test2:a char


test3:a word


test4:a sentence


test5:a java source


總結:這次工程讓我學到了很多東西:對於Java的熟悉程度,軟件工程開發的流程,這是我第一次系統的做出一個工程,期間碰到好多問題,一開始引用readline每一行第一個字符都會消失,找了好久才知道每次read過后指針都會指向下一個(就是第二個)字符,所以才讀不出來第一個字符,經過這次練習之后,我對軟件開發的流程有了個初步的認識,以后一定要做好准備工作再動手,不然過程中就會手忙腳亂。
