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