博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二次作业WordCount
阅读量:5833 次
发布时间:2019-06-18

本文共 1774 字,大约阅读时间需要 5 分钟。

一,Gitee项目地址:

 

二,解题思路

       最开始的时候感觉很难,听老师分析以后又有了一些头绪,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文件:

 

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

 

转载于:https://www.cnblogs.com/woaizhongbingdu/p/9697303.html

你可能感兴趣的文章
linux指令之文件查看 ls
查看>>
iOS 11 下 UICollectionView 的HeaderView 遮挡滚动条
查看>>
jQuery Ajax post多个值传参
查看>>
一点感想
查看>>
HDU - Pseudoforest
查看>>
通过js 实现 向页面插入js代码并生效,和页面postMessage通讯
查看>>
Team Name
查看>>
String类
查看>>
JAVA中各种日期表示字母
查看>>
[心得]关于新的挑战
查看>>
结对编程2
查看>>
python 3.6 链接mssql 进行数据操作
查看>>
颤抖吧,Css3
查看>>
Redis集群命令
查看>>
6.19心得
查看>>
西门子_TDC_数据耦合小经验
查看>>
接口测试与postman
查看>>
【转载】Nginx + Tomcat 实现反向代理
查看>>
Mac下,如何把Github上的仓库删除掉
查看>>
9.18考试 第一题count题解
查看>>