Deadline: 2018-10-10 23:00pm
WordCount进阶需求:结合个人项目与结对1的需求,编码实现顶会热词统计器
新增功能,并在命令行程序中支持下述命令行参数。说明:字符总数统计、单词总数统计、有效行统计要求与个人项目相同
WordCount.exe -i [file] -o [file]
一个例子如:
WordCount.exe -i input.txt -o output.txt
/*
*从input.txt读取需要统计的文本,将统计结果输出到output.txt
*/
WordCount.exe -w [0|1]
一个例子如:
WordCount.exe -w 1
/*
*程序会输出input.txt中采用不同权重统计出的词频前10的单词
*/
WordCount.exe -m [number]
一个例子如:
WordCount.exe -m 3
/*
*要求程序统计长度为3的词组
*/
例:输入文件中内容为:
0
Title: Monday Tuesday Wednesday Thursday
Abstract: Friday
则输出如下:
characters: 40
words: 5
lines: 2
<Monday Tuesday Wednesday>: 1
<Tuesday Wednesday Thursday>: 1
WordCount.exe -n [number]
一个例子如:
WordCount.exe -n 1
/*
*输出文件中出现次数最多的那个单词
*/
实际测试时,在一句命令行语句中
WordCount.exe -i input.txt -m 3 -n 3 -w 1 -o output.txt
/*
*统计input.txt文件中的字符数、单词数、有效行数、出现次数排在前3的3个单词长的词组,并采用权重累计频数,最终统计结果输出到output.txt
*/
例:输入文件中内容为:
0
Title: Monday Tuesday Wednesday Thursday
Abstract: Monday Tuesday Wednesday Thursday Friday
则输出如下:
characters: 74
words: 9
lines: 2
<Monday Tuesday Wednesday>: 11
<Tuesday Wednesday Thursday>: 11
<Wednesday Thursday Friday>: 1
本部分不参与自动化测试,如有完成,需在博客中详细描述,并在博客中附件(.exe及.txt)为证。附加功能的加入不能影响上述基础功能的测试,分数取决于创意和所展示的完成度,创意没有天花板,这里不提出任何限制,尽你们所能去完成。
要求:发挥个人的奇思妙想,对论文列表进行更多的挖掘并进行数据分析,为你们举几个栗子:
助教在测试时,将运行自动测试程序编译源文件并运行,进行批量测试,因此请保证项目的组织目录符合要求.
一个Java项目的示例组织目录如下所示:
031602111&031602222 (文件夹名字为两人学号)
|- src
|- Main.java(主程序,可以从命令行接收参数)
|- lib.java(包含其它自定义函数,可以有多个,对名字不做要求)
|- Main.class(编译生成的可运行程序)
|- lib.class(编译生成的可运行程序)
|- cvpr
|- result.txt(爬虫结果)
|- Main.java(爬虫程序,可以爬取CVPR2018论文列表)
一个C++工程示例组织目录如下所示:
031602111&031602222 (文件夹名字为两人学号)
|- src
|- WordCount.sln
|- WordCount
|- stdafx.cpp
|- stdafx.h
|- WordCount.cpp
|- WordCount.vcxproj
|- cvpr
|- result.txt(爬虫结果)
|- Crawler.cpp(爬虫程序,可以爬取CVPR2018论文列表)
PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)。
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 · Estimate · 估计这个任务需要多少时间 Development 开发 · Analysis · 需求分析 (包括学习新技术) · Design Spec · 生成设计文档 · Design Review · 设计复审 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) · Design · 具体设计 · Coding · 具体编码 · Code Review · 代码复审 · Test · 测试(自我测试,修改代码,提交修改) Reporting 报告 · Test Repor · 测试报告 · Size Measurement · 计算工作量 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 合计
在动手开发之前,要先估计将在程序各模块开发所需耗费的时间,以及完成整个项目所需的时间,将这个[估计值]记录下来,写成PSP 的形式。
PSP的目的是:记录工程师如何实现需求的效率,和我们使用项目管理工具(例如微软的Project Professional,或者禅道等)进行项目进度规划类似。
有关PSP的更多内容,请自行阅读邹欣老师的博客:现代软件工程讲义 2 工程师的能力评估和发展
请阅读邹欣老师的博客:源代码管理,了解源代码管理的10个实践问题。
本次作业要求使用Github进行源代码管理,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。
对代码签入的具体要求如下:根据需求划分功能后,每做完一个功能,编译成功后,应至少commit一次。本例中,至少应区分基本功能和扩展功能,即分别针对基本功能、扩展功能,编译成功后,总共至少应commit两次。具体的功能划分,请自行定义,并在撰写博客时体现出来,遵循自己对需求的功能划分来提交代码即可。
对Commit不是很熟悉的话,请阅读阮一峰的博客:Commit message 和 Change log 编写指南,了解更多细节。
请根据自己以往积累的测试经验,在编码完成之后,提交产品之前,设计测试用例,并编写单元测试,对自己的项目进行测试。
首先,至少应采用白盒测试用例设计方法来设计测试用例,其他测试方法不限。其次,要设计至少10个测试用例,确保你的程序能够正确处理各种情况。最后,结合测试评估的要求,对自己的测试设计进行评价,这些测试用例能满足该程序测试的要求吗?
另一个重要的措施是要把单元测试自动化,这样每个人都能很容易地运行它,并且可以使单元测试每天都运行。每个人都可以随时在自己的机器上运行。团队一般是在每日构建中运行单元测试的,这样每个单元测试的错误就能及时被发现并得到修改。
推荐阅读邹欣老师的博客:现代软件工程讲义 2 开发技术 - 单元测试 & 回归测试
原文:https://www.cnblogs.com/wyq0808/p/9637479.html