个人项目 2014

作业提交截止时间:2014.09.25之前。

Individual Project - Word frequency program

Implement a console application to tally the frequency of words under a directory (2 modes).

For all text files (file extensions: "txt", "cpp", "h", “cs”) under a directory (recursively), calculate the frequency of each word, and output the result into a text file.  Write the code in C++ or C#, using .Net Framework, the running environment is 32-bit Win7 or Win 8.

Run performance analysis tool on your code, find performance bottlenecks and improve.

Enable Code Quality Analysis for your code and get rid of all warnings.

Code Quality Analysis:  http://msdn.microsoft.com/en-us/library/dd264897.aspx

Write 10 simple test cases to make sure your program can handle these cases correctly (e.g.  a good test case could be: one of the sub-directories is empty).

Submission:

Submit your source code and exe to TA, TA will run it on his testing environment and check for

       - correctness   (incorrect program will get 0 points)

       - performance

       - write a blog (see blog requirement below)

Definition:

A word: a string with at least 3 English alphabet letters, then followed by optional alphanumerical characters.  Words are separated by delimiters. If a string contains non-alphanumerical characters, it’s not a word. Word is case insensitive, i.e. “file”, “FILE” and “File” are considered the same word.

“file123” is a word, and “123file” is NOT a word.

  - Alphabetic letters:  A-Z, a-z.

  - Alphanumerical characters: A-Z, a-z, 0-9.

  - Delimiter: space, non-alphanumerical letters.

  - Output text file: filename is <your email name>.txt

  - Each line has this format

      <word>: number

Where <word> is the string, it has to be the exact upper/lower case as shown in the text file.  E.g. if only “File” and “file” appear in the test cases,  the program should not show “FILE”. <word> should be the first word in dictionary order (based on ASCII). For exmaple, if only “File” and “file” appear in the text file, the program should output “File: 2”.

Where “number” is the number of times this word appears in the scan.  The output should be sorted with most frequently word first.  If 2 words have the same frequency, list the words by dictionary order.

Requirements:

1)      Simple mode.   Output simple word frequency.

Myapp.exe <directory-name>

Will output <your-name>.txt file in current directory, the text file contains word ranking list.

2)      Extended mode. 

This only applies to some special cases of words. If 2 words are different only in the ending numbers, we think they are the same number.  For example, we consider “windows”, “windows95” and “windows7” are ONE WORD; “Office” and “Office15” are the same; “iPhone4” and “Iphone5” are the same word.  “windows”  and “windows32a” are DIFFERENT words, as the difference are more than just ending numbers.

When running with “-e” command line parameter,

Myapp.exe –e <directory-name>

The app will output <your-name>.txt file in current directory, the text file contains word ranking list, but the frequency is calculated based on the extended mode definition.

In extended mode, the output <word> should be the first word in dictionary order (based on ASCII code), among all matching results, e.g., if we have “windows95”, “windows98” “windows2000” in the files, “windows2000” should be displayed.

Blog Requirement:

You can publish this to BOTH your own blog, and your team blog (to help your team blog get some traffic)

1)      Before you implement this project, Record your estimate about the time you WILL spend in each component of your program.

2)      After you had implemented this project, record the ACTUAL time you spent in each component of your program.

3)      Describe how much time you spent on improving the performance of your program, and show a performance analysis graph (generated by VS2012 perf analysis tool), if possible, please show the most costly function in your program.

4)      Share your 10 test cases, and how did you make sure your program can produce the correct result. (programs with incorrect result will get 0 points,  regardless of speed)

5)      Describe what you had learned in this exercise.

时间: 2024-10-06 15:59:02

个人项目 2014的相关文章

【2014,羽翼渐丰振翅飞】

时间飞逝,过完了一年又一年,过着过着发现自己真长大了,大年初二的日子里便嗅到了北漂的味道. 从上半年的转变到下半年的投入,我品尝到了学习的甘甜,是一种满足感. 8月,复习了J2SE,常用类,容器,IO,线程等,容器往小了说,可以是VB中的Frame控件,在java中可以是一个List,在web上,它便是应用服务器中位于组件和平台之间的接口集合,我们可以理解它为有很多属性和方法,能提供很多种服务,将对象扔到容器中,它便享有了容器提供的各种服务.而线程和进程,却是一个很基础的概念,属于操作系统的范畴

Cocos2d-x 3.0 - Eclipse上构建一个Android项目

