20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告
20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告
一、实验报告封面
课程:Java程序设计 班级:1652班 姓名:王彦博 学号:20165219 成绩:
指导教师:娄嘉鹏 实验日期:2018年4月30日
实验时间:15:45 - 17:20
实验序号:实验三
实验名称:敏捷开发与XP实践
实验内容:
XP基础
XP核心实践
相关工具
实验要求:
1 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2 完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);
3 实验报告中统计自己的PSP(Personal Software Process)时间;
4 严禁抄袭。
二、实验内容及步骤
(一)alibaba 插件与Code菜单
Move Line/statement Down/Up:将某行、表达式向下、向上移动一行
suround with:用 try-catch,for,if等包裹语句
comment with line/block comment:把选中它区域变成注释
show reformat file dialog:按照格式自动对齐
Optimize imports:优化imports
Insert Live Template:插入 Live Template 缩写
例如:comment with line/block comment,把代码中选中的部分变成注释

(二)Complex代码添加测试用例
同伴代码
public class Complex {
// 定义属性并生成getter,setter
private double r;
private double i;
// 定义构造函数
public Complex(double r, double i) {
this.r = r;
this.i = i;
}
public static double getRealPart(double r) {
return r;
}
public static double getImagePart(double i) {
return i;
}
//Override Object
public boolean equals(Object obj) {
Complex complex = (Complex) obj;
if (complex.r != r) {
return false;
}
if (complex.i != i) {
return false;
}
return true;
}
public String toString() {
String str = new String();
if (i == 0) str = r + "";
else if (i < 0) str = r + "" + i + "i";
else str = r + "" + "+" + i + "i";
return str;
}
// 定义公有方法:加减乘除
Complex ComplexAdd(Complex a) {
return new Complex(r + a.r, i + a.i);
}
Complex ComplexSubtract(Complex a) {
return new Complex(r - a.r, i - a.i);
}
Complex ComplexMultiply(Complex a) {
return new Complex(r * a.r - i * a.i, r * a.i + i * a.r);
}
Complex ComplexDivide(Complex a) {
return new Complex((r * a.r + i * a.i) / (a.r * a.r + a.i * a.i), (i * a.r - r * a.i) / (a.r * a.r + a.i * a.i));
}
}
添加测试用例
import junit.framework.TestCase;
import org.junit.Test;
import static org.junit.Assert.*;
public class ComplexTest extends TestCase {
Complex a=new Complex(1,2);
Complex b=new Complex(-2,-1);
Complex d=new Complex(4,-2);
@Test
public void testequals(){
assertEquals(false,a.equals(b));
assertEquals(false,b.equals(c));
assertEquals(true,new Complex(1.0,2.0).equals(a));
}
@Test
public void testAdd(){
assertEquals(new Complex(-1,1),a.ComplexAdd(b));
assertEquals(new Complex(5,0),a.ComplexAdd(c));
}
@Test
public void testSubtract(){
assertEquals(new Complex(3,3),a.ComplexSubtract(b));
assertEquals(new Complex(-3,4),a.ComplexSubtract(c));
}
@Test
public void testMultiply(){
assertEquals(new Complex(0,-5),a.ComplexMultiply(b));
assertEquals(new Complex(17,4),new Complex(3,2.5).ComplexMultiply(c));
}
@Test
public void testDivide(){
assertEquals(new Complex(0,0.5),a.ComplexDivide(c));
assertEquals(new Complex(-2,-1),b.ComplexDivide(new Complex(1,0)));
}
}
测试通过的截图

git log的截图


(三)重构
Rename可以给类、包、方法、变量改名字,增加代码的可读性。

Refactor->Encapsulate Field...用来封装成员变量

Source->Generate toString()...用来产生一个toString方法
(四)以结对方式完成Java密码学的学习
凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换
凯撒密码的加密过程可记为如下一个变换:
c≡m+k mod n (其中n为基本字符个数)
同样,解密过程可表示为:
m≡c+k mod n (其中n为基本字符个数)
成果如下:

重构
将Code,Rename为Caesar,并为p赋初值0

三、实验体会
通过本次实验,又一次体会到了结对编程的魅力,通过学习重构代码,也理解了,代码的规范性以及可读性的重要意义。
四、PSP
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 20min | 8% |
| 设计 | 60min | 25% |
| 代码实现 | 120min | 50% |
| 测试 | 10min | 4% |
| 分析总结 | 30min | 13% |
20165219 《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 ...
随机推荐
- Linux - rpm 软件包管理
rpm 是 Red-Hat Package Manager(rpm 软件包管理器)的缩写 rpm 的命名规则: 第一部分为 rpm 软件包的名称,第二部分是版本号,第三部分是版本发布次数,第四部分是软 ...
- Django界面不能添加中文解决办法
Django项目部署好后,界面添加中文会报错,解决办法: 创建数据库时要指定编码格式: CREATE DATABASE blog CHARACTER SET utf8; 如果已经创建完毕则修改: al ...
- Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)
Android UI学习 - ListView -- :: 标签:Android UI 移动开发 ListView ListActivity 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ...
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- Java多线程-新特征-原子量
所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的. 为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题.在Java5之前,可以通过volatile.synch ...
- 手动去除uTorrent中广告的步骤(V3.4.9依然有效)
1.开打utorrent,依次点击选项->设置->高级. 在“高级”界面中,你会看到“过滤器”,在“过滤器”右侧的框中输入“offers”. 这时会在下面框中看到“offers.left_ ...
- rdlc设置指定列隐藏
此用户帐户对提案名称列不可见
- Spring总结九:事务管理机制
何为事务 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL ...
- google/dense_hash_map
这个库使用时需要注意的地方: 1.在插入数据之前,需要先调用set_empty_key()设置一个空Key,Key的值可以为任意符合类型的.但请注意之后插入的Key不能和空Key相同,否则会abort ...
- 【HDU4307】Matrix
本篇博客基本全篇转自https://www.cnblogs.com/staginner/archive/2012/08/13/2636826.html,太强啦ORZ 题意 A是个1*n的矩阵,每个元素 ...