20165201 实验三敏捷开发与XP实践

##20165201 实验三敏捷开发与XP实践

敏捷开发与XP实践-1

实验目的与要求:

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));
}
}

实验内容及结果截图:

  • Code->Reformate Code

  • 重新格式化之后

  • 我发现Code->Surround with...功能很好用,例如我们想改变自己代码的部分逻辑结构,加个if语句,直接用这个功能就好了,先选择范围

  • 再点Code->Surround with...

  • 选要添加的语句~

  • 结果如下

敏捷开发与XP实践-2

实验目的与要求:

  • 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
  • 提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

实验内容及结果截图:

  • 搭档的Complex代码
import java.lang.*;
public class Complex {
    // 定义属性并生成getter,setter
    public void setRealpart(double R){
        RealPart=R;
    }
    public double getRealpart(){
        return RealPart;
    }
    public void setImagePart(double I){
        ImagePart=I;
    }
    public double getImagePart(){
        return ImagePart;
    }

    double RealPart;
    double ImagePart;
    // 定义构造函数
    public Complex(double R,double I){
        RealPart=R;
        ImagePart=I;
    }

    //Override Object
    public boolean equals(Complex obj){
        if(this.getRealpart()==obj.getRealpart() && this.getImagePart()==obj.getImagePart())
            return true;
        else
            return false;
    }
    public String toString(){
        return RealPart+"+"+ImagePart+"i";
    }

    // 定义公有方法:加减乘除
    public Complex ComplexAdd(Complex a){
        return new Complex(this.RealPart+a.RealPart,this.ImagePart+a.ImagePart);
    }
    public Complex ComplexSub(Complex a){
        return new Complex(this.RealPart-a.RealPart,this.ImagePart-a.ImagePart);
    }
    public Complex ComplexMulti(Complex a){
        return new Complex(this.RealPart*a.RealPart-this.ImagePart*a.ImagePart,
                this.RealPart*a.ImagePart+this.ImagePart*a.RealPart);
    }
    public Complex ComplexDiv(Complex a){
        double x=this.RealPart;
        double y=this.ImagePart;
        double m=a.RealPart;
        double n=a.ImagePart;
        return new Complex((x*m+y*n)/(m*m+n*n),(y*m-x*n)/(m*m+n*n));
    }
}
  • 加入不少于三个JUnit单元测试用例,并且测试成功

    我加入了

    @Test
    public void testAdd_2(){
        assertEquals("5.0+0.0i",p3.ComplexAdd(p4).toString());
        System.out.println(p3.ComplexAdd(p4));
    }
    @Test
    public void testSub_2(){
        assertEquals("-1.0+2.0i",p3.ComplexSub(p4).toString());
        System.out.println(p3.ComplexSub(p4));
    }
    @Test
    public void testMut_2(){
        assertEquals("7.0+1.0i",p3.ComplexMulti(p4).toString());
        System.out.println(p3.ComplexMulti(p4));
    }
    @Test
    public void testDiv_2(){
        assertEquals("0.5+0.5i",p3.ComplexDiv(p4).toString());
        System.out.println(p3.ComplexDiv(p4));
    }
  • 全部代码如下
import junit.framework.TestCase;
import org.junit.Test;
public class ComplexTest extends TestCase {
    Complex p1=new Complex(1,1);
    Complex p2=new Complex(1,-1);
    Complex p3=new Complex(2,1);
    Complex p4=new Complex(3,-1);
    @Test
    public void testAdd(){
        assertEquals("2.0+0.0i",p1.ComplexAdd(p2).toString());
        System.out.println(p1.ComplexAdd(p2));
    }
    @Test
    public void testSub(){
        assertEquals("0.0+2.0i",p1.ComplexSub(p2).toString());
        System.out.println(p1.ComplexSub(p2));
    }
    @Test
    public void testMut(){
        assertEquals("2.0+0.0i",p1.ComplexMulti(p2).toString());
        System.out.println(p1.ComplexSub(p2));
    }
    @Test
    public void testDiv(){
        assertEquals("0.0+1.0i",p1.ComplexDiv(p2).toString());
        System.out.println(p1.ComplexDiv(p2));
    }
    @Test
    public void testAdd_2(){
        assertEquals("5.0+0.0i",p3.ComplexAdd(p4).toString());
        System.out.println(p3.ComplexAdd(p4));
    }
    @Test
    public void testSub_2(){
        assertEquals("-1.0+2.0i",p3.ComplexSub(p4).toString());
        System.out.println(p3.ComplexSub(p4));
    }
    @Test
    public void testMut_2(){
        assertEquals("7.0+1.0i",p3.ComplexMulti(p4).toString());
        System.out.println(p3.ComplexMulti(p4));
    }
    @Test
    public void testDiv_2(){
        assertEquals("0.5+0.5i",p3.ComplexDiv(p4).toString());
        System.out.println(p3.ComplexDiv(p4));
    }
}
  • 提交搭档项目git log的截图,包含上面git commit的信息

敏捷开发与XP实践-3

实验目的与要求:

  • http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
  • 完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

实验内容及结果截图:

  • 搭档的代码如下:
import java.sql.*;

public class shm {
    public static void main(String args[]) {
        Connection con = null;
        Statement sql;
        ResultSet rs;
        float di = 50.0f;
        float gao = 50.0f;
        String country_low = "A";
        String country_high = "B";
        try {
            /* 加载JDBC_MySQL驱动 */
            Class.forName("com.mysql.jdbc.Driver");
        } catch (Exception e) {
        }
        String uri = "jdbc:mysql://localhost:3306/world?useSSL=true";
        String user = "root";
        String password = "";
        try {
            con = DriverManager.getConnection(uri, user, password); //连接代码
        } catch (SQLException e) {
        }
        try {
            sql = con.createStatement();
            rs = sql.executeQuery("SELECT * FROM country"); //查询mess表
            while (rs.next()) {
                String name = rs.getString(2);
                float LifeExpectancy = rs.getFloat(8);
                if (LifeExpectancy < di && LifeExpectancy>0) {
                    di = LifeExpectancy;
                    country_low = name;
                }
                if (LifeExpectancy > gao) {
                    gao = LifeExpectancy;
                    country_high = name;
                }
            }
            con.close();
        }
        catch (SQLException e) {
            System.out.println(e);
        }

        System.out.printf("平均寿命最长的国家为: %s", country_high);
        System.out.printf("平均寿命最短的国家为: %s\n", country_low);
    }
}
  • 重构成功的截图如下:

    (我重构了类名shm->Life;变量名float di = 50.0f; float gao = 50.0f;->float low = 50.0f; float high = 50.0f;;并规范了注释)

敏捷开发与XP实践-4

实验目的与要求:

实验内容及结果截图:

  • 我们的码云链接:

    DES算法

    RSA算法

  • 我们的代表性成果截图(DES算法)

??运行java Skey_DES,在当前目录下将生成文件key1.dat,其中包含的密钥可以用于使用Triple-DES算法的加密和解密

??先创建文件输出流对象,在其参数中指定文件名,如keykb1.dat。然后执行文件输出流的write( )方法将第2步中得到的字节数组中的内容写入文件

??加密结果是字节数组,对其可作各种处理,如在网上传递、保存在文件中等。我们将其保存在文件Senc.dat中

??先获取密文和秘钥,最后将明文生成字符串加以显示

  • 我们的代表性成果截图(RSA算法)

实验过程中的问题

??这次的实验我们遇到了两个难题,重构代码的时候,我们自己写的代码本身就不够规范,给结对伙伴改代码就比较费劲,今后还要多加规范地练习;其次是对DES和RSA密码算法不够熟悉,密码学的课当时还没讲到,所以理解起来很晦涩难懂。

