结对作业——WordCount进阶版

1.

博客作业地址https://www.cnblogs.com/piraat/p/9754497.html

码云地址https://gitee.com/piraat/PairProject-C/tree/master

2.

学号:201621123053

同伴博客地址http://www.cnblogs.com/ACmilan1899kaka/p/9756046.html

码云地址https://gitee.com/milan_kaka/PairProject-Java

3.psp表格

PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟)
Planning 计划 10 19
· Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 10 19
Development 开发 320 251
· Analysis 需求分析 (包括学习新技术) 20 10
· Design Spec 生成设计文档 10 5
· Design Review 设计复审 10 6
· Coding Standard 代码规范 10 5
· Design 具体设计 60 19
· Coding 具体编码 100 72
· Code Review 代码复审 10 12
· Test 测试(自我测试,修改代码,提交修改) 100 112
Reporting 报告 35 32
· 测试报告 10 20
· 计算工作量 10 6
· 并提出过程改进计划 15 6

4.解题思路描述

此次实验增加了几个新功能,并加入了GUI,我主要负责的是新功能的模块。因为上次实验中的代码耦合性不算高,所以此次主要内容在于解决按照要求的词组进行排序。一开始我想运用正则表达式进行匹配:以\b[a-zA-Z]{4,}[A-Za-z0-9]为基础,要求多少个词组就在后面跟上多少个[^0-9a-zA-Z]+[a-zA-Z]{4,}[A-Za-z0-9]。然而,我在尝试以后才发现,这样匹配一个单词只能出现在一个词组中,无法达到要求中的词组匹配。所以,因为正则表达式学的不到位,无法写出符合要求的正则表达式。我选择运用笨办法,就是先将所有输入的单词整理进arraylist,然后再将他们按照要求分类放入map中 `String[] phraseTmp = new String[phraseNum];` 这样虽然效率低,但总算保证符合要求。
新功能作为一个新函数,重载了上一次写的函数,加入了新的 `int phraseNum` `参数。不足的点在于,因为一开始我希望直接运用正则表达式进行匹配,所以没有想要将整理单词列表作为一个单独的函数提出来。这也就造成了两个方法都需要分别进行单词的提出,自然而然的降低了效率。

5.代码组织与单元测试

单元测试相对上一次来说改动不大,主要是增加了对词组的测试

PS.图形界面在同伴上的基础上增加了一些功能

6.代码说明

我负责的值得说明的代码部分主要是词组部分。我运用的是笨办法,首先创建与词组要求的词汇数量相同的字符串数组,这样可以保证保存下所有词组不会有遗漏。

先用for循环将前几个词分别保存在相应的字符串中,一直循环到第一个字符串词数量达到要求。然后将第一个字符串存入map中

然后,每遇到一个词都将其存在所有字符串中,每当一个字符串满就将其与map中存入的词组比对,如果不同则加入,相同则value加一。

图形界面我并没有写太多,主要是添加了由单选框控制的文本输入phraseN.setEditable(phraseNumB.isSelected()); 与文件选择的JFileChooser chooser = new JFileChooser();

7.效率分析

因为我没有运用stringbuilder,而是对字符串直接"+",所以可能拖慢了速度。

8.实践经历与感受

个人感受:

  • 复用的问题:我在上面关于复用所提到的,关于单词的问题是其一。另外一个关于复用的问题是上次用控制台进行操作时,我并没有输出模块与Main函数分离开,这就导致这次输出需要用到swing时需要将所有的system.out全部改掉。如果说前面一个是编程技术问题,那么这一个问题就是编程习惯问题。我记得曾经JAVA老师在教接口时就以输出举的例子,我应该尤其注意这一点

结对编程经历

此次关于结对编程的实践经历既有我们自认为做的不错的地方,也有需要改进的地方。

  • 我们的优点在于分清楚了两个人都需要做什么,所以在做的时候并没有感觉不习惯,也没有因为自己的编程问题给对方带来麻烦。

  • 需要改进的地方则是我们没有将函数名称等问题统一,这给我们后续进行编程带来了一定的麻烦。我们应该尽早确定下一些标准,例如两个人共同商定着写一些接口文件,确定参数的共同名称等等。在接下来的团队编程中这是我尤其要注意的地方。

posted @ 2018-10-08 15:11  pirrat  阅读(157)  评论(0编辑  收藏  举报