1. 程式人生 > >2018-2019-20175334實驗三《敏捷開發與XP實踐》實驗報告

2018-2019-20175334實驗三《敏捷開發與XP實踐》實驗報告

htm 右鍵 類方法 println git log 規約 tree 如何 name

2018-2019-20175334實驗三《敏捷開發與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菜單,找出一項讓自己感覺最好用的功能。提交截圖,加上自己學號水印。

  • 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));
    }
    }
  • 安裝alibaba插件
    技術分享圖片
  • 重啟IDEA後,在代碼中右擊點擊··編碼規約掃描··
    技術分享圖片
  • 規範後代碼
/**
 * CodeStandard
 *
 * @author 16487
 * @date 2019/4/28
 */
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());
        int n = 20;
        if (buffer.capacity() < n){
            buffer.append("1234567");
        }
        for (int i = 0; i < buffer.length(); i++){
            System.out.println(buffer.charAt(i));
        }
    }
}
  • Code菜單中我認為好用的功能:
    • Surround With (使用if-else、for、while等語句包裝代碼段)) Ctrl+Alt+T
      技術分享圖片
    • Comment with Line Comment ( 行註釋 ) Ctrl + /
      技術分享圖片

實驗三 敏捷開發與XP實踐-2

  • 在碼雲上把自己的學習搭檔加入自己的項目中,確認搭檔的項目加入自己後,下載搭檔實驗二的Complex代碼,加入不少於三個JUnit單元測試用例,測試成功後git add .; git commit -m "自己學號 添加內容";git push;

  • 提交搭檔項目git log的截圖,包含上面git commit的信息,並加上自己的學號水印信息。

  • 在碼雲上把自己的學習搭檔加入自己的項目中並下載學習搭檔的代碼
    技術分享圖片
    技術分享圖片

  • 加入不少於三個JUnit單元測試用例並測試
    技術分享圖片

  • 上傳至碼雲
    技術分享圖片
    技術分享圖片

  • 代碼:
/**
 * @Author 16487
 */
public class lyxComplex {
    double a,b;
    lyxComplex(double m,double n){//構造函數設置實部虛部
        a=m;
        b=n;
    }
    public double getRealPart(){//返回實部
        return a;
    }

    public double getImagePart() {//返回虛部
        return b;
    }
    public lyxComplex ComplexAdd(lyxComplex y){//加法
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a+m;
        double z=b+n;
        return new lyxComplex(x,z);
    }
    public lyxComplex ComplexSub(lyxComplex y){
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a-m;
        double z=b-n;
        return new lyxComplex(x,z);
    }
    public lyxComplex ComplexMulti(lyxComplex y){
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a*m;
        double z=b*n;
        return new lyxComplex(x,z);
    }
    public lyxComplex ComplexDiv(lyxComplex y){
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a/m;
        double z=b/n;
        return new lyxComplex(x,z);
    }
    @Override
    public java.lang.String toString() {
        String s="";
        if (a!=0&&b>0&&b!=1){
            s+= a+"+"+ b+"i";
        }
        else if(a!=0&&b==1){
            s+=a+"+i";
        }
        else if (a!=0&&b<0&&b!=-1){
            s+= a+""+b+"i";
        }
        else if (a!=0&&b==-1){
            s+=a+"-i";
        }
        else if (a!=0&&b==0){
            s+=a;
        }
        else if (a==0&&b!=0){
            s+=b+"i";
        }
        else if (a==0&&b==0){
            s+="0.0";
        }
        return s;
    }
}
/**
 * @Author 16487
 */
import junit.framework.TestCase;
import org.junit.Test;

public class lyxComplexTest extends TestCase {
    lyxComplex a=new lyxComplex(0,0);
    lyxComplex b=new lyxComplex(1,1);
    lyxComplex c=new lyxComplex(-1,-1);
    lyxComplex d=new lyxComplex(20.16,53.10);
    lyxComplex e=new lyxComplex(2,3);
    @Test
    public void testgetReal(){
        assertEquals(0.0,a.getRealPart());
        assertEquals(-1.0,c.getRealPart());
        assertEquals(20.16,d.getRealPart());
    }
    @Test
    public void testgetIma(){
        assertEquals(0.0,a.getImagePart());
        assertEquals(-1.0,c.getImagePart());
        assertEquals(53.1,d.getImagePart());
    }
    @Test
    public void testComAdd(){
        assertEquals("0.0",b.ComplexAdd(c).toString());
        assertEquals("1.0+i",a.ComplexAdd(b).toString());
        assertEquals("19.16+52.1i",c.ComplexAdd(d).toString());
        assertEquals("-1.0-i",a.ComplexAdd(c).toString());
        assertEquals("21.16+54.1i",b.ComplexAdd(d).toString());
        assertEquals("20.16+53.1i",a.ComplexAdd(d).toString());
    }
    @Test
    public void testComSub(){
        assertEquals("1.0+i",b.ComplexSub(a).toString());
        assertEquals("-21.16-54.1i",c.ComplexSub(d).toString());
        assertEquals("2.0+2.0i",b.ComplexSub(c).toString());
        assertEquals("-1.0-i",a.ComplexSub(b).toString());
    }
    @Test
    public void testComMul(){
        assertEquals("0.0",a.ComplexMulti(d).toString());
        assertEquals("-1.0-i",b.ComplexMulti(c).toString());
        assertEquals("-20.16-53.1i",c.ComplexMulti(d).toString());
        assertEquals("40.32+159.3i",d.ComplexMulti(e).toString());
        assertEquals("1.0+i",b.ComplexMulti(b).toString());
    }
    @Test
    public void  testComDiv(){
        assertEquals("0.0",a.ComplexDiv(b).toString());
        assertEquals("-1.0-i",c.ComplexDiv(b).toString());
        assertEquals("-0.5-0.3333333333333333i",c.ComplexDiv(e).toString());
        assertEquals("10.08+17.7i",d.ComplexDiv(e).toString());
        assertEquals("20.16+53.1i",d.ComplexDiv(b).toString());
    }
}

