WordCount编码测试

Github项目地址:https://github.com/LantyrLYL/WordCount

PSP表格:

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 10

 5

· Estimate

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

 10

 5

Development

开发

925

955

· Analysis

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

 60

 60

· Design Spec

· 生成设计文档

10 

 20

· Design Review

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

 10

 10

· Coding Standard

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

 0

 0

· Design

· 具体设计

 30

 30

· Coding

· 具体编码

 480

 480

· Code Review

· 代码复审

 60

 60

· Test

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

 60

 90

Reporting

报告

 120

 120

· Test Report

· 测试报告

 90

 90

· Size Measurement

· 计算工作量

 5

 5

· Postmortem & Process Improvement Plan

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

 20

 20

 

 

 

解题思路:

  看了需求说明,首先想到的是好像是C语言课程中有教到的从如何统计输入字符数和输入我单词数,还有就是将结果以某种文件形式输出的指定的位置。主要是if条件语句和++自增语句来实现,最后打印出来并输出。

 

程序设计实现过程:

 一个wc,其中包含3种函数。

 main函数首先判断使用了需求中的哪种参数,并做输入判断正确与否。

 getAllFilePath 函数是获取所有要进行读取判断的文件

 wordcount 函数是对C文件中的内容按照需求进行分析,实现显示字符数、单词数、总行数等功能。

 

代码说明:

代码借鉴周志为同学的

for( i=0;i<chars.length;i++) {//统计每行字符数并加到字符总数里

                numChar++;

            }

            numChar++;//加上每一行的换行

            String[] tmp= str.split(" |,");

            for(i=0;i<tmp.length;i++){

                if(tmp[i].length()!=0){

                    if(extraList.size()!=0){//假如使用了停用词表

                        flagex=0;

                        for(j=0;j<extraList.size();j++) {

                            if (tmp[i].equals(extraList.get(j))) {

                                flagex = 1;

                                break;

                            }

                        }

                        if(flagex!=1) {//只统计不在停用词表里的单词

                            numWord++;

                        }

                    }

                    else{

                        numWord++;

                    }

                }

            }

 

            if(chars.length>1) {//判断注释行

                if(chars[0]=='/'&&chars[1]=='/'){//“//”开头注释行

                    numLineAnn++;

                }

                else if(chars[0]=='/'&&chars[1]=='*'){//“/*”开头注释行

                    numLineAnn++;

                    flagann=1;

                }

                else if(chars.length>2) {

                    if ((chars[0] == '{' || chars[0] == '}')) {//“{//”开头注释行

                        if (chars[1] == '/' && chars[2] == '/'){

                            numLineAnn++;

                        }

                        else if (chars[1] == '/' && chars[2] == '*') {//“{/*”开头注释行

                            numLineAnn++;

                            flagann = 1;

                        }

                        else if(flagann!=1) {//否则就是代码行

                            numLineCode++;

                        }

                    }

                    else if(flagann!=1) {

                        numLineCode++;

                    }

                }

                else if(flagann!=1) {

                    numLineCode++;

                }

                else {//在“/*”之后“*/”之前的注释

                    numLineAnn++;

                    for (i = 0; i < chars.length; i++) {//判断“/*”注释的结束“*/”

                        if (chars[i] == '*') {

                            if (i + 1 < chars.length)

                                if (chars[i + 1] == '/')

                                    flagann = 0;

                        }

                    }

                }

            }

            else {//空行

                numLineEmpty++;//不超过一个可显示字符的空行

            }

            numLine++;

        }

        numChar--;//减去最后一行末尾不存在换行

 

 

 

 

测试设计过程:

对基本功能字符数等进行测试,对缺少参数以及参数不正确等进行测试,对扩展功能和高级功能进行测试。测试范围要较为全面,尽量测试到各种情况的发生,避免漏洞。

作出以下13个测试用例:

wc.exe

wc.exe -c test.c

wc.exe test.c

wc.exe *.c

wc.exe -c

wc.exe test.c -c

wc.exe test.c *.c

wc.exe -c -w -l -o test.c

wc.exe -c -w -l -o *.c

wc.exe -s -c -w -l -a *.c

wc.exe -s -c -w -l -a *.c -e b.c -o output.txt

wc.exe -s -c -w -l -a test.c -e b.c -o output.txt

wc.exe -c -w -l -a E:\MyEclipse\project\test\test.c -e b.c -o output.txt

 

参考文献链接:

邹欣老师的博客:http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html

手把手教你如何把jar文件,打包成jar文件以及转换为exe可执行文件:

http://blog.csdn.net/sunkun2013/article/details/13167099

posted @ 2018-03-22 16:08  Lantyr  阅读(219)  评论(6编辑  收藏  举报