第二週做業 wordcount

Github地址

https://github.com/iwannastay/WJJgotoWChtml

PSP2.1表格

PSP2.1 PSP 階段 預估耗時 (分鐘) 實際耗時 (分鐘)
Planning 計劃 60 90
· Estimate · 估計這個任務須要多少時間 300 600
Development 開發  300  600
· Analysis · 需求分析 (包括學習新技術) 60 60
· Design Spec · 生成設計文檔 50 30
· Design Review · 設計複審 (和同事審覈設計文檔) 30 0
· Coding Standard · 代碼規範 (爲目前的開發制定合適的規範) 40 600
· Design · 具體設計 60 60
· Coding · 具體編碼 240 360
· Code Review · 代碼複審 60 120
· Test · 測試(自我測試,修改代碼,提交修改) 40 120
Reporting 報告 30 30
· Test Report · 測試報告 10 5
· Size Measurement · 計算工做量 10 10
· Postmortem & Process Improvement Plan · 過後總結, 並提出過程改進計劃 20 20
  合計 480 600

解題思路

分函數實現功能,對文件進行數次掃描得出結果,根據功能的選擇合理劃分掃描次數,以提升程序運行效率。git

但因爲該程序的功能比較駁雜,軟件的總體架構與運行效率只能取中間值。github

基礎功能需遍歷一次數組,在此不作贅述。數組

擴展功能單獨作成函數,利用庫函數高效處理。架構

將單文件處理封裝成一個函數,便於多文件遞歸處理。函數

高級功能使用輔助界面程序配置參數,二者相互調用。學習

查閱資料:測試

https://wenku.baidu.com/view/7cb4e4096fdb6f1aff00bed5b9f3f90f76c64df0.html編碼

http://www.javashuo.com/article/p-zeszopsl-dk.html設計

程序設計實現過程

  • 解析參數

    writefunctions

  • 針對錯誤設計函數

    cout<<ErrorType<<endl;

  • 針對文件讀寫設計函數

    LoadFile,Outputresult

  • 針對複雜功能設計函數

    ScanFile GetStopWords JudgeWords LineAnalysis

  • 多文件遞歸調用

    SingleFile MultiFiles

代碼說明

/**
 	* 讀取輸入參數並記錄預期功能
 	*/

	bool WriteFunction(fstream& _stream, int n, char** argv)


	/**
     * 導入審查文件
     */
    bool LoadFile(fstream& _File, char* _file)
    
    /**
     * 對文件作基礎掃描
     */
   void  ScanFile(char* _File)
    
    /**
     * 獲取停用詞表
     */
    bool GetStopWords()


    /**
     * 提取停用詞,從總次數中減去。
     */
     void  JudgeWords() 
        
    /**
     * 分析代碼行/空行/註釋行數
     */
    void LineAnalysis(fstream& _stream)s)
    
    /**
     *對基礎功能作簡單的運算處理獲得正確結果
     */
    void  Calculate()
    
    /**
     * 輔助writefunctions分析參數含義
     */
   bool GetSample()
    
    /**
     *根據功能需求將結果輸出到文件中
     */
    void OutputResult(fstream& _stream)
    
    /**
     * 將上述功能封裝對單一文件處理的功能函數,並應運用到多文件處理的總函數中
     */
    bool SingleFile(char* _File, fstream& in_stream, fstream& out_stream)
   void MultiFiles(const char * _dir, const char * file, fstream& in_stream, fstream& out_stream)

測試設計過程

1.逐一增長參數,測試工能完整性,保證測試路徑全覆蓋。

2.選擇文件的極端輸入狀況,保證程序正確性。

3.反覆使用圖形界面程序,確保任何操做都不會出現bug。

用例略,讀者可按照上述思路本身編寫。

 

參考文獻連接

http://www.cnblogs.com/ningjing-zhiyuan/p/8563562.html

相關文章
相關標籤/搜索