第二次作业WordCount

一,Gitee项目地址:https://gitee.com/woaizhongbingdu/WordCount.git

 

二,解题思路

       最开始的时候感觉很难,听老师分析以后又有了一些头绪,WordCount功能为统计文件中信息,主要涉及的知识为文件IO流和对字符串的处理,以及switch语句来响应输入值的不同,而执行不同的操作。

 

三,需求说明:

       对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。 wc.exe -c file.c //返回文件 file.c 的字符数

WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。

可执行程序命名为:wc.exe,该程序处理用户需求的模式为:

wc.exe [parameter] [input_file_name]

存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。

 

wc.exe -w file.c //返回文件 file.c 的单词总数

 

wc.exe -l file.c //返回文件 file.c 的总行数

 

wc.exe -o outputfile.txt //将结果输出到指定文件outputfile.txt

四,代码实现:
for(int i=0;i<args.length;i++)
        {
            switch(args[i]){
                case "-c":{
                    System.out.println(inputFile+",字符数:" + WC.getCharCount());
                    break;
                }
                case "-w":{
                    System.out.println(inputFile+",单词数:" + WC.getWordCount());
                    break;
                }
                case "-l":{
                    System.out.println(inputFile+",行数:" + WC.getLineCount());
                    break;
                }
                case "-o":{
                    String outTxt="";
                    for(int j=0;j<args.length;j++){
                        if(args[j].equals("-c"))
                            outTxt=outTxt+"\r\n"+inputFile+",字符数:" + WC.getCharCount();
                        if(args[j].equals("-w"))
                            outTxt=outTxt+"\r\n"+inputFile+",单词数:" + WC.getWordCount();
                        if(args[j].equals("-l"))
                            outTxt=outTxt+"\r\n"+inputFile+",行数:" + WC.getLineCount();
                    }

针对不同的命令进行不同的操作

public void wc(String inputFile) throws IOException
   {
        String lineString = null;
        String[] buffer;
        File dir=new File(inputFile);
        BufferedReader bf = new BufferedReader(new FileReader(dir)); // 读取文件
        while((lineString=bf.readLine())!=null)
       {
            buffer=lineString.split(",| "); //遇到,空格就结束
            for(int i=0;i<buffer.length;i++)
           {
                if(!buffer[i].equals(""))
                    wordCount++;
            }
            lineCount++;
            charCount+=lineString.length();
        }
        bf.close();
    }

统计结果

五,软件测试:用白盒测试法对代码进行单元测试

1,测试统计字符:

 

 

 

 

2,测试统计单词:

 

 

 

3,测试统计行数:

 

 

 

file.c中的内容:

 

 

测试的结果符合预期,测试成功

输出txt文件:

 


由于测试用例比较简单,测试结果也很正确,本次测试还是比较成功的

 

posted @ 2018-09-24 23:27  我爱中病毒  阅读(184)  评论(0编辑  收藏  举报