Project: Individual Project - Word frequency program-11061160顾泽鹏
一、预计用时:
(1)明确要求:15min;
(2)文件的遍历:1h;
(3)Simple mode 词频统计:0.5h;
(4)extend mode 词频统计:1h;
(5)对单词词频排序输出:0.5h;
(6)测试与调试:2h;
(7)程序优化:2h;
二、实际用时:
(1)遍历文件夹:本来以为这部分不会很难,结果自己动手的时候才发现对于递归遍历子目录一筹莫展,最终还是参考的网上的数据,用时比较久,4h
(2)Simple词频统计:在这部分中,首先将合法的单词提取了出来,花了1.5h,然后进行统计,花费了0.5h
(3)Extend词频统计:统计部分,比较难的是提取单词,提取出来以后,统计变得非常容易,只不过是增加了扩展模式对于是否是同一个单词的判断,花费了1h
(4)排序与输出:花费了40分钟
(5)测试与调试:3h;
在调试阶段,才发现一开始自己的想法中有许多不成熟的地方,比如说没有考虑到文件读取到末尾时,对于文件到了末尾没有采取判断措施,从而在词频统计时出了错,经过单步调试才发现了错误;其中也有花括号太多(眼花缭乱)配对错误导致bug百出等等;
在这部分花了比较久的时间,但是经过自己的调试,发现了自己先前许多不成熟的想法,我会从中吸取经验教训,这对于今后的编程有很大的警示作用。
经过自己的调试将错误一个一个的找出并最终成功运行,带来了非常大的成就感。
(6)程序优化:3h;
三、程序优化
因为第一次接触VS以及程序优化,所以走了很多弯路;
一开始,我拿简单的测试用例来进行程序分析,发现总是显示采集不到数据,在向别人讨教后,我改用网上下载的英文小说,扩充了样本量,这才开始了我的代码优化之旅~
性能分析如下:
%603.jpg)
JN4(JN9%60PHFMC]4V.jpg)

E(I)M(F6V]RR94.jpg)

map<string,int> wordMap;
还有一个问题是怎么样保存应该输出哪个单词,在这里我是用了另一个map<string, string>保存的。就是所有的单词全换成小写,作为下标。对于某个单词输出的时候,输出的值是该单词在第二个map对应的单词,以及第一个map里对应的次数。”
地址:http://www.cnblogs.com/Z-XML/p/3329234.html
我一开始是开数组实现的,现在使用了map后,经过测试,运行效率提高了不少(较之刚才),但不知道有没有更好地方法,希望作业提交上去之后,会有大神提出指导意见帮助我进一步改进代码。
四、测试用例

108H@@ENI]S2FFC~CFX.jpg)





A3EUPRR9.jpg)
8JK8RU$VS%7BF)1BP%258@J1P.jpg)
8Q4%7D3Y$MGSG_O(J__BD~E.jpg)

U.jpg)


VEX5AKU%7DPR%7DWT9C48K2.jpg)

P()(__9I~M3S.jpg)
X.jpg)

63%60A@_~1H7T%7D53G%7DQE.jpg)
Project: Individual Project - Word frequency program-11061160顾泽鹏的更多相关文章
- 11061160顾泽鹏homework-01
我的Github地址是buaa11061160 教材:中文版 代码大全 (第二版) 斯蒂夫·迈克康奈尔 设计思路: 输入了一串数组a[0].a[1]..... 从a[0]开始向后扫,在以数字a[i]结 ...
- SoftwareEngineering Individual Project - Word frequency program
说实话前面c#实在没怎么学过.这次写起来感觉非常陌生,就连怎么引用名空间都忘记了.在经过恶补后还是慢慢地适应了. 1.项目预计用时: 构建并写出大概的数据结构,程序框架及模块: 30min 实现文件夹 ...
- Individual Project - Word frequency program by HJB
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...
- 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 - Multi Thread And Optimization
作业说明详见:http://www.cnblogs.com/jiel/p/3978727.html 一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,所以打算先花1天的时间学习C# 2. ...
- Individual Project - Word frequency program——12061154Joy
Description&Requirement: http://www.cnblogs.com/jiel/p/3978727.html 项目时间估计 理解项目要求: 1h 构建项目逻辑: 1h ...
- Individual Project - Word frequency program
1.项目预计用时 -计划学习C#和百度一些用法的时间:5小时 -项目本身打算写两个类,一个是遍历搜索文件夹的,另外一个用来统计单词.计划用时:5小时 2.项目实际用时 学习C#以及正则表达式的用法:3 ...
- Record for Individual Project ( Word frequency program )
1. 预计时间 ● 对问题总体的理解.规划:10 min ● 设计编写程序:5 h ● 调试: 分模块-40 min; 总体-40min ● 测试(性能分析).改进:1 h 2. 实际用时 ● 对 ...
- THE First Individual Project - Word frequency program
第一次写博客,这次也是本学期写到第一个程序. 老师要求网址:http://www.cnblogs.com/jiel/p/3311400.html#2777556 一.项目预计时间 一开始想使用不熟悉的 ...
随机推荐
- GCC使用
GCC的选项 如何指定GCC的默认头 文件路径 Linux系统的头文件 和库文件搜索路径 头文件 库文件 运行时动态库的搜索路径 GCC的选项 -c 只生成目标文件(.o),不连接. % gcc -c ...
- 【动态规划】XMU 1028 Game Boy Advance
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1028 题目大意: 求01背包最优解的方案.物件数和物件编号. 题目思路: [动态规划] ...
- oracle触发器使用总结
1.说明 1)触发器是一种特殊的存储过程,触发器一般由事件触发并且不能接受参数,存储器由语句块去调用 2)触发器分类: 1.DML触发器: 创建在表上,由DML事件引发 2.instead of触发器 ...
- 网页a标签:导航制作 怎么让鼠标经过A标签的时候显示块状背景?
文章出处:http://dongguan.seosrx.net/website/6.html
- 编写自己的C头文件
1. 头文件用于声明而不是用于定义 当设计头文件时,记住定义和声明的区别是很重要的.定义只可以出现一次,而声明则可以出现多次. 下列语句是一些定义,所以不应该放在头文件里: extern ...
- XML初学笔记
一.基本概要: XML,全称是eXtensible Markup Language,可扩展的标记语言,是Web服务的基础之一,使用XML,用户可以定义自己需要的标记.而用户创建的标记可以使用文档类型定 ...
- codeforces 341C Iahub and Permutations(组合数dp)
C. Iahub and Permutations time limit per test 1 second memory limit per test 256 megabytes input sta ...
- Linq 语法举例
1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; // ...
- bullet HashMap 内存紧密的哈希表
last modified time:2014-11-9 14:07:00 bullet 是一款开源物理引擎,它提供了碰撞检測.重力模拟等功能,非常多3D游戏.3D设计软件(如3D Mark)使用它作 ...
- linux mysql 数据目录文件夹移动及所遇到的问题
一 .如果是fedora下用rpm包安装的mysql,修改方法如下: 如果这里说的不够清楚,可以到http://www.vipkj.net/post-839.html给我留言 MySQL默认的数据文件 ...