Github项目地址:https://github.com/HYHSTUDEY/WordCount.git

作业地址:https://www.cnblogs.com/hyhhyh090628/p/10657618.html

结对伙伴(肖莉)作业地址:https://www.cnblogs.com/xx0709/p/10659242.html

一、结对过程

我的结对小伙伴是我的室友,我们两个人都不是很擅长交际,所以在作业下来的时候没有考虑得那么多,基本在大家结对完成之后我们才结对成功。这也对我们的作业完成造成了一定的影响。在结对成功之后我们及时开始讨论各自对于作业的思路,交流我们在拿到作业后对于作业编码部分的想法。因为是近距离地,而且在同一个宿舍我们交流的时间相对较多,也比较及时,所以后期我们的配合还是比较默契的。

结对分工:我们一人负责两个功能,根据难易算得上是平均分配。后期函数整合我们一起完成,测试主要由肖莉负责,我负责Github上传部分。

结对过程中的照片:

二、PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

·Planning

·计划

30

25

·Estimate

·估计这个任务需要多少时间

·Development

·开发

120

160

·Analysis

·需求分析 (包括学习新技术)

60

50

·Design Spec

·生成设计文档

·Design Review

·设计复审 (和同事审核设计文档)

·Coding Standard

·代码规范 (为目前的开发制定合适的规范)

40

30

·Design

·具体设计

45

50

·Coding

·具体编码

300

360

·Code Review

·代码复审

15

15

·Test

·测试(自我测试,修改代码,提交修改)

30

25

·Reporting

·报告

· Test Report

· 测试报告

· Size Measurement

· 计算工作量

20

20

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

20

20

合计

680

755

三、解题思路描述

四、设计实现过程

设计:

基本功能实现:(我们选择在主函数中实现文件读入,然后对函数进行调用)

功能函数基本框架:保证基本功能的实现。因为我们的两人能力限制,所以我们只是实现了基本功能,对于后面的新增功能没有进行实现。

实现:

运行截图:

(1)此为运行无误的截图。(当文本中单词数较少时)

(2)出错图(文本数量较大时会出现单词数出错和记录单词数的函数会出现错误)我们下来也有修改,但是并没有很完满的解决。

五、单元测试

测试代码如下:

效能分析:

 

六、制定的代码规范以及互审情况

代码规范:

1、在每一个功能函数前需要简单注释,对于主要运用的函数也需要注释,以便队友直接明了的看懂代码。

2、在复杂表达式中,必须使用括号。(例如if语句下,尽量使用大括号,使得代码看起来更加清晰明了)

3、关于分行,多个语句不能写在同一行。(看起来很杂乱)

4、变量和函数名,统一采用英文,且首字母大写。

5、名称的选择与命名,尽量选择易读的标识符名称,可读性比简洁性更重要,同时避免使用与常用编程语言的关键字冲突的标识符。

6、使用动词或动词短语作为事件的名称。在为事件命名时,使用现在时或过去时表示时间上的前后观念。

互审情况:

 设计代码的过程中,肖莉负责Character(统计字符数)、Lines(统计行数)和Words(统计单词总数)函数的完善,我负责Frequency(单词出现频率)、WordSort(单词排序)以及main函数的完善,采取了“一人一个函数”交替进行的方式,避免一个人长时间编程产生视觉疲劳和思路不清的情况。一个人写,另一个在旁边及时检查,出现问题及时讨论解决,提高工作效率。在护身的过程中,我们对于互相的思路也有了一个更加清晰的了解。也可以去了解不同的思路,互相学习。同时也会发现我们两都存在的一些不足,对于我们以后的学习也有所帮助。

七、代码说明及改进

1、在我们写代码的过行程中,我们在实现前两个功能(有效行数的统计和字符数的统计)的时候都比较顺利,虽然遇到一些问题,但是我们依靠查询资料和讨论解决相关小问题。

2、第二个就是在我们传入文件的部分,写完代码之后再进行操作,发现无法读取文件,于是后续的工作都无法进行操作。问了同学和老师都没有解决,我们不得不重新写该部分的内容,才得以解决。

3、在统计单词总数和统计单词出现频率时,我们遇到了较大的问题,函数总是在在样本数比较大时容易出错。关于统计单词总数方面写出来的代码没有语法错误,但是我们发现每一次结果出来之后,结果总是显示为一,不能输出正确结果,于是我们两人在网上进行了查阅,也和同学进行了交流并进行了修改。但是遗憾的是,我们经过多次调整代码之后我们发现数据仍然存在问题,希望之后能和别的队伍交流得到解决方案。同样的在统计单词出现频率时,我们采用Hashtable来进行编写函数,但是问题是首先结果无法显示,在进行修改之后发现能显示但是每一个单词的频率都一样,这让我们很困惑。

代码截图(单词出现频率,排序):

八、Github上传

由于在第二次作业中经历了诸多错误,此次上传整体都很顺利。

Github上传完成后的截图如下:

九、心得体会

