简单的WordCount程序——软件测试第二次作业

  程序源代码Gitee项目地址:https://gitee.com/xiao_ge_ge/WordCount.git

  一:介绍:

    这次作业的主要任务:    

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

      wc.exe -c file.c     //返回文件 file.c 的字符数

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

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

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

    拿到题目的时候,思考使用近期使用比较多,也相对比较熟练的c#来写。计划使用两个类:MainScreen:用来进行控制台界面的输入输出,ProcessingDate:用来进行具体的操作。

  二: 具体程序

    1.主界面是最简单的方式,strcomm用来接收用户输入的指令

   

    2.对用户输入的指令进行分析。

      对用户输入的指令,截取各个部分存入字符串数组,方便后续的使用,在这里,数组第一个元素始终是字符串wc.exe,最后一个始终是文件名。去空格截取(StringSplitOptions.RemoveEmptyEntries)可以避免许多不必要的麻烦。考虑到指令可以多个一起使用,在这里使用了for循环逐个对指令进行检查。同时输出了结果。

    3.ProcessingDate类

      3.1考虑到每一次的处理都会涉及到打开文件,将打开文件写为一个单独的方法,在具体的方法中直接调用即可。每一次对文件的操作都需要关闭文件。方法返回读取到的信息str.

 

    3.2:判断字符数(空格、换行、制表符)

      只要循环到以上三种字符,则计数器加1.结束后将结果按要求写入result.txt文件,并在控制台输出结果。

      判断行数的代码类似

 

  3.3判断单词数。

 

    这个部分写的时候比较麻烦。考虑到作业要求,发现如果直接使用空格分隔开,那么如果两个单词之间存在多个空格,或者以空格开头的文件或者行,都会受到影响。想了许久,发现一个特别笨但还算行之有效的方法。

    设置一个布尔变量 bool isblank = true;遍历字符串,当当前字符不为空格(换行)时,置为false,count+1,此时记录一个单词,直到当前字符为空格(或者换行)时,置为true,表示这个单词结束,可以进入下一个单词。这样,不论之间又多少空格或者换行,判断一个单词都是以一个字符开始,遇到空格(或者换行)时结束。

  3.4将结果输入指定文件。

三:测试设计过程。

  这里测试主要针对输入。

    1.当输入一个指令时,程序能否正确执行,如果输入的指令不正确,程序能否处理并报告给用户。

    2.当输入多个指令时,程序能否正确执行,如果输入的指令都不正确、有部分不正确,程序能否处理并正确的报告给用户哪些指令是错误的。

  这两个方面已经实现。

    3.当输入的文件名错误,程序找不到文件时,程序如果正确处理(不抛异常并且正确报告给用户)。

  该方面还没有实现。

四:改博文作为学习的记录和作业,其中部分内容参考了网络上部分文章及方法。

  关于写入文件的操作  http://www.cnblogs.com/duanjt/p/5265655.html

  关于字符串的分割  https://blog.csdn.net/tiandijun/article/details/40401655

  主要参考以上两篇文章。感谢作者。

posted @ 2018-09-24 17:06  _小鸽鸽  阅读(407)  评论(0编辑  收藏  举报