个人作业
——词频统计
一、项目概况
对源文件(*.txt,*.cpp,*.h,*.cs,*.html,*.js,*.java,*.py,*.php等,文件夹内的所有文件)统计字符数、单词数、行数、词频,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速处理多个文件。
二、需求分析
(1)基本功能
a) 统计文件的字符数;
b) 统计文件的单词总数;
c) 统计文件的总行数;
d) 统计文件中各单词的出现次数,输出频率最高的10个;
e) 对给定文件夹及其递归子文件夹下的所有文件进行统计;
f) 统计两个单词(词组)在一起的频率,输出频率最高的前10个;
g) 在Linux系统下,进行性能分析,过程写到blog中(附加题)。
(2)输入与输出要求
a) 输入以命令行参数传入(文件夹的路径);
b) 在当前路径输出最终结果文件result.txt。
三、功能模块与设计
(1)遍历文件夹
使用 _finddata_t 结构体,及 _findfirst 和 _findnext 函数来查找文件并遍历子文件夹。
(2)统计文件中的字符、单词数、行数并输出
(3)统计各单词、词组出现频率
(4)对单词、词组出现频率进行排序,各找出前十个并输出
四、代码实现
五、代码质量和性能分析
六、测试设计与分析
七、总结收获
附:
PSP表格
Status |
Stages |
预估耗时/min |
实际耗时/min |
Accept |
【计划】 Planning |
60 |
80 |
Accept |
——估计时间 Estimate |
60 |
80 |
Accept |
【开发】 Development |
790 |
|
Accept |
——需求分析 Analysis |
10 |
5 |
Accept |
——设计文档 Design Spec |
40 |
40 |
Accept |
——设计复审 Design Review |
10 |
10 |
Accept |
——代码规范 Coding Standard |
10 |
5 |
Accept |
——具体设计 Design |
60 |
100 |
Accept |
——具体编码 Coding |
480 |
750 |
Accept |
——代码复审 Code Review |
60 |
40 |
Accept |
——测试 Test |
120 |
|
Accept |
【记录用时】 Record Time Spent |
20 |
|
Accept |
【测试报告】 Test Report |
60 |
|
Accept |
【算工作量】 Size Measurement |
20 |
|
Accept |
【总结改进】 Postmortem |
40 |
|
Accept |
【合计】 Summary |
990 |