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%

java敏捷开发的落地与实施_20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告...相关推荐

  1. 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告

    实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...

  2. 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践

    20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实 ...

  3. 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践

    20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...

  4. 20155231 实验三 敏捷开发与XP实践

    20155231 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器&g ...

  5. 20155220 实验三 敏捷开发与XP实践 实验报告

    20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  6. 20155226 实验三 敏捷开发与XP实践 实验报告

    20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  7. 20175212童皓桢 实验三敏捷开发与XP实践实验报告

    20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...

  8. 实验三 敏捷开发与XP实践

    目录 实验三 敏捷开发与XP实践-1 实验步骤 实验截图 实验三 敏捷开发与XP实践-2 实验步骤 实验截图 代码链接 实验三 敏捷开发与XP实践-3 实验步骤 实验截图 代码链接 实验三 敏捷开发与 ...

  9. 20145326蔡馨熠 实验三 敏捷开发与XP实践

    20145326蔡馨熠 实验三 "敏捷开发与XP实践" 程序设计过程 一.实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 1.git上传代码 首先我通 ...

  10. 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告

    20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告 码云博客链接 https://gitee.com/dky20175312/dky_20175312_warehouse_ ...

最新文章

  1. 如何用mysql运行程序_如何在MySQL工作台中创建和执行程序
  2. GNU:GCC -O 优化等级
  3. iOS阶段学习第31天笔记(UINavigationBar介绍)
  4. PGIS 天地图主题颜色背景修改 图片 filter 蓝色 HTML CSS IMG filter 颜色矩阵在线计算 RGBA转换 SVG  feColorMatrix
  5. obj[key].obj['key'],obj.key的区别
  6. 含有ex的linux自动化工具,增加Linux自动化(RH294)和红帽认证工程师考试(EX294),附介绍...
  7. 三星android 8.0 流畅,三星Galaxy S8使用安卓Android 8.0:更顺滑更流畅
  8. 学会Zynq(11)RAW API的TCP和UDP编程
  9. 华为ENSP模拟器简易路由交换机分段划分Vlan
  10. 身份证里提取出生年月的方法(实用)
  11. 欺骗的艺术----(9)
  12. UnityGUI简介
  13. Ubuntu安装Anaconda详细步骤(Ubuntu21.10,Anaconda3)
  14. 基于FPGA数字示波器的显示
  15. 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
  16. 结构化数据丨Python爬虫基础入门系列(7)
  17. ioi2016aliens
  18. 超低噪声放大器DN-AP06
  19. 【机器学习】贝叶斯分类器【下】
  20. Spring事务与事务传播机制

热门文章

  1. poi 操作word文档,poi 向word插入图片,poi 向word入表格,XWPFParagraph 分段,XWPFDocument单元格合并,XWPFDocument 操作word
  2. 网络安全——病毒详解以及批处理01(自启动,修改密码 定时关机,蓝屏,进程关闭)
  3. 有趣且有意义的数字,你想到了什么?请不吝留言
  4. Android 仿照美团城市选择,微信小程序仿美团城市选择
  5. 结合分析和数值技术 Python 在基本力学应用
  6. am335x linux 的uboot工作流程.doc,am335x uboot2016.05 (MLO u-boot.img)执行流程(转)
  7. java中英文字幕和_为了边看美剧边学英语,我写了个字幕处理脚本
  8. Python 数据分析之 Numpy (三)
  9. Imbalance data——数据不平衡问题
  10. 计算机管理信息阶段性测验答案,管理信息系统阶段性学习测验一试题及答案(14页)-原创力文档...