WordCount优化

1.GitHub地址https://github.com/YJG1997/wcPro

2.PSP表格

PSP2.1表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 10 10

· Estimate

· 估计这个任务需要多少时间

 10 10

Development

开发

 20 20

· Analysis

· 需求分析 (包括学习新技术)

 20 20

· Design Spec

· 生成设计文档

 20 10

· Design Review

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

 10 0

· Coding Standard

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

15 15 

· Design

· 具体设计

 60 40

· Coding

· 具体编码

 180 180

· Code Review

· 代码复审

 60 40

· Test

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

 60 50

Reporting

报告

 30 30

· Test Report

· 测试报告

 30 40

· Size Measurement

· 计算工作量

 10 10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 30 30
 

合计

 565 505

3.描述代码设计思路

       我负责的是比较简单的输入控制部分,即对输入进行有效性校验,识别和处理无效输入,并针对有效输入,从中提取所需数据。该模块的主要任务是判断输入的文件是否为.txt文件,并且判断文件中文件中是否仅包含单词(a-z, A-Z)、常见字符、数字(0-9)、不包含其他内容。

判断.txt文件部分代码:

public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        String curPath=System.getProperty("user.dir");  
        Scanner s = new Scanner(System.in);  
        String name = s.nextLine();  
        
        s.close();
        if(name.indexOf(".txt")==-1)
        {
            System.out.println("Îļþ²»ÊÇÒÔtxt½áβ");
        }
        else {
            //String name ="test2.txt";
            File file = new File(name);
            //String targetStr="";
            FileInputStream fis=new FileInputStream(file);
            byte[] inputStream=new byte[fis.available()];
            String targetStr="";
            while(fis.read(inputStream)!=-1) 
            { 
                 targetStr=new String(inputStream,0,inputStream.length); 
            } 
            fis.close();

判断是否为单词(a-z, A-Z)、常见字符、数字(0-9)、不包含其他内容的部分代码:

while(curPosition<targetStr.length()&&!(targetStr.charAt(curPosition)>='a'&&targetStr.charAt(curPosition)<='z'||targetStr.charAt(curPosition)>='A'&&targetStr.charAt(curPosition)<='Z'||targetStr.charAt(curPosition)=='-')) 
            { 
                curPosition++; 
            }//去掉非字母
            boolean isWord=false; 
            String thisWord=""; 
            while (curPosition<targetStr.length()&&(targetStr.charAt(curPosition)>='a'&&targetStr.charAt(curPosition)<='z'||targetStr.charAt(curPosition)>='A'&&targetStr.charAt(curPosition)<='Z'||targetStr.charAt(curPosition)=='-')) 
            { 
                isWord=true; 
                thisWord+=targetStr.charAt(curPosition); 
                curPosition++; 
            } 

4.测试设计过程

      测试输入控制模块需考虑以下几个方面:

      a.判断输入的文件是否为.txt文件

      b.判断文件是否存在

      c.判断文件内容是否符合仅包含单词(a-z, A-Z)、常见字符、数字(0-9)、不包含其他内容

5.测试运行和评价

       测试通过调用模块运行结果与正确结果相比较判断是否符合需求,对此模块设计了20个测试用例,如下:

1.test.txt  系统找不到指定文件

2.test1.txt  a 3 test 2 is 1 this 1

3.test1.c  文件不是txt结尾

4.test1  文件不是txt结尾

5..txt  系统找不到指定文件

6.test1.TXT  文件不是txt结尾

7.test1txt  文件不是txt结尾

8.test2.txt  is 1 this 1  //特殊符号不计数

9.test2.docx  文件不是txt结尾

10.test2  文件不是txt结尾

11.test2.TXT  文件不是txt结尾

12.test2txt  文件不是txt结尾

13.Test2.txt  系统找不到指定文件

14.test1test2.txt  系统找不到指定文件

15.test1.txt test2.txt  系统找不到指定文件

16.test3.txt  this 2 is 2 a 2

17.test4.txt    //文件为空

18.test3.txt test4  系统找不到指定文件

19.  test1.txt  系统找不到指定文件//'test1'前有空格

20.  系统找不到指定文件 //无输入

   因为该模块整合到main函数中,测试可在cmd中操作,以下为在运行环境下的部分运行结果截图:

 

对于该模块的测试,更多的是对不符合规范的输入的测试,以及文件内容与要求不符合的测试。

转载于:https://www.cnblogs.com/JinGangYao/p/8746652.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值