一,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文件:
由于测试用例比较简单,测试结果也很正确,本次测试还是比较成功的