201673020127 词频统计软件项目报告
需求分析
从给定文本中得出单词频数的统计数据。
功能设计
首要功能是统计指定文本中的词频,保证其健壮性。在此基础上还需实现显示对指定单词的统计结果,显示指定数目高频单词的统计结果以及将统计结果输出至结果文件等功能。
设计实现
主程序使用无限循环以命令行方式进行交互。根据文字信息,可选择需统计的文本,选定文本后,程序即对文本进行了词频统计,统计结果存放在键值类型为“<String, Integer>”的映射中。之后,可选择具体操作。具体操作有显示对指定单词的统计(W),显示指定数目高频单词的统计结果(C)以及把统计结果输出为“result.txt”文件的功能(E)。
- “W”操作先查找映射中对应数据,根据数据计算需打印的符号数,符号数按单词词频与词频总数比缩小限制在50个以内,随后打印成柱状图。
- “C”操作因用户往往查询的数量较单词总量少而使用选择排序。
- “E”操作则先排序映射的关键字集,再照顺序输出至目标文件。
另有一定的防止不合法输入的设计提高程序的健壮性。
测试运行
使用《老人与海》作为测试用例。
总结
在设计过程中因编程习惯未能很好地做到模块化设计,在以后的设计中应把不同功能的代码加以区分。
PSP
PSP各个阶段 | 计划时间(min) | 实际时间(min) |
---|---|---|
计划 | 5 | 10 |
开发 | 35 | 35 |
需求分析 | 5 | 5 |
生成设计文档 | 0 | 0 |
设计复审 | 0 | 0 |
代码规范 | 0 | 0 |
具体设计 | 5 | 5 |
具体编码 | 20 | 20 |
代码复审 | 5 | 5 |
测试 | 5 | 5 |
报告 | 10 | 10 |
测试报告 | 0 | 0 |
计算工作量 | 5 | 5 |
事后总结,并提出改进计划 | 5 | 5 |
总共花费的时间 | 50 | 55 |
GitHub |