前几天有更多紧急重要的事情要做(暑研教授给的任务),一度通宵爆肝,今天才开始做这份个人作业,希望还来得急。。
需求分析:
对源文件(*.txt,*.cpp,*.h,*.cs,*.html,*.js,*.java,*.py,*.php等,文件夹内的所有文件)统计字符数、单词数、行数、词频,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
具体要求:
1. 统计文件的字符数(只需要统计Ascii码,汉字不用考虑)
2. 统计文件的单词总数
3. 统计文件的总行数(任何字符构成的行,都需要统计)
4. 统计文件中各单词的出现次数,输出频率最高的10个。
5. 对给定文件夹及其递归子文件夹下的所有文件进行统计
6. 统计两个单词(词组)在一起的频率,输出频率最高的前10个。
本任务的核心在于建立适当的哈希表与比较函数,同时使用合适的文本读写函数。前者可以用C++ STL库中的hash_map,后者可以使用ANSIC的流式文件操作。至于文件夹递归访问可以用C++ io库中包含的 _finddata_t 结构体来获取文件信息。
附上PSP计划表:
流程 | 时间/h |
需求分析 | 0.5 |
具体设计 | 1.5 |
具体编码 | 6 |
代码测试 | 2 |
性能优化 | 2 |
总结报告 | 2 |
总时间 | 14 |