2018(秋)软工作业 4:结对项目之词频统计——基本功能
0. 阶段1 - 结对项目:词频统计——基本功能
1. 目标
- 使用开发工具 (Eclipse 或者 Visual Studio)
- 开发语言 (C、C++、C# 或者Java )
- 使用源代码管理工具(Git)
2. 要求
-
实现一个控制台程序,给定一段英文字符串文件,统计其中各个英文单词的出现频率。
输入文件名以命令行参数传入。例如我们在命令行窗口(cmd)中输入:
wordCount.exe input.txt
//Java语言
java wordCount input.txt
则会统计input.txt中的以下几个指标:
(1) 统计文件的有效行数.
- 任何包含非空白字符的行,都需要统计。
(2) 统计文件的单词总数.
定义:(单词
)是至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
- 英文字母:
A-Z
,a-z
- 字母数字符号:
A-Z
,a-z
,0-9
- 分割符:空格,非字母数字符号
- 例:
file123
是一个单词,123file
不是一个单词。file
,File
和FILE
是同一个单词
- 例:
(3) 统计文件中各单词的出现次数,最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词。
例如,windows95,windows98和windows2000同时出现时,则先输出windows2000
- 输出的单词统一为小写格式
- 输出的格式为:
characters: number
words: number
lines: number
<word1>: number
<word2>: number
...
特别提醒,为便于单元测试:
- 上述输出中
冒号
是英文的":", 其后不能有空格
; - 输出的文件名
result.txt
; - 单词全部小写;
(4) 将第三步结果,输出到文件result.txt
- 性能分析:
- 对C++代码运行VS的性能分析工具,找出性能问题并进行优化。
- 对Java程序运行性能分析工具 NetBeans IDE 6.0,找出性能问题并进行优化。
3. 提交(博客)
提交内容包括:
(1) 提交 V1.0 可以编译运行的源码到码云(gitee)(5分)
- Fork PairProgram项目 https://gitee.com/ntucs/PairProg.git
- 新建分支 SEXXX( XXX 为学号后三位),在新分支下新建源代码,编译通过,提交(commit),push 到远端仓库【PairProgram项目】。
- 程序代码应该能正确编译。
- 确保单元测试代码通过。(5分,10个测试用例,通过率S。)
(2) 提交博客 (博客标题:作业 4:词频统计——基本功能
)(5分)
- 项目 Git地址,程序运行模块(方法、函数)介绍(1分)
- 程序算法的时间、空间复杂度分析(1分)
- 程序运行案例截图(1分)
- 描述你花了多少时间在提高程序性能上,利用VS的性能分析工具,展示你的性能图表(1分)
- 结对编程照片(1分)