https://github.com/iwannastay/WJJgotoWChtml
|
分函数实现功能,对文件进行数次扫描得出结果,根据功能的选择合理划分扫描次数,以提升程序运行效率。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。
用例略,读者可按照上述思路本身编写。