1. 项目预计的用时

其实刚开始以为这个项目不难写,因为上学期oo课程上用java写过类似的程序(貌似还比这个复杂)。觉得主要的难点在于学习c++语言。

总的项目被分为大概3个部分。

其一,文件遍历。由于刚开始学习c++ 所以计划用时较长,2-3小时

其二,字频统计。整个程序的kernel,是程序正确性和效率的关键点,需要认真写。计划3.5小时+。Ps(学习正则表达式,+1小时)

其三,排序输出。程序的结尾,也是最简单的阶段。1小时。

最后,就是整个程序的调试,修正bug,提高算法效率等。时间不定。

2. 项目实际用时

总的来说,总的时间和估计时间差不多。但是,由于时间不是连续的,所以很难统计。

还是错误估计了c++入门所需要的时间。比如找到文件的遍历所用的库就很麻烦,看api学习语法也花费了很长时间。这一部分占据了项目时间的5成以上。

做完程序,感觉程序的难点(花费时间最多的)是学习而不是编程。程序看似很复杂,其实用正则表达式思路就很清晰,代码量也很小。编程的难度(逻辑的复杂度)也不大。

In conclusion9小时整块时间(但是有时候吃吃零食,发发呆把这些加上大概13小时——这是病,得治求推荐好的医院!!)

3. 项目的表现和性能的分析

这个部分要感谢天神和张大神,他们给了我很多启发,也使我对自己的程序有了一丢丢的自信。。。(错了就不给分的设置真坑爹,不得不吐槽,完全不合理啊,最起码也要按测试点给分啊。谁的程序一点bug都没有,满满的不满 = =)。

咳咳,吐槽好像多了点,回到正题。第一次用vs,对各种功能不熟悉,看到分析真心觉得高大上啊。可惜就是看不太懂,努力学习。

第一次测试的test文档很短,就不断出现

第一次吓死我了,还以为程序错了,喝一口水冷静下。

经过询问同学and 分析,可能cpu执行时间太短,来不及分析数据。后来,分析了 2014年6月英语六级真题及答案(高大上有木有)

得到结果1:

 

结果2

 

两张图对一个数据分析,差别有点大啊。不仅是cpu时间,而且占用百分比也不一样。不知道为什么。能不能找到一个合理的函数来在一定程度上量化呢。。。?这里需要好好思考下

附上其他测试图

函数调用过程

 

函数独占样本

 

最后,感觉自己的程序提高空间还很大,可惜没有时间了。希望下次赶紧治好拖延症。(绝对不会因为自己耽误小组作业。。。我发四)

 

程序改进的想法(来不及实现):

1.普通模式,e2,e3其实很多代码是重复的我,完全可以规约成一个函数,这里严重拖慢了效率。

2.输出排序是用了选择排序,原因是一直没有搞懂c++的sort机智,排序老出错,没办法只能写一个简单的,所以这里也浪费了很多的时间。明天去问问丁大神。

3.Map容器不好根据key值分析,所以申请了list来保存,这里浪费了很多的空间,如果有更好的方法,这里的可提高空间很大。

4.其他细节,如变量的使用,有的申请了但没有用。

 

 

4. 项目的测试样例

1.测试代码对单词的识别能力

