WordCount

项目链接:https://gitee.com/monkeyjb/WordCount

1.项目分析:

本项目是对文本文件的字符数,行数,单词数的统计,并将结果输出到文本文件中。

主要需要运用到对字符串的处理和IO的操作,由于需要用exe程序进行运行,所以还需要学会将java程序转为exe执行程序,并用窗口命令进行操作。

当然作业只要目的还是为了学习程序测试方面的知识。

本人用JAVA语言实现此程序,由于能力限制,只实现基本功能。

2.代码实现:

由于只实现基本功能,只用一个类来实现所有功能,类中包含main方法,和几个实现具体功能的静态方法。

代码如下:

main方法

用于对传入命令行的处理和输出操作。

public static void main(String[] args) {
        String fileName;
        String outFile=null;
        for(int i=0;i<args.length;i++){    
        switch (args[i]) {
        case "-c":
            fileName=args[i+1];
            getCharCount(fileName);
            System.out.println(fileName+",字符数:"+getCharCount(fileName));    
            break;

        case "-w":
            fileName=args[i+1];
            getWordCount(fileName);
            System.out.println(fileName+",单词数:"+getWordCount(fileName));    
            break;
        
        case "-l":
            fileName=args[i+1];
            getLineCount(fileName);
            System.out.println(fileName+",行数:"+getLineCount(fileName));    
            break;
            
        case "-o":
            outFile=args[i+1];
            writeToFile("test.txt", outFile);
            System.out.println("写入成功!");
            break;
        }
        }
        
    }

getCharCount方法

获取传入文本文件的字符数

//获取字符数量的方法
    public static int getCharCount(String fileName){
        int count=0;
        String line;
        try{
            BufferedReader bf=new BufferedReader(new FileReader(fileName));
            while((line=bf.readLine())!=null){
            count+=line.length();
        }
        bf.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
        return count;
    
    }

getWordCount方法

获取单词数的方法

//获取单词数量的方法、
    public static int getWordCount(String fileName){
        int count=0;
        String line;
        try{
            BufferedReader bf=new BufferedReader(new FileReader(fileName));
            while((line=bf.readLine())!=null){
                String[] strings=line.trim().split(" |,");
                count+=strings.length;
                
            }
            bf.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
        return count;
    }

getLineCount方法

获取行数的方法

//获取总行数的方法
    public static int getLineCount(String fileName){
        int count=0;
        String line;
        try{
            BufferedReader bf=new BufferedReader(new FileReader(fileName));
            while((line=bf.readLine())!=null){
                count++;
            }
            bf.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
        return count;
    }

writeToFile方法

将结果写入到文本文件的方法

//将结果写入文件的方法
    public static void writeToFile(String fileName,String outFile){
        try{
            BufferedWriter  bw=new BufferedWriter(new FileWriter(outFile));
            bw.write(fileName+",字符数:"+getCharCount(fileName));
            bw.write("\r\n");
            bw.write(fileName+",单词数:"+getWordCount(fileName));
            bw.write("\r\n");
            bw.write(fileName+",行数:"+getLineCount(fileName));
            bw.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

3.程序测试:

用于被传入的文本文件的内容如图所示:

 

 

单元测试

字符数测量测试

传入的命令行

结果

 

单词数测量测试

传入的命令行

 

结果

行数测量测试

传入的命令行

 

 

结果

结果输出至文件测试

在cmd中输入命令

 

在result.txt中的结果

 

测试结果符合预期

 

说明:由于java程序转换为exe文件这一方面理解的不够透彻,导致前三个测试的结果不能在cmd中显示出来,所以使用了eclipse的命令行操作进行测试。

 

4.总结

通过此次作业,不仅对软件测试的过程有了初步的了解,而且学到了一些其他的以前不知道的操作,比如:java程序转exe,对命令行处理等。

也认识到了许多不足的地方,希望能继续努力,继续进步。

 

posted on 2018-09-30 14:37  侯江波  阅读(133)  评论(0编辑  收藏  举报