结对第二次--文献摘要热词统计及进阶需求


  • 课程名称:软件工程1916|W(福州大学)

  • 做业要求:结对第二次-文章摘要热词统计

  • 结对学号221600225|221600435

  • 做业目标:实现一个可以对文本文件中的单词的词频进行统计的控制台程序,并在基本需求实现的基础上编码实现热顶会热词统计器

  • Github项目地址:Github项目地址

  • 代码签入记录:

    基本需求实现:

    进阶需求实现:
  • 具体分工:

    • 221600225林鹏飞负责基础需求和进阶需求的设计与实现。
    • 221600435徐炳南负责博客部分的编写,Github上传。

1、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
• Estimate • 估计这个任务须要多少时间 610 630
Development 开发
• Analysis • 需求分析 (包括学习新技术) 70 90
• Design Spec • 生成设计文档 60 50
• Design Review • 设计复审 30 50
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 30
• Design • 具体设计 70 80
• Coding • 具体编码 320 300
• Code Review • 代码复审 30 30
• Test • 测试(自我测试,修改代码,提交修改) 40 60
Reporting 报告
• Test Report • 测试报告 60 90
• Size Measurement • 计算工做量 30 40
• Postmortem & Process Improvement Plan • 过后总结, 并提出过程改进计划 40 55
合计 740 820



2、解题思路描述

针对基本需求:

  • 在考虑统计文件的字符数时,咱们采用的是直接用字节流读入文件,而后判断读入字节的ascii码进而统计字符数。在考虑统计文件的单词数时,咱们采用本次改用字符串流读入文件。每次读入一整行的字符串。而后用正则表达式筛选出知足条件的单词,再用split函数和正则表达式进行分割,而后统计单词数量。而每次读一整行字符串,对该字符串的每一个字节进行逐个判断,若是找到知足条件的字符,则该行是有效的,不然无效。接着将单词和频数存入,HasmMap集合中,而后写一个判断函数,对HashMap集合中的单词按要求进行排序。最后直接用字符流将结果存入result.txt文件中。
  • 在接口封装上,咱们已经尽可能将每一个功能单独包装成一个函数,可是因为编程能力不足,并没对这些东西进行彻底封装,望谅解。

针对进阶需求:

  • 爬虫部分因为时间紧迫,且我对这方面没有任何经验,因此并无写爬虫,所用的测试文件,是从其余同窗那里借过来的。自定义输入输出: 从args[]中读入命令行参数中输入路径和输出路径便可。检测args中是否有字符串”-w”若是有,则进行单词权重计算,不然不进行。检测到字符串”-w”,再进行”Title:”和”Abstact:”的判断,而后将HashMap集合中的词频进行更改便可。该问题我认为应该用正则表达式进行匹配,可是我没有写出知足条件的正则表达式,因此这没有解决。判断args[]是否有字符串”-n”如有,则在进行HashMap集合的迭代是,加入迭代次数的统计和判断便可。可是没能完成该功能。还有就是对于附加题没能解决。

3、设计实现过程

此次设计实现过程使用功能流程图的方式进行实现:



git


4、改进程序上花费的时间及改进思路

  • 实际上,在写程序的时候,咱们是边推动,变修改的。当每个功能实现以后咱们都会进行测试,可是当在写一个功能以后,老是会发现上一个功能好像须要传一些参数或者返回个什么到下一个功能上,因此改进程序花费上的时间应该是很是多的。差很少和编写新功能的时间是同样。在此次做业中,遇到的最大的一个坑,就是字符串流和字节串流的不一样。字符串流遇到\n会自动省略并,而字节串流则会将其读入。

5、代码说明






6、单元测试代码(部分)



7、遇到的困难以及解决办法

对于输入流和输出流不够熟悉,最后经过对输入流输出流知识从新学习才对输入流输出流熟练起来。对于单词个数的统计,使用正则表达式是最快的。可是一开始不是很了解,最后经过百度以及同窗的交流讨论才懂得正则表达式。而后在字符串流读取不到\n,最后经过改用字节流读取解决。而爬虫的问题不会编写。没能解决进阶需求中,多个单词组成词组的匹配。有想过用正则表达式解决,可是没能写出知足条件的正则表达式。github


8、评价队友

林鹏飞:正则表达式

对于林鹏飞同窗,代码的部分基本上都是由他负责,对于整个项目的分工和每一个部分的安排他都作的很是好,我要向他学习这种全局的规划以及对整个项目的安排能力。他对于问题的解决能力很强。编程

徐炳南:函数

对于徐炳南同窗,他常常会和鹏飞一块儿讨论一些问题,且会经过各类办法去解决。可是代码能力还须要提升。单元测试

相关文章
相关标签/搜索