代码改变世界

软件工程——结对练习

2017-10-14 20:53  conquered  阅读(206)  评论(1编辑  收藏  举报

结对编程练习——简易计算器

组员

201521153024 陈艺祥 201521153025 刘永鑫 201521011378 黄畾

需求分析:

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

代码规范

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

提供项目开发的码云地址

     https://gitee.com/lyx1995/codes/t0nvofu7zxpkq9ejgys2b19;

测试用例

    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时输出的是错误提示,导致测试有不足之处;




小结感受

 通过这次结对编程我充了解到了一个软件的出现是许多人共同努力的成果,虽然是一个小小的计算器可这其中牵涉到的各个过程和方面也足够让我学习了,像代码规范就很能够说明问题,刚开始的时候我们没有进行很深入设计规范法则,结果导致了我们出现了各种各样的错误,我写的方法别人根本没办法调用,其他人命名的属性等我也不知道,逻辑上混乱,但是经过了后来的规范,问题依然有,但是代码已经好了很多,并且在需求分析的时候,我们也更能感受到别人不同的角度,尽可能做到面向用户,但是从下面的psp表格看的出来我的编程水平真的还有待提高