结对编程2

conding地址:https://coding.net/u/chenlinfeng/p/pairwork-2/git

张志杰 201421123019 && 陈麟凤 201421123015 && 黄海鸿 201421123020



需求分析:

将计算模块分离出来形成一个单独的类,针对自己采用的编程语言采用相应的方法

运算符号在程序中是单个字符生成的,所以没有考虑"++"

测试相应的加减乘除功能和除0异常等

设计测试框架, 模拟测试数据:

  • 加减乘除功能
  • 除0错误


加减乘除功能:

//testadd
        cal.add(5, 1, 6, 1);//  5+6
        assertEquals("11", cal.result);
        cal.add(8, 1, 9, 1);//  8+9
        assertEquals("17", cal.result);
        cal.add(3, 2, 5, 7);// 3/2+5/7
        assertEquals("31/14", cal.result);
        cal.add(3, 7, 6, 8);// 3/7+3/4
        assertEquals("33/28", cal.result);

        //testsub
        cal.substract(5, 1, 4, 1);//  5-4
        assertEquals("1", cal.result);
        cal.substract(7, 1, 8, 1);//  7-8
        assertEquals("-1", cal.result);
        cal.substract(6, 7, 4, 47);//  6/7-4/47
        assertEquals("254/329", cal.result);
        cal.substract(11, 4, 7, 12);// 11/4-7/12
        assertEquals("13/6", cal.result);

        //testmul
        cal.multiply(4, 1, 7, 1);// 4*7
        assertEquals("28",cal.result );
        cal.multiply(7, 9, 5, 6);//  7/9*5/6
        cal.multiply(11, 15, 7, 16);// 11/15*7/16
        assertEquals("77/240",cal.result );
        cal.multiply(8, 9, 6, 7);// 8/9*6/7
        assertEquals("16/21",cal.result );

        //testrem
        cal.remainder(7, 9, 8, 11);// 7/9÷8/11
        assertEquals("77/72", cal.result);
        cal.remainder(9, 14, 5, 7);// 9/14÷5/7
        assertEquals("9/10", cal.result);
        cal.remainder(3, 11, 5, 9);// 3/11÷5/9
        assertEquals("27/55", cal.result);
        cal.remainder(5, 1, 0, 0);// 5÷7
        assertEquals("参数错误", cal.result);

加减乘除的功能测试通过assertequal中expected和actural值比较来判断功能的准确性

除0错误:

    public void remainder(int x,int y,int z,int n){
        try{
        int fenzi=x*n;
        int fenmu=y*z;
        yuefen yf=new yuefen();
        int temp=yf.yuefen(fenzi, fenmu);
        fenzi=fenzi/temp;
        fenmu=fenmu/temp;
        if(fenzi==fenmu)
        {
            result=1+"";
        }
        else
        {
            result=fenzi+"/"+fenmu;
        }
        if(fenzi%fenmu==0)
            result=(fenzi/fenmu)+"";
        }catch(java.lang.ArithmeticException e){
            result="参数错误";
        }

除0错误产生的异常捕获并将结果置为“参数异常“反馈

测试中遇到的问题及解决:

  • 最早是将整数与分数的计算分开的,原先的计算结果都没有错误,但是后面将分数和整数的计算合并后出现了一些乘法和除法的错误,将程序分成小模块后纠错就比较容易,直接去乘法和除法的代码那边将相应变量改对就OK了

单元测试:

小结与感受:

在测试过程中更加体会到了代码规范的重要性,再次使用陈麟凤同学的代码虽然印象还有但是还是有一些因为没有注释等原因还要等他来解释,所以耽误了一些时间。希望下次如果我们有再进行编程时能在一些关键点做一些必要的注释。

评价下伙伴:

先来一片面包:两位同学都是虚心听取其他人的想法的,能相互讨论从而得出更加正确的更加简便的做法,例如分数以及整数计算的一起使用。这种能听取他人想法的行为是值得我们大家一起学习的。

在把肉放上:有时候会想着希望能做得更好点,但是可能因为我们的编程功底都不高所以都做得不是很好。

再来一片面包: 想要做好不是一个人的事,有的同学可能比较懒惰,做得比较慢,比较拖沓。这是需要改进的。

PSP


Personal Software Process Stages


Estimated Time(min)


Actual Time (min)


计划


10


6


·任务估计


10


6


开发


91


155


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


10


8


·生成设计文档


5


6


·设计复审


5


3


·代码规范


1


2


·具体设计


5


8


·具体编码


50


69


·代码复审


5


2


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


10


20


报告


30


24


·测试报告


15


18


·计算工作量


10


6



结对编程2

时间: 2024-08-04 14:32:15

结对编程2的相关文章

结对编程

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作.一个人输入代码,而另一个人审查他输入的每一行代码.输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员).两个程序员经常互换角色. 在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理.这样使得驾驶者可以集中全部注意力在完成当前任务的"战术"方面.观察员当作安全网和指南.结对编程对开发程序有很多好处.比如增加纪律性,写出更好的代码等.

