利用Java實現一個源程序文件的代碼統計工具


WC個人項目

 

github項目傳送門:https://github.com/liangjingdev/wc

 

一、項目相關要求

wc.exe 是一個常見的工具,它能統計文本文件的字符數、單詞數和行數。這個項目要求寫一個命令行程序,模仿已有wc.exe 的功能,並加以擴充,給出某程序設計語言源文件的字符數、單詞數和行數。

現在需要實現一個源程序文件的代碼統計程序,它能正確統計源程序文件中的字符數、單詞數、行數,以及還具備其他擴展功能,並能夠快速地處理多個文件。

具體功能要求:

1、程序處理用戶需求的模式為:

直接通過用戶在圖形界面上的相關操作來讀取用戶的需求。

2、基本功能列表:

  • 返回單個源程序文件/多個源程序文件/文件夾中所有的源程序文件的字符數
  • 返回單個源程序文件/多個源程序文件/文件夾中所有的源程序文件的詞數
  • 返回單個源程序文件/多個源程序文件/文件夾中所有的源程序文件的行數

3、擴展功能:

  • 返回單個源程序文件/多個源程序文件/文件夾中所有的源程序文件的有效代碼行的數目
  • 返回單個源程序文件/多個源程序文件/文件夾中所有的源程序文件的空行的數目
  • 返回單個源程序文件/多個源程序文件/文件夾中所有的源程序文件的注釋行的數目

二、項目開發過程中遇到的困難及解決方法

# 實現圖形界面的困難:

由於並沒有很經常接觸到Java的GUI編程,所以不太熟悉相關的控件編寫以及窗口布局。

# 做過的嘗試:

借助MyEclipse編譯器中的WindowBuilder Editor插件完成了該程序的圖形界面。

# 解決:

最后,實現了基礎功能以及拓展功能。

# 有所收獲:

冰凍三尺,非一日之寒,路漫漫其修遠兮,吾將上下而求索。

三、PSP開發耗時

                                                                                                                                                                                         PSP2.1

PSP2.1

Personal Software Process Stages

預估耗時(分鍾)

實際耗時(分鍾)

Planning

計划

 30  40

· Estimate

· 估計這個任務需要多少時間

 50  60

Development

開發

 800 600

· Analysis

· 需求分析 (包括學習新技術)

 100  120

· Design Spec

· 生成設計文檔

 40  30

· Design Review

· 設計復審 (和同事審核設計文檔)

 30 30

· Coding Standard

· 代碼規范 (為目前的開發制定合適的規范)

 30  30

· Design

· 具體設計

 80  60

· Coding

· 具體編碼

 200  180

· Code Review

· 代碼復審

 40  30

· Test

· 測試(自我測試,修改代碼,提交修改)

 60  40

Reporting

報告

 120  80

· Test Report

· 測試報告

 20  20

· Size Measurement

· 計算工作量

 10  10

· Postmortem & Process Improvement Plan

· 事后總結, 並提出過程改進計划

 30  20

合計

  1640 1350

 

四、程序代碼結構

 

1、entity包中的CodeFileInfo類是源程序文件的實體類。

2、filter包中的SourceFilenameFilter過濾器類的作用是篩選出文件夾內的源程序文件(目前實現了篩選以.c以及.java為后綴的源程序文件)。

3、function包中的Function接口是基本功能及拓展功能的抽象接口,BaseFunction類和ExtendFunction類是具體的實現類,是功能實現的關鍵類。

4、handle包中的CalculateHandler類是一個控制類,主要是根據用戶的需求(計算單個源程序文件/多個源程序文件/文件夾中的所有源程序文件)去調用對應的計算邏輯進行計算。

5、WcMain類是程序功能的主入口(圖形界面)。

五、程序功能截圖

1、程序圖形界面

2、基本功能及拓展功能

  • 計算單個源程序文件

  • 計算多個源程序文件

  • 計算文件夾中的所有源程序文件

六、項目總結

通過本項目的實踐,熟悉了開發軟件的相關工作流程(分析項目需求、設計項目流程、實現項目功能、進行單元測試、程序功能運行測試、項目總結)。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM