2017-2018-2 20165206 实验三 《敏捷开发与XP实践》实验报告

一、实验报告封面

课程:Java程序设计 班级:1652班

姓名:韩啸 学号:20165206

指导教师:娄嘉鹏 实验日期:2018年4月28日

实验时间:15:35 - 17:15 实验序号:三

实验名称:敏捷开发与XP实践

二、实验内容

- 敏捷开发与XP实践-1

  1. 实验要求:

参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。

在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。

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));
}
}
  1. 实验过程:

编写代码一个重要的认识是“程序大多时候是给人看的”,编程标准使代码更容易阅读和理解,甚至可以保证其中的错误更少。

编码版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要因素。

我们可以在Idea中下载Alibaba Java Code Guidelines插件来让我们的编写更加优雅。

我们可以通过Jetbrains官方仓库来安装:打开 Settings ->Plugins -> Browse repositories...

在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDEA即可生效。

在Code中可以将代码格式化。格式化前代码是这样的:

格式化后是这样的:

Code中的功能不止于此,Override Methods、Implement Methods、Surround With等。我认为最好用的是Surround With这个功能,它能使用if-else、for、do-while等来修饰代码。

- 敏捷开发与XP实践-2

  1. 实验要求:

在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;

提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

  1. 实验过程:

搭档的Complex是这样的:

可以进行单元测试的方法有ComplexAdd()、ComplexSub()、ComplexMulti()、ComplexDiv()。

进行单元测试的运行截图为:

将代码上传码云的截图为:

- 敏捷开发与XP实践-3

  1. 实验要求:

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA

完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

  1. 实验过程:

    重构(Refactor),是指在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。

    其实说简单些就是在不改变程序本质的基础上,让程序更加的规范化。

    在Idea中有一个功能菜单就是用来重构的:

我下载搭档的代码为:

这段代码如果不进行修改同样可以运行,只是缺乏规范性。

其中的问题有:类名不符合编码标准、定义的变量过多、判断语句过长。

重构之后为:

- 敏捷开发与XP实践-4

  1. 实验要求:

参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。

提交学习成果码云链接和代表性成果截图,要有学号水印。

  1. 实验过程:

我和搭档进行的是凯撒密码的实现。凯撒密码的加密和解密算法相当来说比较简单。

其加密过程如下:

若明文记为m,密文记为c,秘钥为k,加密变换记为Encrypt(k,m),解密变换记为Decrypt(k,m))。凯撒密码的加密过程可记为如下一个变换:

c≡m+k mod n (其中n为基本字符个数)

同样,解密过程可表示为:

m≡c+k mod n (其中n为基本字符个数)

我们的加密代码为

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
System.out.print("请输入明文:");
Scanner a=new Scanner(System.in);
String b=a.nextLine();
System.out.print("请输入秘钥:");
Scanner c=new Scanner(System.in);
int key=c.nextInt();
Encrypt(b, key);
} public static void Encrypt(String str,int k){
String s="";
for (int i = 0; i < str.length(); i++) {
char c=str.charAt(i);
if(c>='a'&&c<='z'){
c+=k%26;
if(c<'a')
c+=26;
if(c>'z')
c-=26; }else if(c>='A'&&c<='Z'){
c+=k%26;
if(c<'A')
c+=26;
if(c>'Z')
c-=26;
}
s+=c;
}
System.out.println(str+" 加密为: "+s);
}
}

解密代码为:

import java.util.Scanner;

public class Test2 {
public static void main(String[] args) {
System.out.print("请输入密文:");
Scanner a=new Scanner(System.in);
String b=a.nextLine();
System.out.print("请输入秘钥:");
Scanner c=new Scanner(System.in);
int key=c.nextInt();
Decrypt(b, key);
} public static void Decrypt(String str,int k){
String s="";
for (int i = 0; i < str.length(); i++) {
char c=str.charAt(i);
if(c>='a'&&c<='z'){
c-=k%26;
if(c<'a')
c+=26;
if(c>'z')
c-=26; }else if(c>='A'&&c<='Z'){
c-=k%26;
if(c<'A')
c+=26;
if(c>'Z')
c-=26;
}
s+=c;
}
System.out.println(str+" 解密为: "+s);
}
}

码云链接

运行截图:

三、实验感悟

这次实验涉及的主要是重构以及与搭档合作完成任务。通过学习与实验,发现了以前一些代码书写不规范的地方,同时,也在与搭档合作的过程中学习到了许多东西,收获很大。

PSP

步骤 耗时 百分比
需求分析 5 10%
设计 5 10%
代码实现 20 40%
测试 5 10%
分析总结 15 30%

2017-2018-2 20165206 实验三 《敏捷开发与XP实践》实验报告的更多相关文章

  1. 20162311 实验三 敏捷开发与XP实践 实验报告

    20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...

  2. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...

  3. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  4. 20165308实验三 敏捷开发与XP实践实验报告

    实验三 敏捷开发与XP实践实验报告 实验目的 安装 alibaba 插件,解决代码中的规范问题.再研究一下Code菜单,找出一项让自己感觉最好用的功能. 在码云上把自己的学习搭档加入自己的项目中,确认 ...

  5. 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20155207王雪纯 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

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

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

  7. # 20155224 实验三 敏捷开发与XP实践 实验报告

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

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

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

  9. 20155311 实验三 敏捷开发与XP实践 实验报告

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

  10. 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告

    2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...

随机推荐

  1. python 三大框架之一Flask入门

    Flask轻量级框架,Flask是python中的轻量级框架. 打开终端 输入pip install Flask 命令 下载以及安装Flask框架 检查是否下载成功及能否使用 首先导入python环境 ...

  2. Zookeeper学习笔记3

    客户端的操作 zkCli.sh 官方文档 ls / [zookeeper] get / cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = ...

  3. python中的正则表达式--re模块

    参考博客:https://www.cnblogs.com/tina-python/p/5508402.html 这里说一下python的re模块即正则表达式模块,先列出其中涉及到的各种字符和模式等: ...

  4. nc 搭建环境流程及问题

    1 拷贝目录,包括eclipse及home两个文件夹 2 将jdk环境配置为home里的jdk,现在为1.5 3 在mde development 中设置数据库链接及应用服务及端口号 4 新建mde项 ...

  5. 打造一个上传图片到图床利器的插件(Mac版 开源)

    写markdown博客如何将截图快速上传到图床--记一个工具插件的实现(windows版 开源)(2017-05-31 20:23) 打造一个上传图片到图床利器的插件 鉴于写博客截图手动上传到图床的步 ...

  6. 027_nginx常见优化参数

    一.nginx.conf主配置文件 proxy_ignore_client_abort on; #不允许代理端主动关闭连接

  7. MySQL索引操作

    创建普通索引 CREATE INDEX index_name ON table_name(column1,column2); 另一种建立方式: ALTER TABLE table_name ADD I ...

  8. nginx 403 forbidden

    2018年3月9日14:11:59 总结一下: 1. 查看目录或者文件是否是可读可执行 2. 查看nginx配置的server -> location -> index指令, 看其列出的入 ...

  9. SwipeRefreshLayout,用最少的代码定制最美的上下拉刷新样式

    下拉刷新框架其实有很多,而且质量都比较高.但是在日常开发中,每一款产品都会有一套自己独特的一套刷新样式.相信有很多小伙伴在个性化定制中都或多或少的遇到过麻烦.今天我就给大家推荐一个在定制方面很出彩的一 ...

  10. Oracle_plsql_开发工具搭建最小化客户端

    一:资源下载获取路径: 二:配置方法 1:前提是安装好plsql开发工具 具体安装步骤略 2:配置 简化版的客户端工具. 具体格式:可以参照下文来修改编写使用. orcl_1521 = (DESCRI ...