(一)工程设计时间预计

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++的课程,但是都是老是在课堂上讲,等到自己回去动手编程时就感觉

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

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

软件工程个人项目-Word frequency program by11061167龚少波的更多相关文章

  1. 软件工程个人项目--Word frequency program

    (一)工程设计时间预计 1.代码编写:2小时 (1)文件夹的遍历以及筛选: (2)文件夹的读取,以及对读取字符的操作: (3)所得结果排序,以及文件输出. 2.程序调试:1小时 (1)编写数据. (2 ...

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

    一.预计花在程序各部分的时间: (1)对所给命令行参数的判断和处理,看它是否合法.是哪种模式.预计用时20min; (2)关于目录操作:遍历给定目录下的所有文件,包括子目录和非目录文件.预计用时40m ...

  3. 【软件工程】Word frequency program

    一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,对于C++也不熟,所以打算先花1天的时间学习C# 2.整个程序基本分为文件遍历.单词提取.单词匹配.排序.输出几个模块,各个模块大致时间 ...

  4. Limeng:Individual Project: Word frequency program -BUAA Advanced Software Engineering

    11061190-李孟 Implement a console application to tally the frequency of words under a directory (2 mod ...

  5. Individual Project - Word frequency program——12061154Joy

    Description&Requirement: http://www.cnblogs.com/jiel/p/3978727.html 项目时间估计 理解项目要求: 1h 构建项目逻辑: 1h ...

  6. Individual Project - Word frequency program by HJB

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...

  7. Individual Project - Word frequency program

    1.项目预计用时 -计划学习C#和百度一些用法的时间:5小时 -项目本身打算写两个类,一个是遍历搜索文件夹的,另外一个用来统计单词.计划用时:5小时 2.项目实际用时 学习C#以及正则表达式的用法:3 ...

  8. Individual Project - Word frequency program - Multi Thread And Optimization

    作业说明详见:http://www.cnblogs.com/jiel/p/3978727.html 一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,所以打算先花1天的时间学习C# 2. ...

  9. Record for Individual Project ( Word frequency program )

    1.  预计时间 ● 对问题总体的理解.规划:10 min ● 设计编写程序:5 h ● 调试: 分模块-40 min; 总体-40min ● 测试(性能分析).改进:1 h 2.  实际用时 ● 对 ...

随机推荐

  1. 《Linux/Unix系统编程手册》读书笔记 目录

    <Linux/Unix系统编程手册>读书笔记1  (创建于4月3日,最后更新4月7日) <Linux/Unix系统编程手册>读书笔记2  (创建于4月9日,最后更新4月10日) ...

  2. UVa 10006 - Carmichael Numbers

    UVa 10006 - Carmichael Numbers An important topic nowadays in computer science is cryptography. Some ...

  3. R.id.layout等不能识别:cannot be resolved or is not a field

    Do not modify the R class. The error means there's something syntactically wrong with your XML layou ...

  4. JSON(3)Google解析Json库Gson

    本文参考 : http://www.cnblogs.com/chenlhuaf/archive/2011/05/01/gson_test.html 1.资料 官网: http://groups.goo ...

  5. Introducing Microsoft Sync Framework: Sync Services for File Systems

    https://msdn.microsoft.com/en-us/sync/bb887623 Introduction to Microsoft Sync Framework File Synchro ...

  6. mysql 字符串函数

    对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回NULL. mysq ...

  7. spring读写分离(配置多数据源)[marked]

    我们今天的主角是AbstractRoutingDataSource,在Spring2.0.1发布之后,引入了AbstractRoutingDataSource,使用该类可以实现普遍意义上的多数据源管理 ...

  8. URAL1204. Idempotents(扩展欧几里得)

    1204 大体推推 会出来这个式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0; 因为p,q都为素数 那也就是说x和x-1中必定包含这两个数 而且一个里面只能有一个 不 ...

  9. AWS 之Load Balance篇

    public class CreateELB { /// <summary> /// 连接AWS服务器 /// </summary> /// <param name=&q ...

  10. 谷歌的ajax.googleapis.com被墙导致访问很多国外网站很慢的解决方法

    比如访问StackOverflow, 更比如flexerasoftware.com(导致Visual Studio的打包程序InstallShield Limited Edition不能注册和下载) ...