输入:a aa aaa aa1 1aa 1aaa aaa1aaa abb%*&^^*&^)(ss a **_)(*_(*(__*sasas

输出:<aaa>:1

<aaa1aaa>:1

<abb>:1

<sasas>:1

Correct

2.测试代码合并大小写的功能

输入:apple apple2 Apple APPLE app APP ios ioS

输出:<APPLE>:3

<APP>:2

<ioS>:2

<apple2>:1

Correct

3.测试排序能力

输入:apple  appl apple a1pple aPP

输出

<apple>:2

<aPP>:1

<appl>:1

Correct

4.测试6级真题

输入:

输出:

没有办法确定自己的正误,但是按照自己的想法,基本应该没错。

5.测试多层目录

测试了自己的工程文件

输出:

目测正确。

6.测试六级英语的2-word 和3-word

2-word 结果如下

3-word

 

测试到这里,真想说:妈妈再也不用担心我的英语了(哈哈 没吃药。。)

7.空目录

正确

5. 收获和体会

发现其实语言是相通的,在学校应该更多的关注于基础理论和实践能力,不要想着java现在很火,我去学java。过两天又去学swift。语言都是大同小异的,有了好的计算机基础能力,学习语言是很快的。编程的重点不是语言,而是怎么驾驭语言。是思想,或者说是组织语言的能力。

多与大家交流是很能促进进步的。刚开始自己再看语法和api文档,找了很久都摸不着头脑,然后没办法,去问大神。在和大神交流的过程中学习是很快的,大神也给我介绍了map容器。大大降低了编程复杂度。闻道有先后,别人身上总有值得学习的东西,交流是很好的学习平台。

工具的重要性。以前写代码都在vc 6.0的平台上。Vc 6.0 bug多,而且ui设计的很不好,功能也少。第一次用vs就有很大的收获。比如词法分析,自动补全,提示等等。磨刀不误砍柴工,好的工具确实能够事半功倍。

优化的重要性。以前总觉得代码写完就好,自己很少注意优化,尤其是细节方面的优化。但有时候,改动一下,代码的时间效率就会发生很大的变化。尤其是对循环内部的改动,效果也是惊人的。

 

写完了,睡觉 呼呼呼~~~~

SE Class's Individual Project--12061161 赵梓皓的更多相关文章

  1. Note: SE Class's Individual Project

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

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

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

  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小时 构建项目逻辑: ...

随机推荐

  1. Hive-1.2.1_06_累计报表查询

    1. 数据准备 # 本地数据准备 [yun@mini01 hive]$ pwd /app/software/hive [yun@mini01 hive]$ ll /app/software/hive/ ...

  2. Python如何输出带颜色的文字方法

    我们在使用python运维与开发的过程中,经常需要打印显示各种信息.海量的信息堆砌在控制台中,就会导致各种信息都显示在一起,降低了重要信息的可读性.这时候,如果能给重要的信息加上差异的字体颜色,那么就 ...

  3. myeclipse中配置spring xml自己主动提示

    版权声明: https://blog.csdn.net/zdp072/article/details/24582173 这是一篇分享技巧的文章:myeclipse中配置spring xml自己主动提示 ...

  4. 【转】这五种方法前四种方法只支持IE浏览器,最后一个方法支持当前主流的浏览器(火狐,IE,Chrome,Opera,Safari)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. 启动Myeclipse报错“Failed to create the Java Virtual Machine”的解决办法

    我安装的是Myeclipse 10.7.1.装上好久没用,今天启动突然报错:Failed to create the Java Virtual Machine. 检查Myeclipse安装好使用时好的 ...

  6. FORWARD转发链的功能

    B主机开启路由转发功能,相当一台路由器,

  7. Vxlan学习笔记——原理(转)

    文章转自http://www.cnblogs.com/hbgzy/p/5279269.html 1. 为什么需要Vxlan 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,而IDC ...

  8. PAT A1018 Public Bike Management (30 分)——最小路径,溯源,二标尺,DFS

    There is a public bike service in Hangzhou City which provides great convenience to the tourists fro ...

  9. python:利用smtplib模块发送邮件

    自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用例后,将测试报告(HTML.截图.附件)通过邮件方式发送. 参考代码:send_mail.py 一.python对 ...

  10. IDEA注册jar包使用和常用插件

    IDEA注册jar包使用 点击获取下载地址或生成注册码 一.安装完成后,先不启动,首先如下图修改相关的地方. 二.启动IDEA,并且激活IDEA IDEA插件仓库 IntelliJ IDEA Plug ...