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<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
在IDEA中选中Code→Reformate Code,将代码按IDEA的规范缩进,看起来就好了很多:
Code菜单中除了Reformate Code外,还有很多实用的功能。个人觉得比较好用方便的是Move Line Down(Alt+Shift+↓)和Move Line Up(Alt+Shift+↑),用快捷键更方便。
任务二:下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例
搭档编写的Complex类如下:
根据她的代码编写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;
}
}
运行结果如下:
任务四:以结对的方式完成Java密码学相关内容的学习,结合重构、git、代码标准等
我和搭档在学习Java密码学相关内容之后,选择了RSA算法。
经过重构之后的截图如下:
实验遇到的问题及解决方案
问题1: 把搭档的项目git clone下来之后,发现用自己的账号push到她的项目上之后就无法再次push到自己的项目上。
解决方案: git现实的错误提示是远程仓库有的更新本地没有,需要进行git中的rebase。rebase之后再点击VCS→Update Project,之后再进行git add,commit,push,就可以推了。
实验体会与总结
本次实验算是第一次的结对编程实验,和搭档在结对编程的过程中Git出现了各种各样的错误,在网上查找了资料,也去问过了同学,总算是解决了,也算为以后的结对编程路打下了一点基石。希望以后能做的越来越好吧。
我的码云项目链接:20155328
搭档的码云项目链接:20155325
|步骤 |耗时 |百分比 |
| -------- | :----------------
20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...
- 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20155207王雪纯 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告
2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...
- 20162311 实验三 敏捷开发与XP实践 实验报告
20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...
- 20165308实验三 敏捷开发与XP实践实验报告
实验三 敏捷开发与XP实践实验报告 实验目的 安装 alibaba 插件,解决代码中的规范问题.再研究一下Code菜单,找出一项让自己感觉最好用的功能. 在码云上把自己的学习搭档加入自己的项目中,确认 ...
- 20155220 实验三 敏捷开发与XP实践 实验报告
20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- # 20155224 实验三 敏捷开发与XP实践 实验报告
20155224 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155226 实验三 敏捷开发与XP实践 实验报告
20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155311 实验三 敏捷开发与XP实践 实验报告
20155311 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 xp核心工具 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
随机推荐
- Who are you, What is the science
Please read: 地球月球有多大? 我们乃至我们赖以生存的地球, 甚至是我们硕大的银河系放到茫茫大宇中真的不过是一粒尘埃, 我们司空见惯的事物,我们习以为常的生活,我们笃定信奉的科学, 是不 ...
- 转一篇shell中关于各种括号的讲解
shell中各种括号的作用().(()).[].[[]].{} 一.小括号,圆括号()1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的 ...
- int vs Integer
在项目开发过程中,有时候在选择int还是Integer会有些纠结.今天就来聊一下这个问题.当然,下面所说的基本也适用于java中其他基本类型和其包装类型. Definitions: int是原始类型, ...
- hdu-3397 Sequence operation 线段树多种标记
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3397 题目大意: 0 a b表示a-b区间置为0 1 a b表示a-b区间置为1 2 a b表示a- ...
- 【Java虚拟机结构(第1部分)数据类型】摘要
<Java虚拟机规范(Java SE 7版)>作者:Tim Lindholm.Frank Yellin.Gilad Bracha.Alex Buckley 摘要:第二章 Java虚拟机结构 ...
- BZOJ2330:[SCOI2011]糖果(差分约束)
Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...
- 【[JSOI2007]建筑抢修】
各种瞎写 之后也不知道为什么就过了 刚看到这道题感觉确实是不会的,因为我贪心太差了\(QAQ\) 之后就随便\(yy\)呗 发现首先我们得排一下序,以\(t2\)也就是建筑的损坏时间为第一关键字从小到 ...
- 【react】慕课网视频学习笔记
1.JSX:语法糖,对语言的功能并没有影响,但更方便程序员使用,增强可读性. 2.jsFiddle:前端在线调试工具 3.为什么要把this额外声明成_self变量,因为window.setTimeo ...
- 4、Android-数据存储方案(SQLite数据库存储)
4.4.SQLite数据库存储 这是Android内置的数据库 是一款轻量级的关系型数据库 运算速度非常快.占用资源少.通常只需要几百kb的内存就够了 因而特别适合在移动端设备上使用 SQLite不仅 ...
- flink Window的Timestamps/Watermarks和allowedLateness的区别
Watermartks是通过additional的时间戳来控制窗口激活的时间,allowedLateness来控制窗口的销毁时间. 注: 因为此特性包括官方文档在1.3-1.5版本均未做改变,所以 ...