软件工程个人项目-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++的课程,但是都是老是在课堂上讲,等到自己回去动手编程时就感觉
无从下手,然后老师也没有具体的编程要求,上课讲的知识应付完考试就什么都忘了,最后就变成什么也没学到,还真是“读万卷书
不如行万里路”,在实践中学习才是最好的策略。
软件工程个人项目-Word frequency program by11061167龚少波的更多相关文章
- 软件工程个人项目--Word frequency program
(一)工程设计时间预计 1.代码编写:2小时 (1)文件夹的遍历以及筛选: (2)文件夹的读取,以及对读取字符的操作: (3)所得结果排序,以及文件输出. 2.程序调试:1小时 (1)编写数据. (2 ...
- 关于软件工程个人作业 Word frequency program 的总结
一.预计花在程序各部分的时间: (1)对所给命令行参数的判断和处理,看它是否合法.是哪种模式.预计用时20min; (2)关于目录操作:遍历给定目录下的所有文件,包括子目录和非目录文件.预计用时40m ...
- 【软件工程】Word frequency program
一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,对于C++也不熟,所以打算先花1天的时间学习C# 2.整个程序基本分为文件遍历.单词提取.单词匹配.排序.输出几个模块,各个模块大致时间 ...
- 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 ...
- Individual Project - Word frequency program——12061154Joy
Description&Requirement: http://www.cnblogs.com/jiel/p/3978727.html 项目时间估计 理解项目要求: 1h 构建项目逻辑: 1h ...
- Individual Project - Word frequency program by HJB
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...
- Individual Project - Word frequency program
1.项目预计用时 -计划学习C#和百度一些用法的时间:5小时 -项目本身打算写两个类,一个是遍历搜索文件夹的,另外一个用来统计单词.计划用时:5小时 2.项目实际用时 学习C#以及正则表达式的用法:3 ...
- Individual Project - Word frequency program - Multi Thread And Optimization
作业说明详见:http://www.cnblogs.com/jiel/p/3978727.html 一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,所以打算先花1天的时间学习C# 2. ...
- Record for Individual Project ( Word frequency program )
1. 预计时间 ● 对问题总体的理解.规划:10 min ● 设计编写程序:5 h ● 调试: 分模块-40 min; 总体-40min ● 测试(性能分析).改进:1 h 2. 实际用时 ● 对 ...
随机推荐
- zoj 3165 (最小割,最大点权独立集)
胡伯涛的<最小割模型在信息学竞赛中的应用>写的真牛. 这道题是选择一些男孩和女孩参加party,邀请的男孩女孩之间不能有 8g,图就是个明显的二分图,就是选择一些点之间没有8g关系,就是二 ...
- C# Server.MapPath()
./当前目录 /网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot 应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\ ...
- java验证码-汉字验证码
今天整理了一个java实现的汉字输入验证码 主要包含两个类,一个是生成验证码,一个是判断验证码输入是否正确 实现原理非常简单,将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码 ...
- Eclipse 下如何引用另一个项目的Java文件
有关联的2个项目,有些类是相同的.例如实体类. 如果你采用 Ctrl + C & Ctrl + V 的方式,以后再有改动,2个项目就都需要改动. 怎样才能只改动一个呢? 答案就是,在一个项目( ...
- linux系统更改目录和文件的权限总结
对于属于你的文件,可以按照自己的需要改变其权限位的设置.在改变文件权限位设置之前,要仔细地想一想有哪些用户需要访问你的文件(包括你的目录).可以使用c h m o d命令来改变文件权限位的设置.这一命 ...
- Server-Side UI Automation Provider - WinForm Sample
Server-Side UI Automation Provider - WinForm Sample 2014-09-14 源代码 目录 引用程序集提供程序接口公开服务器端 UI 自动化提供程序从 ...
- ubuntu中apt-get安装与默认路径
一.apt-get 安装 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb或者直接双击此文件 dpkg 是Debian ...
- mac 10.8 编译提示找不到GCC
本机已安装xcode,但是在编译prce时提示找不到GCC,要不安装gcc.pkg ,简单起见,启动xcode->menu->preferences->Dowloads 把里面的co ...
- POJ 2689
题意:求[l, r]区间中的间隔距离最大与最小的相邻两个素数,r<2200000000, r-l<10^6 题解: 对于<a的合数,其必然存在一个素因子b<=sqrt(a). ...
- HDU 1158 Employment Planning【DP】
题意:给出n个月,雇佣一个人所需的钱hire,一个人工作一个月所需要的钱salary,解雇一个人所需要的钱fire,再给出这n个月每月1至少有num[i]个人完成工作,问完成整个工作所花费的最少的钱是 ...