zoukankan      html  css  js  c++  java
  • 软件工程个人项目Word frequency program by11061167龚少波

    (一)工程设计时间预计

    1.代码编写:4小时

       熟悉Visual studio 2012的使用 ;

       程序代码部分主要分为三个步骤:

       (1)主函数的构建,包括各种函数调用及输入输出部分;

       (2)对目标文件夹的搜索;

       (3)对文件的中单词的查找筛选及统计。

        同时由于对C++语言比较生疏,需要查阅一些工具书和请教别的同学花费较多时间。

    2.程序调试:2小时

       各种测试数据的构建:15分钟。

       数据测试和改正代码:1小时45分钟(据经验知:这种超过百行的程序总是会出现很多错误,调试时会花很多时间)。

     3.程序优化:1小时

       计算各个步骤的大概时间复杂度,查阅资料在运行时间上做出优化。

       主要有对目标文件夹的查找搜索算法的优化、对文件内单词是否重复的查找算法优化、输出时的排序算法的优化。

     预计总时间:7小时。

    (二)、实际用时:

     1.代码编写:4小时30分

     2.程序调试:3小时

     3.程序优化:1小时

     实际总时间8小时30分。

     代码编写和程序调试部分花去太多时间,尤其是调试,输出总不对,每次调试单步执行都要花费好久,最后还是请教了

    大神帮忙看一下才过的。

    (三)、程序优化:

    测试文件属性:

     性能分析报告:

    优化方法:

            可见执行大概需要12秒左右,主要性能瓶颈在主函数,但是主函数主要是输出时的排序代码,我采用的是冒泡排序,确实复杂度较大,

     这里可以采用快速排序,能够实现优化效果;

     其次就是在对目标文件夹的检索中函数的执行次数较高,如下:

    由于这个读取文件的方法是请教的别人的,具体怎么优化位置,准备另外花时间查查资料。

    (四)、测试用例

    1、测试空文件夹

    2、测试多个文件中相同内容,看程序能否正确统计

    3、大规模文本,进行压力测试

    4、空文本测试

    5、数字开头文件,不合法单词测试

    6、不同格式文件测试

    7、目标文件夹中包含多个子目录的测试

    8、测试特殊字符对分词的影响

    9、针对字典序的测试

    (五)、收获和感想

        通过这次的作业,我学到了好多专业知识,虽然以前上过C++的课程,但是都是老是在课堂上讲,等到自己回去动手编程时就感觉

    无从下手,然后老师也没有具体的编程要求,上课讲的知识应付完考试就什么都忘了,最后就变成什么也没学到,还真是“读万卷书

    不如行万里路”,在实践中学习才是最好的策略。

  • 相关阅读:
    ShellExecuteEx 函数说明
    npm
    Byte和char
    如何高效阅读一个项目
    C++中慎用malloc
    #ifdef
    string
    C++与C混合编译
    git@github.com: Permission denied (publickey).
    connect to host github.com port 22: Connection refused
  • 原文地址:https://www.cnblogs.com/gongshaobo93/p/3337988.html
Copyright © 2011-2022 走看看