软件工程------结对编程第二次

这一周我(1551426)还是继续和我们组的成员(1551419)两人一起结对编程,除此之外,我们还设计了数据库的,总共三个关系模式 room(roomtype,dailyprice,deposit) roominfo(roomnumber,roomtype,isfree) guest(id, startday,phonenumber,roomnumber,name,sex,stayday) 起初我们把room和guest 放在了一起,后来发现数据的冗余以后马上换成三个关系表. 这是我们的关系图

软工第二次实验——结对编程

1丶小组成员 卫瑞亮 1500802122 王玉卿 1500802099 2.代码链接 https://coding.net/u/qq1062718477/p/SE_task/git/commits/master/ 3.软件界面 4.结对编程照片 5.心得体会 到今天接触结对编程差不多两周了,对于结对编程有了更加深刻地理解,通过结对编程,我们可以及时的发现并解决后面可能会出现的问题,并且还能提升我们与别 人进行交流的能力,与人沟通对我们来说也是极为重要的,同时,结对编程使我们频繁进行交流,而且要

结对编程2——单元测试

 周迪 201421123089    黄睿 201421123069  coding.net 地址:http://git.oschina.net/hr2324/SoftEngHW 1.我们的代码要使它的利用率大大提高,所以我们要通过单元测试进一步完善代码,发现细小的错误.于是这次就用JUnit进行了简单四则运算的单元测试. a.需求分析:(1)在上次的基础上将计算模块单独创建一个类: (2)针对计算类做单元测试: (3)主要做整数和真分数的加减乘除: (4) 增量式开发,用git命令提交到co

结对编程2—— 单元测试

结对伙伴:201421123048,201421123036 coding.net 地址:https://git.coding.net/YJh_/PairProject_2.git a. 需求分析:测试上有哪些详细的需求? 1.把计算模块提取出来,单独创建一个类2.通过单元测试代码,测试加法是否能正确工作3.通过单元测试代码,测试加减乘除功能4.通过单元测试代码,测试计算类对于各种参数的支持 输入是有错误的,例如 "1 ++ 2" 在数值范围是 -1000 .. 1000 的时候,传进

结对编程-感想

这次大作业采用了结对编程的方式进行开发.我和赵宇航在这次结对编程中fix了绑定的bug以及进行了jmeter的配置和性能测试. 首先,我们通过讨论发现代码是正确的,但是绑定时会提示密码错误,我们思考了很久,突然想到,我们之前在"初始微信"功能开发时,将密码进行了base64加密,所以我们在调用的时候,需要用base64解码之后才可以,于是我们成功的解决了这个问题. 接下来,我们进行了jmeter的配置和学习,进行了简单的性能测试. 通过这次结对编程,我们发现结对编程确实有很多好处. 1

结对编程的体会

今天晚上,我与队友赵纯艺进行了一次结对编程,共同完成"微信抢票菜单调整"这个任务.因为在之前的开发中,我主要负责前后端借口,只是和数据库打交道,对与微信有关的接口不是很熟悉,所以在获取当前菜单和设置当前菜单时遇到了一点问题. 刚开始的时候,因为我们对彼此的工作都不是很了解,所以我花了比较长的时间向她说明我这部分的机制是如何运作的,理解了我的困惑后,她表示虽然记不太清楚,但是记得<开发指南>里有相关函数.通过查询文档,我们找到了对应的函数get_wechat_menu()和u

结对编程作业

这是第一次尝试结对编程,在本次结对编程作业中为了更好地体会它的好处和特点,我和我的搭档分别扮演了驾驶员和领航者的角色. 作为驾驶员:在我编程的过程中,出现了一些小问题,比如忘加分号,这些小问题可以及时的发现.有时我也会问我的领航者一些疑问,省去了上网查资料的过程,提高了编程的效率.在代码复审的过程中,有的问题我在自己调试的时候没有发现.比如输入某些数据的时候,离黄金点最近的玩家得0分.还有程序的功能上的一些缺陷,也被进一步完善.编程的时候我们会有一些交流,交流使我们互相更加了解对方的编程风格,在

结对编程体会

两个人思想会有不同的时候,会有讨论争执和妥协的时候,在试用了两种方法后,选择了一个比较好的编写程序,结对编程减少了自己一个人想不到问题浪费的时间,结对编程有利于自己编程能力的提高,也有利于交流思想.

构建之法阅读笔记三—结对编程

构建之法阅读笔记三——结对编程 何谓结对编程,结对编程就是程序员肩并肩,平等的,互补的进行开发工作,他们使用同一台电脑,编写同样的程序,一起分析,一起设计,一块交流想法. 然而我以前却并不是这样做的,我以前喜欢在没人打扰的环境下写代码,我觉得有人在我身边看着,会影响我的思路,还有我个人自尊心比较强,不太喜欢被人指指点点,所以每次都是,我写完代码之后,自己先找自己的bug,每当自己实在找不到之后,才会请教大神,但是有时候可能由于自己的能力不足,往往一个很简单的问题,我自己发现就会花费很久的时间,让