软件测试第二次作业

1.本项目码云地址
https://gitee.com/ttxxt/wc
2.项目完成情况
本次作业我仅仅完成了基本功能,完成了对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中的代码编写。
编程语言我采用的是c#,输入文件为file.c,输出文件为result.txt。
3.解题思路
我编写了四个类,功能分别为:

  1. 检查用户输入是否正确
  2. 统计文件字符数、单词数、行数
  3. 输入统计数据
  4. 将数据写入文件
    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 parameter;//输入指令
private int charcount;//字符数
private int wordcount;//单词数
private int linecount;//行数
public void Check(List parameter, string iFile)//检查用户输入是否正确
{
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. 测试

  1. 单个指令测试
  2. 多个指令测试

Restore.txt文件内容

3错误报警

  1. 总结
    在完成项目的过程中,我发现自己对各种工具的操作还不够熟练,同时对软件测试方面的能力还有很大的不足,以后还要学习。当然通过本次作业,我也有不少的收获。

posted on 2018-09-30 13:27  tysss  阅读(139)  评论(0编辑  收藏  举报