第二周作业 wordcount

Github地址

https://github.com/iwannastay/WJJgotoWC

PSP2.1表格

PSP2.1PSP 阶段预估耗时 (分钟)实际耗时 (分钟)
Planning计划6090
· Estimate· 估计这个任务需要多少时间300600
Development开发 300 600
· Analysis· 需求分析 (包括学习新技术)6060
· Design Spec· 生成设计文档5030
· Design Review· 设计复审 (和同事审核设计文档)300
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)40600
· Design· 具体设计6060
· Coding· 具体编码240360
· Code Review· 代码复审60120
· Test· 测试(自我测试,修改代码,提交修改)40120
Reporting报告3030
· Test Report· 测试报告105
· Size Measurement· 计算工作量1010
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划2020
 合计480600

解题思路

分函数实现功能,对文件进行数次扫描得出结果,根据功能的选择合理划分扫描次数,以提高程序运行效率。

但由于该程序的功能比较驳杂,软件的整体架构与运行效率只能取中间值。

基础功能需遍历一次数组,在此不做赘述。

扩展功能单独做成函数,利用库函数高效处理。

将单文件处理封装成一个函数,便于多文件递归处理。

高级功能使用辅助界面程序配置参数,两者相互调用。

查阅资料:

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

https://www.cnblogs.com/collectionne/p/6815924.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

 

转载于:https://www.cnblogs.com/iwannastay/p/8598207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值