通过此次的结对编程,我明白了在学习中不仅仅是一个人的事情,就好比这次寻找结对的伙伴对于我来说都是一个问题。在以后的生活中也应当多和朋友,同学之间交流心得。在这次作业当中,我发现我的小伙伴在代码方面明显要比我强,有的地方我不明白。我跟她交流之后就会有所收获,甚至有新的想法。遇到问题的时候我们一同解决,一同寻找出错的地方,相对于一个人来说,两个人解决起来也更快,所以我认为在这次的结对编程中我们是1+1<2的。但是对于我们两个来说此次的劣势在于我们两个人的编码能力都相对较弱,能够想到的解决办法也有限。所以有的问题靠我们两个人讨论无法解决,我认为在后期的学习中,我们两个都还需要进步,特别是在编码方面。此外,我认为这样的结对项目需要较强的加较弱的小伙伴结对对于大部分的小伙伴来说才能收获较大。

第三次作业 201731082208 黄亚恒&肖莉的更多相关文章

  1. 耿丹CS16-2班第三次作业汇总

    -- Deadline: 2016-10-12 22:48 -- 作业内容: 1.实验2-6 猜数字游戏 2.实验2-7 判断能否为三角形 3.实验2-8 个人所得税计算器 -- 第三次作业总结: 1 ...

  2. 20145222黄亚奇《Java程序设计》课程总结

    20145222黄亚奇<JAVA程序设计>课程总结 每周读书笔记链接汇总 第一周读书笔记 第二周读书笔记 第三周读书笔记 第四周读书笔记 第五周读书笔记 第六周读书笔记 第七周读书笔记 第 ...

  3. 软件工程(GZSD2015)第三次作业提交进度

    第三次作业题目请查看这里:软件工程(GZSD2015)第三次作业 开始进入第三次作业提交进度记录中,童鞋们,虚位以待哈... 2015年4月19号 徐镇.尚清丽,C语言 2015年4月21号 毛涛.徐 ...

  4. 软件工程(GZSD2015) 第三次作业提交进度

    第三次作业题目请查看这里:软件工程(GZSD2015)第三次作业 开始进入第三次作业提交进度记录中,童鞋们,虚位以待哈... 2015年4月19号 徐镇.尚清丽,C语言 2015年4月21号 毛涛.徐 ...

  5. 2017-2018-1 JAVA实验站 第三周作业

    2017-2018-1 JAVA实验站 第三周作业 团队展示 队名 JAVA实验站 拟作的团队项目描述 (2048)增加其他模式,使得2048更加丰富多彩 团队的首次合照 团队的特色描述 团队内部很团 ...

  6. 【西北师大-2108Java】第三次作业成绩汇总

    [西北师大-2108Java]第三次作业成绩汇总 熟悉PTA平台线上测试环境: 理解用户自定义类的定义: 掌握对象的声明: 学会使用构造函数初始化对象: 使用类属性与方法的使用掌握使用: 掌握pack ...

  7. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  8. 第三次作业:caculator

    第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...

  9. HTML第三天作业做的表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

随机推荐

  1. Gym - 100625G Getting Through 计算几何+并查集

    http://codeforces.com/gym/100625/attachments/download/3213/2013-benelux-algorithm-programming-contes ...

  2. SCOPE_IDENTITY()和 SELECT @@IDENTITY 的用法

    这俩个,是在插入数据的时候使用,返回刚刚插入数据行的ID 大家慎用@@IDENTITY,而尽量采用 SCOPE_IDENTITY() 函数替换之. SCOPE_IDENTITY()  也是得到最后一条 ...

  3. 今日SGU 5.18

    SGU 125 题意:给你一个数组b[i][j],表示i,j的四周有多少个数字大于它的,问你能不能构造出一个a矩形 收获:dfs  + 剪枝 一行一行的dfs,然后第一行去枚举0-9,下一行判断当前选 ...

  4. qt获取磁盘序列号

    #include "windows.h" QString lpRootPathName = "c:\\"; LPTSTR lpVolumeNameBuffer= ...

  5. 一入python深似海--对象的属性

    Python中一切皆是对象,每一个对象都能够有多个属性.Python是怎样管理这些属性呢?我们来探讨一下. 属性的__dict__系统 对象的属性包括两部分:类属性和对象属性.对象的属性可能来自于其类 ...

  6. Extjs 4.2 设置buttontext为中文

    能够在Ext.QuickTips.init();后增加例如以下代码: Ext.MessageBox.buttonText = { ok : "确定", cancel : " ...

  7. SAP学习之路

    此贴记录学习SAP过程~如有错误请指出~ 6.看着网上学习SAP的貌似比較花精力.学习好的话发展前景还是不错的 5.尽管还不是非常懂.可是还是充满期待,期待着java转型abap. 能够在虚拟机上安装 ...

  8. 再谈怎样以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式

    今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,"大爷"咱能负点责任吗? 将泛型为St ...

  9. 66.app.use(express.static)

    转自:https://blog.csdn.net/u010977147/article/details/60956502

  10. 37.cgi网页交互

    1.Apache的安装 地址:链接:https://pan.baidu.com/s/1kWdSWwZ 密码:nuqo 2.在相应路径下写html如图所示 new.html代码: <html> ...