题目: http://www.cnblogs.com/jiel/p/3978727.html

1. 估计时间:

① 遍历目录找到所有文本文件 3天

② 编写统计词频的函数 排序的函数 并输出到文件 2天

③ 实现扩展模式 3天

2. 实际时间

有些忘记了...开启优化花了好长时间...因为自己的VS2012性能分析之后不能显示函数花费时间的百分比

加上是英文版 觉得看着不舒服 于是重装了中文版的2013

① 遍历目录找到所有文本文件 13小时

② 编写统计词频的函数 排序的函数 并输出到文件 1天

③ 实现扩展模式 1天

3.关于优化

先上未优化的性能分析图

可以看见最占时间的函数是 StrEqual() (比较两个string是否相等,大小写不敏感),因为我每找到一个符合的string都会遍历vector 中的所有string并和它们进行比较

我的优化方案是:

将word存入到二叉排序树,每次找到一个符合的string去和二叉树匹配,二分查找,很大程度上提高了效率,以下分析图用例和优化前的测试用例为同一测试用例

PS:

写完程序已经是24号了,25号上午上课,下午打了一会球,晚上面试...挤出了时间终于完成了优化,复习了关于树方面的知识,好高兴!

4.TestCases

注:程序默认输入格式是正确的

①测试带有空的子文件夹的目录

结果如下:

②测试扩展模式 -e2

与期望相符

③测试扩展模式 -e3

与期望相符

④测试大小写合并

与期望相符

⑤验证文件类型

若干个文件,内容都为:

hello Hello heLLo yyy XXX xxx xxx

文件类型分别为:

txt, cpp, h, cs, png

结果:

<Hello> 12
<XXX> 12
<yyy> 4

与期望相符

⑥测试词的区分能力

inm@#ydream#@iamnots ofaraw*(()ayfr!@o mhome

结果:

<ayfr> 1
<iamnots> 1
<inm> 1
<mhome> 1
<ofaraw> 1
<ydream> 1

与期望相符

⑦测试递归扫描能力

根目录下是一个文件和一个目录,目录下是一个文件和一个目录,目录下又是一个文件。

三个文件都是txt,内容一致:

inm@#ydream#@iamnots ofaraw*(()ayfr!@o mhome

结果:

<ayfr> 3
<iamnots> 3
<inm> 3
<mhome> 3
<ofaraw> 3
<ydream> 3

与期望相符

⑧测试词的排序能力

与期望相符

⑨测试连续两词

与期望相符

⑩测试空文件夹或空文件

屏幕输出 “没有符合的word”

注:一些TestCases参照了张艺同学和黎柱金同学的Cases,特别感谢你们提供了不错的测试方案!!

5.所学

学会了用性能分析工具查看哪部分代码浪费了时间,学到了WIN32_FIND_DATA结构体,学到了关于fstream操作文件方面的知识等。

Individual Project 1 总结的更多相关文章

  1. Individual Project - Word frequency program-11061171-MaoYu

    BUAA Advanced Software Engineering Project:  Individual Project - Word frequency program Ryan Mao (毛 ...

  2. Note: SE Class's Individual Project

    虽然第一个Project还有点小问题需要修改,但是大体已经差不多了,先把blog记在这里,算是开博第一篇吧! 1.项目预计的用时 本来看到这个题的时候想的并不多,但是看了老师的要求才觉得如此麻烦ORZ ...

  3. Individual Project Records

    At the midnight of September 20, I finished my individual projcet -- a word frequency program. You c ...

  4. 《软件工程》individual project开发小记(一)

    今天周四没有想去上的课,早八点到中午11点半,下午吃完饭后稍微完善了一下,目前代码可以在dev c++和vs2012上正常运行,性能分析我看资料上一大坨,考虑到目前状态不太好,脑袋转不动了,决定先放一 ...

  5. SoftwareEngineering Individual Project - Word frequency program

    说实话前面c#实在没怎么学过.这次写起来感觉非常陌生,就连怎么引用名空间都忘记了.在经过恶补后还是慢慢地适应了. 1.项目预计用时: 构建并写出大概的数据结构,程序框架及模块: 30min 实现文件夹 ...

  6. Individual Project - Word frequency program

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

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

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

  8. 1415-2个人项目Individual Project

    作业要求: 个人独立完成,实践PSP相关知识. 时 间: 两周. (本来截止4月30日,考虑到刚迁移平台,延缓至5月7日) 实践目标: Github基本源代码控制方法 利用Junit4进行程序模块的测 ...

  9. Project: Individual Project - Word frequency program----11061192zmx

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

  10. Project: Individual Project - Word frequency program-11061160顾泽鹏

    一.预计用时: (1)明确要求:15min: (2)文件的遍历:1h: (3)Simple mode 词频统计:0.5h: (4)extend mode 词频统计:1h: (5)对单词词频排序输出:0 ...

随机推荐

  1. Git永久删除文件和历史记录

    目录 Git永久删除文件和历史记录 使用filter-branch 添加到.gitignore文件里并push修改后的repo 清理和回收空间 Git永久删除文件和历史记录 造成你想从git存储库中永 ...

  2. 3.5Python数据处理篇之Numpy系列(五)---numpy文件的存取

    目录 目录: (一)以文本形式存取 1.说明: 2.语法解释: 3.实例(以.csv文件为例) 4.效果展示 (二)以任意的形式存取 1.说明: 2.语法解释: 3.实例(以.bat二进制文件为例) ...

  3. MATLAB最小二乘法

    MATLAB最小二乘法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 四.实验内容 设有如下数据: 用3次多项式拟合这组数据. 五.解答( ...

  4. mac系统如何在当前目录下打开终端

    给大家推荐一个好用的终端工具 Go2Shell:https://itunes.apple.com/cn/app/go2shell/id445770608?mt=12 在没有这个工具之前 找了好多在当前 ...

  5. 字符串之StringBuffer 与 StringBuilder的对比

    StringBuilder 和 StringBuffer是高度类似的两个类 StringBuilder是StringBuffer的版本改写,下面从几个方面简单的对比下他们的区别 原文地址:[十四]基础 ...

  6. CanalSharp.AspNetCore v0.0.4-支持输出到MongoDB

    一.多样输出支持 CanalSharp.AspNetCore是一个基于CanalSharp的适用于ASP.NET Core的一个后台任务组件,它可以随着ASP.NET Core实例的启动而启动,目前采 ...

  7. HTTP数据组织方式

    HTTP网络传输中的数据组织方式有三种方式: 1.HTML方式 2.XML方式 3.JSON方式     XML介绍:XML称为可扩展标记语言,它与HTML一样,都是SGML(标准通用标记语言) XM ...

  8. Sublime Text的使用

    本文目录 1.下载安装Sublime Text 2.配置Python IDE环境 3.sublime anaconda载入出现错误 4.Sublime Text快捷键 1.下载安装Sublime Te ...

  9. Win平台阅读Kafka源码时候使用bat脚本时候报错以及解决方案

    问题1: 使用bat脚本报错: 解决方案: 在配置好kafka的server.properties文件后,cmd进入命令窗口输入命令:.\bin\windows\kafka-server-start. ...

  10. wfi彩灯

    1 单纯控制颜色 接线 Arduino Uno         共阳三色雾状LED灯 Pin 9          <---------->      红 Pin 10        &l ...