java for xp_20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

一、编码标准

编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。

下面是没有最基本的缩进的一个程序:

public class CodeStandard {

public static void main(String [] args){

StringBuffer buffer = new StringBuffer();

buffer.append('S');

buffer.append("tringBuffer");

System.out.println(buffer.charAt(1));

System.out.println(buffer.capacity());

System.out.println(buffer.indexOf("tring"));

System.out.println("buffer = " + buffer.toString());

if(buffer.capacity()<20)

buffer.append("1234567");

for(int i=0; i

System.out.println(buffer.charAt(i));

}

}

在IDEA中选中Code→Reformate Code,将代码按IDEA的规范缩进,看起来就好了很多:

b852ca8bafa03361809e9388f4f870ee.png

Code菜单中除了Reformate Code外,还有很多实用的功能。个人觉得比较好用方便的是Move Line Down(Alt+Shift+↓)和Move Line Up(Alt+Shift+↑),用快捷键更方便。

任务二:下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例

搭档编写的Complex类如下:

ae48ac5efdc945daaf331509a76dec67.png

根据她的代码编写ComplexTest,加入不少于三个单元测试用例,代码如下:

package week9;

import junit.framework.TestCase;

import org.junit.Test;

import static org.junit.Assert.*;

/**

* Created by lxkj on 2017/5/4.

*/

public class ComplexTest28 extends TestCase {

Complex c1 = new Complex(0.0, 3.0);

Complex c2 = new Complex(-1.0, -1.0);

Complex c3 = new Complex(-5.0, 2.0);

@Test

public void testAdd2(){

assertEquals(new Complex(-2.0,-2.0),c2.ComplexAdd(c2));

//自加

// assertEquals(new Complex(-1.0,2.0),c2.ComplexAdd(c1));

// assertEquals("-5.0+5.0i", c1.ComplexAdd(c3).toString());

assertEquals("-1.0+2.0i", c2.ComplexAdd(c1).toString());

// assertEquals("-1.0+2.0i", c1.ComplexAdd(c2).toString());

}

@Test

public void testSub2(){

assertEquals("7.3+0.3999999999999999i", new Complex(2.3,2.4).ComplexSub(c3).toString());

assertEquals("2.0 -1.0i", c2.ComplexSub(new Complex(-3.0,0.0)).toString());

}

//普通减法

@Test

public void testMulti2(){

assertEquals("-5.0+4.0i", c3.ComplexMulti(new Complex(1.0,2.0)).toString());

}

//自乘

@Test

public void testDiv2(){

assertEquals("1.5+4.0i", c3.ComplexDiv(c2).toString());

//自除

assertEquals("0.0", c1.ComplexDiv(new Complex(1.0,0.0)).toString());

assertEquals("0.0", c2.ComplexDiv(c1).toString());

//边缘测试

}

}

任务三:下载搭档的代码,至少进行三项重构

重构,是让我们在不为系统带来新的bug的前提下,使其更加易于阅读、易于维护和易于变更。

选择了搭档简易计算器的代码,重构如下:

package week11;

/**

* Created by DELL on 2017/5/2.

*/

public class Calc2 {

public static void main(String [] args) {

int result = 0;

boolean flag=false;

double out = 0;

double a = 0, b = 0;

if (args.length != 3) {

System.out.println("Usage: java Calc operato1 operand(+ - * / %) operator2");

}

//+ - x / 和%运算

int x, y;

x = Integer.parseInt(args[0]);

y = Integer.parseInt(args[2]);

a = Double.parseDouble(args[0]);

b = Double.parseDouble(args[2]);

switch (args[1]) {

case "+":

result = add(x, y);

break;

case "-":

result = Sub(x, y);

break;

case "X":

out = Multi(a, b);

flag = true;

break;

case "/":

result = chu(x, y);

break;

case "%":

result = yu(x, y);

break;

default:

System.out.println("输入错误!");

break;

}

if (flag)

System.out.println(args[0] + " " + args[1] + " " + args[2] + " = " + out);

else

System.out.println(args[0] + " " + args[1] + " " + args[2] + " = " + result);

}

public static int add(int x,int y){

return x+y;

}

public static int Sub(int x,int y){

return x-y;

}public static double Multi(double x,double y){

return x*y;

}public static int chu(int x,int y){

return x/y;

}public static int yu(int x,int y){

return x%y;

}

}

运行结果如下:

bad9a3b0be13bf1a6e0d819a1b8f444a.png

任务四:以结对的方式完成Java密码学相关内容的学习,结合重构、git、代码标准等

我和搭档在学习Java密码学相关内容之后,选择了RSA算法。

经过重构之后的截图如下:

65155302f15c4a36407244df628a0e4f.png

实验遇到的问题及解决方案

问题1: 把搭档的项目git clone下来之后,发现用自己的账号push到她的项目上之后就无法再次push到自己的项目上。

解决方案: git现实的错误提示是远程仓库有的更新本地没有,需要进行git中的rebase。rebase之后再点击VCS→Update Project,之后再进行git add,commit,push,就可以推了。

实验体会与总结

本次实验算是第一次的结对编程实验,和搭档在结对编程的过程中Git出现了各种各样的错误,在网上查找了资料,也去问过了同学,总算是解决了,也算为以后的结对编程路打下了一点基石。希望以后能做的越来越好吧。

我的码云项目链接:20155328

搭档的码云项目链接:20155325

|步骤 |耗时 |百分比 |

| -------- | :----------------😐

|需求分析 |30min | 17.65% |

|设计 |35min | 20.59% |

|代码实现 |40min | 23.53% |

|测试 | 30min | 17.65% |

|分析总结 |35min | 20.59% |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值