1. 程式人生 > >第一次作業:統計檔案字串字元行的個數

第一次作業:統計檔案字串字元行的個數

碼雲:https://gitee.com/SC_looker/wordcount.git

 先明確任務內容,分為以下幾點:

(1)分析、整理需求,提交PSP表格;

(2)編碼實現,並在Github提交;

(3)設計測試用例,編寫單元測試;

(4)撰寫部落格。

需求分析:

要求:統計文字檔案的字元數、單詞數、和行數。

輸入格式說明:

   wc.exe -c file.txt //返回檔案 file.txt 的字元數

   wc.exe -w file.txt //返回檔案 file.txt 的詞的數目

   wc.exe -l file.txt //返回檔案 file.txt 的行數輸出格式說明:

   儲存在outfile.txt中

   file1.txt, 字元數: 50

   file1.txt, 單詞數: 30

解題思路:

剛看到題目時,我打算寫三個類,每個類分別統計數量,然後傳到主函式,由主函式進行存取。

基本功能

  1. 支援 -c  統計字元數(char_count)
  2. 支援 -w  統計單詞數(string_count)
  3. 支援 -l  統計總行數(line_count)
  4. 支援  -o       存入特定檔案

拓展功能(待實現)

  1. 支援 -a 返回高階選項(程式碼行 空行 註釋行)
  2. 支援 -s 遞迴處理符合條件的檔案

基本功能模組:

一、實現字元數統計類

通過傳參的方式將檔名以 (string filename)的方式傳入類成員函式,利用fstream把檔案以流的形式輸出,把流輸出到字元型別然後進行統計。

二、實現單詞數統計類

通過傳參的方式將檔名以 (string filename)的方式傳入類成員函式,利用fstream把檔案以流的形式輸出,把流輸出到字串型別然後進行統計,也可用getline(流,字串變數,‘ ’)來統計,不過這種統計檔案必須以空格結束,否則所統計的數少一。

   三、實現行數統計函式

通過傳參的方式將檔名以 (string filename)的方式傳入類成員函式,利用fstream把檔案以流的形式輸出,用getline(流,字串變數,‘\n’)函式來統計,getline()以轉行符結束。

四、主函式模組:

測試檔案結果

   測試用例:

 

 檔案:

可執行檔案

 總結:

這個任務,我使用的是c++,由於c++是早些時候學習過的然後之後是沒在使用過,這次機會我重新複習一次,這個專案讓我學到了很多東西,我從不懂如何寫程式碼到一步步實現功能,這次的程式碼我是使用的絕對路徑,我實現了要求的基本功能,也清楚了qt生成的可執行檔案是與原先程式碼所分離開的,剛開始一直找不到可執行檔案,後來通過上網查詢,要在path新增路徑才能使用exe檔案,也瞭解到從命令列寫入的引數在程式碼中如何讀取。本次的專案還有很多不足的地方還需要加以改善,比如把絕對路徑改為相對路徑。可以存到指定目錄的,更多功能還待提高。

首先完成PSP表格,對自己所做的專案進行大致的規劃

PSP2.1

PSP階段

預估耗時

(小時)

實際耗時

(小時)

Planning

計劃

 2*24

 38

· Estimate

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

 2*24

 38

Development

開發

 21

 20

· Analysis

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

 3

 4

· Design Spec

· 生成設計文件

 2

 3

· Design Review

· 設計複審 (和同事稽核設計文件)

 2

 2

· Coding Standard

· 程式碼規範 (為目前的開發制定合適的規範)

 1

 1

· Design

· 具體設計

 4

 3

· Coding

· 具體編碼

 4

 4

· Code Review

· 程式碼複審

 3

 2

· Test

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

 2

 2

Reporting

報告

 7

 5

· Test Report

· 測試報告

 3

 3

· Size Measurement

· 計算工作量

 2

 1

· Postmortem & Process Improvement Plan

· 事後總結, 並提出過程改進計劃

 2

 1

合計

 28

 25