现代软件工程 作业 个人项目

简介:

MSRA Advanced Software Engineering

Project:  Individual Project - Word frequency program

2010/11/1

考察重点:

    基本算法的实现; 基本I/O;  字处理; 程序效能分析; 简单测试用例

 

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

 

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

 

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

 

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

 

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 a) correctness and b) performance

·         Submit your test cases to TA.

 

Definition:

·         A word: a string with at least 3 letters, separated by delimiters. If a string contains non-alphanumerical letters, it’s not a word.  The word is case insensitive,  i.e. “file”, “FILE” and “File” are considered the same word.

·         Delimiter: space, non-alphanumerical letters (,.<>|\)[]{!@#$%^&*()_+=-}”).

·         Output text file: filename is <your email alias>.txt

o   Each line has this format

<word>: number

                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 alphabetical order.

 

Requirements:

1)     Simple mode.   Simple word frequency.

Myapp.exe <directory-name>

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

2)     Extended mode.  If 2 words are different only on the ending numbers.  For example, we consider “win”, “win95” and “win7” are ONE WORD;  “Office” and “Office15” are the same.   “win”  and “win32a” are DIFFERENT words, as the difference are more than just ending numbers. “21century” and “century” are DIFFERENT words too.

 

When running with “-e” command line parameter,

Myapp.exe –e <directory-name>

 

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







本文转自SoftwareTeacher博客园博客,原文链接:http://www.cnblogs.com/xinz/archive/2010/11/28/1890291.html,如需转载请自行联系原作者


目录
相关文章
|
6月前
|
XML 分布式计算 监控
Oozie工作流管理系统设计与实践:面试经验与必备知识点解析
【4月更文挑战第9天】本文详述了Oozie工作流管理系统的核心概念,包括安装配置、Workflow XML、Action、Coordinator和Bundle XML定义。此外,讨论了工作流设计实践,如监控调试、自动化运维,并对比了Oozie与其他工作流工具的差异。文中还分享了面试经验及解决实际项目挑战的方法,同时展望了Oozie的未来发展趋势。通过学习,读者能提升Oozie技术能力,为面试做好充分准备。
124 0
【负责指导、培训普通开发工程师工作经验之谈】
【负责指导、培训普通开发工程师工作经验之谈】
|
29天前
|
存储 安全 API
项目管理系统介绍,核心概念与操作技巧
项目管理系统通过任务分解、工时管理和项目规划等功能提升效率,适用于多种场景,具有高度可定制性。它能满足从小团队到跨国公司的需求,注重数据安全并与第三方软件集成。Zoho Projects因功能全面、价格亲民及易用性受到中小企业欢迎。
28 0
|
6月前
|
监控 项目管理
软件工程IT项目管理复习之 十一:项目风险管理
软件工程IT项目管理复习之 十一:项目风险管理
607 0
|
算法 Java 程序员
软件工程工作必备
软件工程工作必备
62 0
|
项目管理
软件工程高效学 | 实战案例:禅道进行Bug管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动,其根本目的是让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下。本篇通过禅道进行Bug管理。
297 0
软件工程高效学 | 实战案例:禅道进行Bug管理
|
JavaScript UED
10月工作经验总结
10月工作经验总结
10月工作经验总结
|
前端开发 JavaScript 网络安全
工作中遇到的问题和一些经验总结
工作中遇到的问题和一些经验总结
工作中遇到的问题和一些经验总结
|
前端开发 Unix 图形学
没有银弹:软件工程的本质性与附属性工作
NO SILVER BULLET: ESSENCE AND ACCIDENTS OF SOFTWARE ENGINEERING It's adapted from berkeley . If you want to know more, you visit the orignal articlehere.
2308 0
|
弹性计算 前端开发 Java
一个软件工程的作业
计算机竞赛相关社区,包含资讯滚动,视频发布,社区讨论。
一个软件工程的作业