• 第二次作业(WordCount)


    1 Github项目地址:https://gitee.com/DamonGetup/WordCount/tree/master

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

    基本功能: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

      扩展功能:wc.exe -s            //递归处理目录下符合条件的文件

                      wc.exe -a file.c     //返回更复杂的数据(代码行 / 空行 / 注释行)

                      wc.exe -e stopList.txt  // 停用词表,统计文件单词总数时,不统计该表中的单词

    3 基本思路:

    由于很久没使用C语言了,导致编写进度进展的很慢。但根据要求进行需求分析,主要要实现的功能有:用户的命令行输入,文件的获取与读写,文件内容遍历,字符串匹配等。该程序代码的结构如下, 从根据argv[]传入的参数,条件语句判断。来决定进行什么功能。

    4 代码设计:

    -c 返回文件字符数

    -w返回文件单词总数

    -l返回文件总行数

    主函数根据argv[]传入的参数,进行条件语句判断。来决定进行什么功能。

    int main(int argc, char* argv[])            
    {
        FILE *fp;
        while(1)
        {


            if((fp=fopen(argv[2],"r"))==NULL)
            { 
            printf("FileNull ");
            scanf("%s%s%s",argv[0],argv[1],argv[2]);
            continue;
            }


            else if(!strcmp(argv[1],"-w"))
            countw(argv[2]);       

            
            else if(!strcmp(argv[1],"-c")) 
            countc(argv[2]);   

                
            else if(!strcmp(argv[1],"-l"))   
            countl(argv[2]);      

         
            else if(!strcmp(argv[1],"-a"))               
           {    
              count_blankline(argv[2]);
              count_noteline(argv[2]);
              count_codeline(argv[2]);
           }


            else if(!strcmp(argv[1],"-s"))
           {
               searchfile();
           }


            else
                printf("NullPoint ");


            printf(" ");


            scanf("%s%s%s",argv[0],argv[1],argv[2]);
        }
        return 0;

    }

    5.测试思路:

    采用白盒测试用例设计法覆盖可能出现的左右情况,尽量找到代码中可能蕴含的错误并改正,因此,测试设计应该覆盖判断中的各种边界情况。-c test.txt,-w test.txt,-l test.txt,-c –w test.txt,-c –l test.txt,-w –l test.txt,-c –w –l test.txt,-c test.txt –o output.txt,-w test.txt –o output.txt,-l test.txt –o output.txt,-c –w test.txt –o output.txt,-c –l test.txt –o output.txt,-w –l test.txt –o output.txt,-c –w –l test.txt –o output.txt。

    测试文件:                                                                                                           

     测试均可通过,表示基本功能没有问题,不一一列举了。

    6 总结:

    本次作业较为仓促,有多个功能聚集在主函数内部,比较杂乱,没有比较好的代码优化。算法的性能还有待提高和优化,对问题的考虑可以更全面。但是加强了编程能力,让我对时间安排有了更充分的理解,理解了上课所学习的基本内容,初步理解的测试的相关方法,希望能在今后的学习中对软件测试有更加深刻的理解和学习

    参考文献:

    【1】http://www.cnblogs.com/xinz/p/5044037.html

    【2】http://www.cnblogs.com/xiaobao123/p/9649693.html

    【3】https://www.cnblogs.com/IHHHH/p/8612972.html

    【4】https://www.jianshu.com/p/5323bca00825

     
  • 相关阅读:
    ansible-playbook基础
    ansible-playbook批量安装tomcat8版本
    linux
    PostgreSQL View(视图)
    PostgreSQL TRUNCATE TABLE
    PostgreSQL ALTER TABLE 命令
    redis主从环境搭建
    PostgreSQL 约束
    解决Chrome中Software Reporter Tool占CPU用过高
    C++标准模板库(STL)简介及应用
  • 原文地址:https://www.cnblogs.com/Damonblogs/p/9695911.html
Copyright © 2020-2023  润新知