Cocos2d-x 3.0 - Eclipse上构建一个Android项目 2014年4月30日 4月末 本篇继续介绍Cocos2d-x 3.0的一些基础内容,前面一篇博客介绍了如何在Visual Studio 2012上编译我们的Cocos2d-x项目,也成功把Helloworld运行起来了.跟以往的版本是类似的,只不过创建空项目的时候命令变成了cocos.本篇博客带给大家的是,如何在Eclipse运行起我们的Cocos2d-x项目,如果童鞋们有看我写的Cocos2d-x 2.2.3版本的交叉

中房集团深圳龙岗旧改项目

中房集团深圳龙岗旧改项目 2014年5月14日,中房前海置业执行董事兼总裁郑喜增.中房前海基金执行董事兼总裁汤永志与深圳市嘉兴数码科技 有限公司董事长林玉清在中国深圳举行深圳龙岗中心区老街旧城棚户区改造项目合作签约仪式. 深圳龙岗规划区老街榕树头片区位于龙岗中心城,是龙岗政治.经济.文化中心,属于深圳八大卫星城之一,是龙岗 迈向城市化的先行城区,中心城已成为龙岗国际化中心城区的重要标志之一.根据深圳市政府的规划,龙岗中心城 是深圳未来的次市级中心,承担着深圳各项独立市政功能.龙岗老墟镇旧改项目位

又来一个打假项目:国家自然科学一等奖项目被曝涉嫌抄袭

@华商报:[国家自然科学一等奖项目被曝涉嫌抄袭]网名为KraneSun的lT工程师2日在开源代码软件平台Github发帖称中国工程院院士.中南大学校长张尧学及其科研团队的项目--2014年度国家自然科学一等奖"网络计算的模式及基础理论研究项目"实为"远程桌面项目",且涉嫌抄袭国外lT工程师上传的开源代码软件. "国家自然科学奖"的奖金是多少? 500万而且是免税的 其中400万用于获奖者正在搞的项目,100万奖励给个人. 在中国要独立研发成功项目

独自走过的这些年

人生,可以有无数次重来,但没有可以重来的人生. 选择与努力同样重要,迷茫时的人生随时要求自己做出抉择,而做出的选择将影响明天的生活!-- 2008年8月,坐火车到青海省西宁市,应该是第二次到西宁! 2009年12月,北京科技大学参加全国ITAT全国大赛--决赛,取得全国网页设计二等奖的成绩! 2010年6月,实习期,参加了第一份工作,学到明白了很多道理! 2010年10月19日,到一家学校参加工作,一直到2013年7月! 2011年5月1日,第二次到青岛游玩! 2011年7月,拿到毕业证! 20

我的Android开发相关文?

Pro Android学习笔记: Pro Android学习笔记(一一七):Location(3):获取位置更新 2014.8.25 Pro Android学习笔记(一一六):Location(2):LocationManager的位置获取 2014.8.21 Pro Android学习笔记(一一五):Location(1):Geocoder 2014.8.19 Pro Android学习笔记(一一四):2D动画(9):Property Animation(下) 2014.8.14 Pro An

我的Android开发相关文章

Pro Android学习笔记: Pro Android学习笔记(一零七):2D动画(2):layout渐变动画 2014.7.25 Pro Android学习笔记(一零六):2D动画(1):frame by frame 2014.7.21 Pro Android学习笔记(一零五):Alarm Manager(3):request code 2014.7.17 Pro Android学习笔记(一零四):Alarm Manager(2):周期发送和取消 2014.7.15 Pro Android学

Spark:大数据的电花火石!

什么是Spark?可能你很多年前就使用过Spark,反正当年我四六级单词都是用的星火系列,没错,星火系列的洋名就是Spark. 当然这里说的Spark指的是Apache Spark,Apache Spark?is a fast and general engine for large-scale data processing: 一种快速通用可扩展的数据分析引擎.如果想要搞清楚Spark是什么,那么我们需要知道它解决了什么问题,还有是怎么解决这些问题的. Spark解决了什么问题? 在这里不得不

为什么学习Spark?

讲到Spark,我们要先讲将大数据,因为Spark是一个处理大数据的平台.那什么是大数据呢?大数据也称为海量数据,通常都是指TG级.PB级的数据,但是随着时间的流逝和验证,一些人们对大数据也发生了观念上的转变,而是把对企业有价值的数据称为大数据,它不一定大,但要有价值. 近二十年来,随着计算机技术和互联网技术的高速发展,计算机在记录着人类的日常活动,如手机通讯.网站访问.微博留言.视频上传.商品买卖.物流运送...,无处不在的社会活动和商业活动正在源源不断地产生着各种各样的数据,而这些数据正以不