做业要求:实验二 软件工程我的项目html
1.软件定义
※程序可读入任意英文文本文件,该文件中英文词数大于等于1个,统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
※指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。
※高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
2.软件设计
根据需求分析,本程序有三个功能:
•统计文件中全部单词及其词频数,且输出到指定文件
•统计指定单词在文件中出现的次数
•输出前K个高频词的个数及其柱状图
程序流程图:

编码:
•功能1:统计文件中全部单词及其词频数,且输出到指定文件
读取文件后进行词频排序

输出排序结果到result.txt文件

•功能2:统计指定单词在文件中出现的次数

•功能3:输出前K个高频词的个数及其柱状图

3.软件运行
•菜单界面

•用户执行功能1
查看result.txt文件git

•用户执行功能2
•用户执行功能3
4.总结:设计的程序如何实现软件设计模块化的原则
在本程序中,须要实现全文单词个数及其词频统计,用户输入任意单词词频统计和任意个数高频词频统计及柱状图显示等多个功能,虽然这个程序只是一个小程序,但却也包含多个功能,若是咱们将这若干个功能放在一个文件中,就会显得很臃肿,凌乱和复杂,在调试和维护时也很麻烦,最好的方式就是一个功能一个文件,将功能分散开来,用主程序,子程序等框架把软件的主要结构和流程描述出来,并定义和调试各部分模块,再经过主函数来实现对其余功能的调用,以功能块为单位进行程序设计,这样下降录了程序复杂度,使程序设计,调试等操做简单化。
5.PSP我的软件过程
PSP2.1 |
任务内容 |
计划共完成须要的时间(min) |
实际完成须要的时间(min) |
Planning |
计划 |
10 |
10 |
Estimate |
估计这个任务须要多少时间,并规划大体工做步骤 |
10 |
10 |
Development |
开发 |
200 |
220 |
Analysis |
需求分析 (包括学习新技术) |
20 |
30 |
Design Spec |
生成设计文档 |
5 |
7 |
Design Review |
设计复审 (和同事审核设计文档) |
5 |
6 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
3 |
2 |
Design |
具体设计 |
10 |
10 |
Coding |
具体编码 |
120 |
150 |
Code Review |
Code Review |
10 |
15 |
Test |
测试 |
13 |
21 |
Reporting |
报告 |
9 |
6 |
Test Report |
测试报告 |
3 |
3 |
Size Measurement |
计算工做量 |
3 |
1 |
Postmortem & Process Improvement Plan |
过后总结 ,并提出过程改进计划 |
3 |
3 |