博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
阅读量:5892 次
发布时间:2019-06-19

本文共 4396 字,大约阅读时间需要 14 分钟。

一、编码标准

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

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

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

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

1065527-20170507111058023-1766908375.png

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

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

搭档编写的Complex类如下:

1065527-20170507112920164-1154186279.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;    }  }

运行结果如下:

1065527-20170507114233992-1704104383.png

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

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

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

1065527-20170507115141757-40530940.png

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

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

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

实验体会与总结

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

我的码云项目链接:

搭档的码云项目链接:

步骤 耗时
需求分析 30min
设计 35min
代码实现 40min
测试 30min
分析总结 35min

转载于:https://www.cnblogs.com/zyqzyq/p/6820383.html

你可能感兴趣的文章
java中的Static class
查看>>
删除重复节点
查看>>
.net请求Webservice简单实现天气预报功能
查看>>
Loj #3056. 「HNOI2019」多边形
查看>>
【3】数据库的表设计和初始化
查看>>
Django rest framework的基本用法
查看>>
正则表达式匹配非需要匹配的字符串(标题自己都绕晕了)
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
c#基础--字符串的处理_string类
查看>>
父子类初始化时,子类的成员变量需要等父类初始化完后再进行本类初始化赋值。...
查看>>
《C语言》-(流程控制:顺序结构、选择结构、循环结构)
查看>>
怎样让pl sql developer 界面视图复位
查看>>
python基础数据类型
查看>>
扩展欧几里德算法
查看>>
mobile deeplearning
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
《玩转Django2.0》读书笔记-探究视图
查看>>
SOCK_STREAM & SOCK_DGRAM
查看>>
css的border的solid
查看>>