• 关于软件工程个人作业 Word frequency program 的总结


    关于软件工程个人作业 Word frequency program 的总结

    Posted on 2013-09-18 12:43 March On 阅读(274) 评论(0编辑 收藏

    一、预计花在程序各部分的时间:

    (1)对所给命令行参数的判断和处理,看它是否合法、是哪种模式。预计用时20min;

    (2)关于目录操作:遍历给定目录下的所有文件,包括子目录和非目录文件。预计用时40min;

    (3)对符合格式的文本文件进行读操作,用正则表达式匹配单词,用哈希表存储单词的词频,包括两种模式。 由于这里的“单词”不是传统中的单词,所以有较多细节要处理。

            简单模式预计用时2h,扩展模式只要在简单模式的基础上稍加修改,预计用时1h;

    (4)词频排序输出,预计用时1h;

    (5)对程序的测试与优化,预计用时2h

     预计花费总时间:7h

    二、实际开发完善所用时间

    (1)命令行参数判断与处理:约15min;

    (2)递归遍历目录下的文件和文件夹:约50min;

    (3)词频统计方面,先简单学习了基本正则表达式和哈希表的用法,并且后来把简单模式和扩展模式合并在一个函数中实现。期间遇到了很多很多小问题花费了较多时间。

            实际用时大约5h;

    (4)由于不仅要求按词频降序排列,词频相同者还要按基于ascll码的字典序排列,故花费了不少时间,约1.5h;

    (5)顺利实现要求的功能后,着手进行代码的整合与优化,用时约1h;

            进行测试与性能分析,约用时2h

    (6)进行程序的容错性处理,约用时30min

    实际用时总计约 11h

    三、程序性能分析

      由于第一次接触到VS2012的程序分析工具,不太熟悉,花了些时间。用性能分析工具运行程序时,可能是因为要统计个函数执行时间、CPU占用率等指标,程序运行时间明显比单纯运行程序所用时间长,所以花的时间较多。

      这里用一个198k的英文文本文件进行性能分析

      performance analysis graph如图:

        

       各函数占用比例如下图:

      

      

      函数调用样图:

      

    四、所用测试用例

      

    (1)所给路径为空文件夹

    (2)所给路径不为空文件夹,但该文件夹下含有空的子文件夹

    (3)所给路径下含有.txt 或 .cpp 或 .cs 或 .h 格式的空文件

    (4)所给路径下内容完全一样的文件,看能否正确统计

    (5)给定路径下含有大规模文本文件

    (6)含有以数字开头字符串的文件

    (7)含有各种非数字字母字符的文件,如*,、/~!……^等

    (8)扩展模式下,含有以不同数字为后缀字符串的文件

    (9)含有各种不同格式文件测试

    (10)针对字典序的测试,如同时含有Mother1 ,abc1;同时含有windows2000,Windows1

    五、收获

      这次作业,我花了很多时间精力去完成。在开始做之前,我以为它很简单,可实际上去实现时,发现并不是所想的那么容易,因为有很多的细节需要处理,处理不好就会一直卡在那,或者性能非常弱。通过这次作业,学会了c#文件操作、正则表达式等等很多的东西。更重要的是,结识了vs2012的性能分析工具,发现它对我们来说是个非常有用的工具,如果能好好利用,相信将对我们的编程优化有很大的帮助!

  • 相关阅读:
    centos7安装nginx
    linux经常使用的命令
    linux 安装 VNC
    linux配置yum源
    docker服务器、以及容器设置自动启动
    docker初步学习以及常用命令
    Docker命令详解(run篇)
    Linux scp命令
    Linux常用命令学习31个
    Linux下解压tar.xz文件
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3329376.html
Copyright © 2020-2023  润新知