软件测试第二次作业
1.本项目码云地址
https://gitee.com/ttxxt/wc
2.项目完成情况
本次作业我仅仅完成了基本功能,完成了对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中的代码编写。
编程语言我采用的是c#,输入文件为file.c,输出文件为result.txt。
3.解题思路
我编写了四个类,功能分别为:
- 检查用户输入是否正确
- 统计文件字符数、单词数、行数
- 输入统计数据
- 将数据写入文件
4.代码编写
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace wc
{
public class File
{
private string iFile;//输入文件
private List
private int charcount;//字符数
private int wordcount;//单词数
private int linecount;//行数
public void Check(List
{
this.parameter = parameter;
this.iFile = iFile;
foreach (string a in parameter)
{
if (a != "-c" && a != "-w" && a != "-l" && a != "-o")
{
Console.WriteLine("操作{0}不存在!", a);
}
}
}
public void Statistic(string iFile)//统计数据
{
//检查文件格式是否正确
string extension = Path.GetExtension(iFile).ToLower();
if (extension != ".c")
{
Console.WriteLine("输入文件格式错误");
return;
}
int nchar;
charcount = 0;
wordcount = 0;
linecount = 0;
char[] symbol = { ' ', ',' };
FileStream File = new FileStream(iFile, FileMode.Open, FileAccess.Read);
StreamReader file = new StreamReader(File);
while ((nchar = file.Read()) != -1)
{
charcount++;//记录字符数
foreach (char c in symbol)
{
if (nchar == (int)c)
{
wordcount++;//记录单词数
}
if (nchar == '\n')
{
linecount++;//记录行数
}
}
}
}
public void Output(string iFile)//输出统计结果
{
bool C = false;
bool W = false;
bool L = false;
foreach (string f in parameter)//检查指令
{
if (f == "-c")
{
C = true;
}
if (f == "-w")
{
W = true;
}
if (f == "-l")
{
L = true;
}
}
//输出数据
if (C)
{
Console.WriteLine("{0},字符数:{1}", iFile, charcount);
}
if (W)
{
Console.WriteLine("{0},单词数:{1}", iFile, wordcount);
}
if (L)
{
Console.WriteLine("{0},行数:{1}", iFile, linecount);
}
}
public void Writefile()//写入文件
{
//连接文件
FileStream fs = new FileStream("result.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter oFile = new StreamWriter(fs);
bool C = false;
bool W = false;
bool L = false;
foreach (string f in parameter)//检查指令
{
if (f == "-o")
{
if (f == "-c")
{
C = true;
}
if (f == "-w")
{
W = true;
}
if (f == "-l")
{
L = true;
}
}
}
//写入文件
if (C)
{
oFile.WriteLine("{0},字符数:{1}", iFile, charcount);
}
if (W)
{
oFile.WriteLine("{0},单词数:{1}", iFile, wordcount);
}
if (L)
{
oFile.WriteLine("{0},行数:{1}", iFile, linecount);
}
oFile.Flush();
oFile.Close();
fs.Close();
}
static void Main(string[] args)
{
File file = new File();
string iFile = null;
List<string> parameter = new List<string>();
string[] inputs = Console.ReadLine().Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);//读取用户输入的指令
for (int i = 0; i <= inputs.Length - 1; i++)
{
if (i == inputs.Length - 1)
{
iFile = string.Concat(inputs[i]);
}
else
{
parameter.Add(string.Concat(inputs[i]));
}
}
file.Check(parameter, iFile);
file.Statistic(iFile);
file.Output(iFile);
file.Writefile();
}
}
}
5. 测试
- 单个指令测试
- 多个指令测试
Restore.txt文件内容
3错误报警
- 总结
在完成项目的过程中,我发现自己对各种工具的操作还不够熟练,同时对软件测试方面的能力还有很大的不足,以后还要学习。当然通过本次作业,我也有不少的收获。