實驗三 敏捷開發與XP實踐-3

  • 實驗三 敏捷開發與XP實踐 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEA

  • 完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上自己的學號水印。提交搭檔的碼雲項目鏈接。

  • 問題一:所有的類都必須添加創建者信息
  • 按照格式,添加作者和日期
    技術分享圖片

  • 問題二:類、類屬性、類方法必須用javadoc規範
  • 將註釋格式改為/**內容*/
    技術分享圖片

  • 問題三:方法名、參數名、成員變量、局部變量沒有遵從駝峰形式
  • 將要修改的變量單擊右鍵,Refactor->Rename進行重命名
    技術分享圖片

  • 上傳至碼雲
    技術分享圖片

  • 代碼:
/**
 * Complex class
 *
 * @Author 16487
 * @date 2019/4/29
 */

public class lyxcomplex {
    double a,b;
    lyxcomplex(double m, double n){/**構造函數設置實部虛部*/
        a=m;
        b=n;
    }
    public double getRealPart(){//返回實部
        return a;
    }

    public double getImagePart() {/**返回虛部*/
        return b;
    }
    public lyxcomplex complexAdd(lyxcomplex y){/**加法*/
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a+m;
        double z=b+n;
        return new lyxcomplex(x,z);
    }
    public lyxcomplex complexSub(lyxcomplex y){/**減法*/
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a-m;
        double z=b-n;
        return new lyxcomplex(x,z);
    }
    public lyxcomplex complexMulti(lyxcomplex y){/**乘法*/
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a*m;
        double z=b*n;
        return new lyxcomplex(x,z);
    }
    public lyxcomplex complexDiv(lyxcomplex y){/**除法*/
        double m=y.getRealPart();
        double n=y.getImagePart();
        double x=a/m;
        double z=b/n;
        return new lyxcomplex(x,z);
    }
    @Override
    public java.lang.String toString() {
        String s="";
        if (a!=0&&b>0&&b!=1){
            s+= a+"+"+ b+"i";
        }
        else if(a!=0&&b==1){
            s+=a+"+i";
        }
        else if (a!=0&&b<0&&b!=-1){
            s+= a+""+b+"i";
        }
        else if (a!=0&&b==-1){
            s+=a+"-i";
        }
        else if (a!=0&&b==0){
            s+=a;
        }
        else if (a==0&&b!=0){
            s+=b+"i";
        }
        else if (a==0&&b==0){
            s+="0.0";
        }
        return s;
    }
}
/**
 * Complex class
 *
 * @Author 16487
 * @date 2019/4/29
 */

import junit.framework.TestCase;
import org.junit.Test;

public class lyxcomplexTest extends TestCase {
    lyxcomplex a=new lyxcomplex(0,0);
    lyxcomplex b=new lyxcomplex(1,1);
    lyxcomplex c=new lyxcomplex(-1,-1);
    lyxcomplex d=new lyxcomplex(20.16,53.10);
    lyxcomplex e=new lyxcomplex(2,3);
    @Test
    public void testgetReal(){
        assertEquals(0.0,a.getRealPart());
        assertEquals(-1.0,c.getRealPart());
        assertEquals(20.16,d.getRealPart());
    }
    @Test
    public void testgetIma(){
        assertEquals(0.0,a.getImagePart());
        assertEquals(-1.0,c.getImagePart());
        assertEquals(53.1,d.getImagePart());
    }
    @Test
    public void testComAdd(){
        assertEquals("0.0",b.complexAdd(c).toString());
        assertEquals("1.0+i",a.complexAdd(b).toString());
        assertEquals("19.16+52.1i",c.complexAdd(d).toString());
        assertEquals("-1.0-i",a.complexAdd(c).toString());
        assertEquals("21.16+54.1i",b.complexAdd(d).toString());
        assertEquals("20.16+53.1i",a.complexAdd(d).toString());
    }
    @Test
    public void testComSub(){
        assertEquals("1.0+i",b.complexSub(a).toString());
        assertEquals("-21.16-54.1i",c.complexSub(d).toString());
        assertEquals("2.0+2.0i",b.complexSub(c).toString());
        assertEquals("-1.0-i",a.complexSub(b).toString());
    }
    @Test
    public void testComMul(){
        assertEquals("0.0",a.complexMulti(d).toString());
        assertEquals("-1.0-i",b.complexMulti(c).toString());
        assertEquals("-20.16-53.1i",c.complexMulti(d).toString());
        assertEquals("40.32+159.3i",d.complexMulti(e).toString());
        assertEquals("1.0+i",b.complexMulti(b).toString());
    }
    @Test
    public void  testComDiv(){
        assertEquals("0.0",a.complexDiv(b).toString());
        assertEquals("-1.0-i",c.complexDiv(b).toString());
        assertEquals("-0.5-0.3333333333333333i",c.complexDiv(e).toString());
        assertEquals("10.08+17.7i",d.complexDiv(e).toString());
        assertEquals("20.16+53.1i",d.complexDiv(b).toString());
    }
}

我的代碼托管

學習搭檔的代碼托管

二、心得體會

  • 本次實驗教會了我如何寫出更加規範的代碼,還讓我了解到了code中的功能,並掌握了幾個實用的功能,
步驟 耗時 百分比
需求分析 20min 10%
設計 40min 20%
代碼實現 50min 25%
測試 50min 25%
分析總結 40min 20%

2018-2019-20175334實驗三《敏捷開發與XP實踐》實驗報告