结对编程作业

结对编程作业

组员

201521153024 陈艺祥
201521153025 刘永鑫
201521011378 黄畾

需求分析:

   1)能够完成基本四则运算;
   2)能够处理除数为0的情况;
   3)四则运算中运算符的优先级;
   4)处理基本输入错误;

代码规范

    1)使用Tab键进行首行缩进;
    2)变量,属性,方法采用驼峰命名法则;
    3)  每个函数或者方法都采用空行的方式进行区分;
    4)“}”空一行写,而{跟在代码后面;
    5)类名首字母大写,不使用驼峰命名法则;

提供项目开发的码云地址

     https://gitee.com/cyx5369/codes/z7agsrxvp8donijbk692y57

测试用例

    List<String> s=new ArrayList<String>();	
@Before
public void setUp() throws Exception {		
    s.add("1+2*3");
    s.add("4-5*6");
    s.add("7*1/2");
    s.add("8/2*4");
    s.add("19/0");
    s.add("9+/2");
    s.add("(1+2)*3");
    
}

@After
public void tearDown() throws Exception {
}


@Test
public void testcalculate() {
	
	assertEquals(CalString.calculate(s.get(0)), 7.0,1e-6);
	assertEquals(CalString.calculate(s.get(1)), -26.0,1e-6);
	assertEquals(CalString.calculate(s.get(2)), 3.5,1e-6);
	assertEquals(CalString.calculate(s.get(3)),16.0,1e-6);
	assertEquals(CalString.calculate(s.get(4)), 0.0,1e-6);
	assertEquals(CalString.calculate(s.get(5)), 0.0,1e-6);
	assertEquals(CalString.calculate(s.get(6)), 9,1e-6);
}
  
 在测试过程中发现该计算器无法识别除数为0的时候进行报错而是显示结果为0以及并没有办法进行优先级运算,为此我们在老师给的基础上进行了调整,重新编写了图形化界面,并使计算器能够识别括号等计算优先级高的符号,并且能够计算较长表达式;并在完成之后再一次进行了测试, 测试发现除数为0时输出的是错误提示,导致测试有不足之处。

以下是findbug/单元测试/代码覆盖率等的测试结果截图↓

小结感受

  这一次的结对编程和两个小伙伴一起完成,使用findbug等插件并不困难,也想出了一些测试实例来测试简易计算机中可能会出现的问题,也发现了一些问题,难点在于如何改进这些漏洞。在这次结对编程的过程里,我从他们身上学习到了很多,包括一些语法的运用。并且本身在代码规范方面有很大的错误,在组队的过程中纠正了这些不规范的地方,也让整个团队协作更加的流畅。刚开始时发现了计算机的一些不足之处,比方说0在分母作为除数时不显示错误而是显示0,或者是符号的乱序之后运算结果的不同以及计算机对于符号优先级无法识别等问题。都想尽办法去改进,但是依旧还有很多不足的地方,在接下来再更进一步去修改。切身感受到了对于代码编写的不熟练,很多问题想到了办法解决,却止步于语法。

以下是我的psp↓

posted @ 2017-10-14 21:57  ChenMouMou  阅读(139)  评论(3编辑  收藏  举报