第二周做业 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

相关文章
相关标签/搜索