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)

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 一.项目预计时间 一开始想使用不熟悉的 ...
随机推荐
- 199bit总结的影响最大的十个算法
1. 归并排序(MERGE SORT).快速排序(QUICK SORT)和堆积排序(HEAP SORT) 哪个排序算法效率最高?这要看情况.这也就是我把3种算法放在一起讲的原因,可能你更常用其中一种, ...
- POJ 1734 Sightseeing trip
题目大意: 求一个最小环. 用Floyd 求最小环算法. #include <iostream> #include <cstdlib> #include <cstdio& ...
- 解读sample5
说明 被测试代码文件 sample1.h.sample1.cc和sample3-inl.h 测试代码文件 sample5_unittest.cc 官网上如是描述sample5: Sample #5 i ...
- throw new DataException("检查服务器是否存在失败:" + ex);
try { } catch (Exception ex) { LogHelper.Error(" ...
- HDU 3853 LOOPS
题意:对于每一格,都可以往右走,原地不走,往下走,概率分别为a[i],b[i],c[i](每一个格子与其他格子的概率不一定相同).在R*C的棋盘上(输入数据保证不会走出棋盘),求从(0, 0)走到(R ...
- 机器学习十大算法 之 kNN(一)
机器学习十大算法 之 kNN(一) 最近在学习机器学习领域的十大经典算法,先从kNN开始吧. 简介 kNN是一种有监督学习方法,它的思想很简单,对于一个未分类的样本来说,通过距离它最近的k个" ...
- 如何编写一个JSON解析器
编写一个JSON解析器实际上就是一个函数,它的输入是一个表示JSON的字符串,输出是结构化的对应到语言本身的数据结构. 和XML相比,JSON本身结构非常简单,并且仅有几种数据类型,以Java为例,对 ...
- 使用 FreeMarker 替换 JSP 的 10 个理由
你还在使用 Java 服务器页面(俗称JSP)吗?我曾经也是,但是几年前我抛弃了它们,并且再也没有用过JSP了.JSP 是个很好的概念,但是它却剥夺了 web 开发的乐趣. 对我而言,这些都是小事,比 ...
- MVC路由机制
按照传统,在很多Web框架中(如经典的ASP.JSP.PHP.ASP.NET等之类的框架),URL代表的是磁盘上的物理文件.例如,当看到请求http://example.com/albums/li ...
- Promise in AngularJS
What's promise Angular’s event system provides a lot of power to our Angular apps. One of the most p ...