Github地址
https://github.com/iwannastay/WJJgotoWC
PSP2.1表格
|
解题思路
分函数实现功能,对文件进行数次扫描得出结果,根据功能的选择合理划分扫描次数,以提高程序运行效率。
但由于该程序的功能比较驳杂,软件的整体架构与运行效率只能取中间值。
基础功能需遍历一次数组,在此不做赘述。
扩展功能单独做成函数,利用库函数高效处理。
将单文件处理封装成一个函数,便于多文件递归处理。
高级功能使用辅助界面程序配置参数,两者相互调用。
查阅资料:
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