PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 75 |
· Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 60 | 75 |
Development | 开发 | 700 | 960 |
· Analysis | 需求分析 (包括学习新技术) | 100 | 120 |
· Design Spec | 生成设计文档 | 60 | 65 |
· Design Review | 设计复审 | 30 | 45 |
· Coding Standard | 代码规范 | 30 | 60 |
· Design | 具体设计 | 60 | 100 |
· Coding | 具体编码 | 300 | 420 |
· Code Review | 代码复审 | 60 | 80 |
· Test | 测试(自我测试,修改代码,提交修改) | 60 | 70 |
Reporting | 报告 | 100 | 140 |
· | 测试报告 | 45 | 60 |
· | 计算工作量 | 25 | 30 |
· | 并提出过程改进计划 | 30 | 50 |
WordCount.exe
后,正确的参数的长度只有4和6两种,指令只有“-n/-m/-i/-o”四种且都为“-n/-m”开头,出于实现便利的考虑,设置为“-n/-m”不同时出现,"-o"则自主决定是否跟在参数尾,分析过后这样对于参数的判断就比较简单了。Main
类与FileDeal
两个类,Main
类主要涉及一部分参数的筛选,并决定执行调用FileDeal
类的什么方法。FileDeal
类中包含了FileDeal()
构造方法,用于一部分参数的设定;FileNotExist()
向前端界面输出报错信息;getConnection()
建立与文件的连接;getChars()
获取字符总数;getLines()
获取行数;getWords()
获取单词数;getWordsSort()
统计单词出现次数并排序;getGroups()
统计词组出现次数并排序;wordstoString()
输出单词统计结果,并写入文件;groupstoString()
输出词组统计结果,并写入文件。doGet()
方法,也包含了一部分筛选参数的语句,根据不同筛选结果将表单参数传递至后台交由Servlet的相应函数进行处理,。getConnection()
方法实现与文件建立连接getWordsSort()
方法通过映射(Map)与比较器实现对文件中单词的统计及排序,结果返回一个包含键值对的数组infoIds
。wordstoString()
方法获取上一步获得的infoIds
数组,按照格式将结果输出反馈至前台,并根据是否给定“-o”参数决定是否将统计结果输出到文件中。getGroups()
处理词组的方法与其他的方法等基本与处理单词的类似,此处不再贴代码及阐述。运行index.jsp时的输入界面
含无法识别指令(-r为例):-m 10 -r d:\1.txt
与-n 10 -r d:\1.txt
无可识别指令参数(-n/-m):10 3 d:\1.txt
参数不完整(-o后缺失):-n 10 -i d:\1.txt -o
与-m 3 -i d:\1.txt -o
参数数值小于0:-n -2 -i d:\1.txt
与-m -3 -i d:\1.txt
指定文件不存在:-n 10 -i d:\d.txt
一次传入多个指令(-n/-m):-n 10 -m 3 -i d:\1.txt -o d:\output.txt
正确参数:-n 10 -i d:\1.txt
与-m 3 -i d:\1.txt
与-n 10 -i d:\1.txt -o d:\output.txt
与-m 3 -i d:\1.txt -o d:\output.txt
。(注:由于单词判断条件为前四个为字母,所以当选定词组长度为1时,输出的结果与单词统计结果不一致)
文件数据测试
英文文件
纯中文文件
空白文件
参数为-n 10 -i d:\1.txt -o d:\output.txt
,正常执行并输出到文件时。
参数为-m 3 -i d:\1.txt -o d:\output.txt
,正常执行并输出到文件时。
参数为10 3 d:\1.txt
,错误参数不通过时。
原文:https://www.cnblogs.com/Fogram-c/p/9749501.html