实验体会与总结

??我深刻地体会到了结对学习的好处,那就是两个人能够及时互相找出并改正错误,一个班那么多人,不可能等老师帮着一个一个找,而结对形式恰恰弥补了这一点~和搭档的合作很愉快~

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

原文地址:https://www.cnblogs.com/cbmwtsl/p/9000366.html

时间: 2024-08-04 02:22:24

20165201 实验三敏捷开发与XP实践的相关文章

20145301 实验三 &quot;敏捷开发与XP实践&quot;

20145301 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重构 git 上传代码 查看文件是否有修改的 将新建的文件传入本地 git push 文件,成功上传文件 再 git push 一次 所有东西已经上传过了 git 相互更改代码 新建存储空间 确定合作开发者地址 下载合作开发者的代码工程 修改代码 上传代码 结果: 实现代码的重构 源代码(以实验一代码为例)   重构后代码如下:   重构: 小组成员链

20145326蔡馨熠 实验三 &quot;敏捷开发与XP实践&quot;

20145326蔡馨熠 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 一.git上传代码 首先我通过git上传一个名为“shiyansan”的代码. 设置权限: 然后我的partner从网上把这个文档下载到他的电脑中. 然后再修改,再上传: 我的partner:-  [20145211黄志远开源托管代码](https://git.oschina.net/nostalgia_) 二.敏捷开发与XP 软件工程是把

20145311王亦徐 实验三 &quot;敏捷开发与XP实践&quot;

20145311王亦徐 实验三 "敏捷开发与XP实践"程序设计过程 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上传代码 查看代码是否有修改: 发现no changes 将代码上传到自己的开源中国项目中: 新建存储空间.然后进行git add.git commit.git push 两人运用版本控制进行合作修改代码: 首先通过对方的地址将代码下载下来:(git clone) 对代码进行修改后再上传: 合作对方对我的代码进行修改后再上传的结果 实

JAVA课程实验报告 实验三 敏捷开发与XP实践

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉鹏             实验日期:2015.5.29 实验密级:         预习程度:                     实验时间:15:30--18:00 仪器组次:         必修/选修: 选修             实验序号:3 实验名称:实验三 敏捷开发与XP实践 实

20155208实验三 敏捷开发与XP实践

20155208实验三 敏捷开发与XP实践 一.实验内容 (1)在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. (2)下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例 (3)下载搭档的代码,至少进行三项重构 (4)以结对的方式完成Java密码学相关内容的学习,结合重构.git.代码标准等 二.实验步骤 (1)在IDEA中使用工具(Code->Reformate Code)把下

20165220 实验三 敏捷开发与XP实践 实验报告

实验三 敏捷开发与XP实践-1 实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题. 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己

20165329 实验三 敏捷开发与XP实践

20165329 实验三 敏捷开发与XP实践 一.敏捷开发与XP实践-1 实验要求: 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能.提交截图,加上自己学号水印. public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.app

20165226 实验三 敏捷开发与XP实践

实验三 敏捷开发与XP实践 实验目的 一.安装alibaba 插件,解决代码中的规范问题.在IDEA中使用工具(Code->Reformate Code)格式化代码,研究一下Code菜单,比较功能. 二.在码云上把自己的学习搭档加入自己的项目中,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试并上传代码至码云 三.下载搭档的代码,完成重构内容的练习. 四.结合重构,git,代码标准,以结对的方式完成Java密码学相关内容的学习. 实验内容及步骤 (一)安装aliba

20165322 实验三 敏捷开发与XP实践

实验三 敏捷开发与XP实践 安装alibaba 插件,解决代码中的规范问题 根据老师的教程:打开Settings ->Plugins -> Browse repositories...在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDEA生效 在IDEA左目录栏里右键.java文件图标,选择编码约规扫描,然后根据下方报错里修改自己的代码格式. 规范例代码截图 学习Code菜单 使用Code->Refor