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

· Design Review

· 设计复审 (和同事审核设计文档)

 5

 5

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

5

 5

· Design

· 具体设计

 10

· Coding

· 具体编码

60 

 50

· Code Review

· 代码复审

 5

 5

· Test

· 测试(自我测试,修改代码,提交修改)

 20

15 

Reporting

报告

 10

 10

· Test Report

· 测试报告

 10

 10

· Size Measurement

· 计算工作量

 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

 

posted @ 2018-03-23 21:29  董钟骏  阅读(186)  评论(1编辑  收藏  举报