WordCount
一、GitHub地址:
https://github.com/aaliku/WordCount
二、PSP表格:
PSP2.1
|
PSP阶段
|
预估耗时
(分钟)
|
实际耗时
(分钟)
|
Planning |
计划 |
10 |
5 |
· Estimate |
· 估计这个任务需要多少时间 |
5 |
5 |
Development |
开发 |
75 |
90 |
· Analysis |
· 需求分析 (包括学习新技术) |
20 |
15 |
· Design Spec |
· 生成设计文档 |
5 |
5 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
5 |
5 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
· Design |
· 具体设计 |
10 |
5 |
· Coding |
· 具体编码 |
60 |
50 |
· Code Review |
· 代码复审 |
5 |
5 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
15 |
Reporting |
报告 |
10 |
10 |
· Test Report |
· 测试报告 |
10 |
10 |
· Size Measurement |
· 计算工作量 |
5 |
5 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
10 |
10 |
|
合计 |
255 |
240 |
三.解题思路
1.开始对输入的格式感到不解,所以采用了比较蠢的方法,也导致没有办法同时完成两个命令。
2.对于java不是很熟悉,所以自己仅仅完成基本功能,高级功能借鉴了梁锦琳同学的代码。
3.用readline()读取空行,用read()来读取字符,从而实现判断该行内容。
四.程序实现
本项目由java语言构成,除了主函数,还包含多个子函数
五.关键代码
if(str1.equals("wc.exe -c file.c")) { try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 bre = new BufferedReader(new FileReader(file)); int tempbyte; while ((tempbyte = bre.read()) != -1) { n++; } bre.close(); } catch (IOException e) { e.printStackTrace(); return; } System.out.println("字符数为:"+n);
if(str1.equals("wc.exe -l file.c")) { try { System.out.println("读取行数:"); // 一次读一个字节 bre = new BufferedReader(new FileReader(file)); String tempbyte; while ((tempbyte = bre.readLine()) != null) { n++; } bre.close(); } catch (IOException e) { e.printStackTrace(); return; } System.out.println("行数为:"+n); }
六.测试设计过程
测试用例需要覆盖所有的可执行代码,并找出代码中的漏洞。
在命令行输入命令:
1.wc.exe -c A.java
结果输出字符总数
2.wcwc.exe -l A.java
结果输出总行数
3.wc.exe -a A.java
输出代码行,空行,注释行
4.wc.exe -w -l A.java
输出总行数和总单词数
5.wc.exe -o A,java
将存储到output.txt中
6.wc.exe -a -s A.java
对文件进行遍历输出代码行,空行,注释行
7.wc.exe -c -l -a -s A.java
对文件进行遍历输出代码行,空行,注释行,统计行数,字符数
8.wc.exe -c -l -a -s A.java -o output.txt
对文件进行遍历输出代码行,空行,注释行,统计行数,字符数,并存储在output中
9.wc.exe –s –a –w –c –l A.java –o output.txt
对文件进行遍历输出代码行,空行,注释行,统计行数,字符数,单词数,并存储在output中
10.wc.exe -o output.txt -s -a A.java
七.参考文献链接
http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html
http://www.cnblogs.com/carroll/p/8601338.html