wordCount程序与测试
Github地址:
https://github.com/mostannno/wordCount/tree/master/wordCount
PSP表格:
PSP |
PSP阶段 |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
60 |
40 |
Estimate |
估计这个任务需要多少时间 |
600 |
780 |
Development |
开发 |
300 |
240 |
Analysis |
需求分析(包括学习新技术) |
120 |
150 |
Design Spec |
生成设计文档 |
30 |
40 |
Design Review |
设计复审(和同事审核文档) |
10 |
10 |
Coding Standard |
代码规范(为目前的开发制定合适的规范) |
20 |
20 |
Design |
具体设计 |
30 |
50 |
Coding |
具体编码 |
300 |
420 |
Code Review |
代码复审 |
30 |
40 |
Test |
测试 |
60 |
40 |
Reporting |
报告 |
30 |
30 |
Test Report |
测试报告 |
30 |
20 |
Size Measurement |
计算工作量 |
15 |
15 |
Postmortem & Process Improvement Plan |
事后总结,并提供过程改进计划 |
15 |
15 |
|
合计 |
1020 |
1100 |
解题思路:
逐行读取文件代码,通过正则表达式对每一行进行处理最后相加即可。
拓展功能逐个文件进行处理,方式同样为利用正则匹配,识别不同的命令进行不同的操作。
代码说明:
private void analysis(){
if(!isAnalysis){
isAnalysis=true;
String s;
BufferedReader in = null;
try {
n =new BufferedReader(new FileReader(path.toString()));
while((s=in.readLine())!=null){
switch(analysisLine(s)){
case SPACE:spaceSum++;break;
case CODE:codeSum++;break;
case NOTE:noteSum++;break;
}
charNum+=s.replaceAll("\\s", "").length();
wordNum+=s.split("\\W+").length;
lineSum++;
}
} catch (IOException e) {
System.out.println("文件不存在"+path());
}finally{
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
此处使用了梁锦琳同学的分析代码[1]
测试设计过程:
在wc.exe的目录下放置测试文件,分别输入以下命令:
1:-c
输入:wc.exe -c file.c
2:-w
输入:wc.exe -w file.c
3:-l
输入:wc.exe -l file.c
4:-a
输入:wc.exe -a file.c
5: -o
输入:wc.exe -c file.c -o outputFile.txt
6: -e
输入:wct.exe -c file.c -e stop.txt
7:多参数
输入:wc.exe -c -w -l -a file.c -e stop.txt -o outputFile.txt
8: -s
输入:wc.exe -s -c -w -l *.c
9:错误参数
输入:wc.exe -c -c -b file.c
10:文件为空
输入:wc.exe -c -w -o outputFile.txt/WCtest.exe -c -w file.c -o
参考文献链接:
[1]http://www.cnblogs.com/carroll/p/8601338.html
http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html