實驗三 敏捷開發與XP實踐 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEAhtml
參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安裝alibaba 插件,解決代碼中的規範問題。java
在IDEA中使用工具(Code->Reformate Code)把下面代碼從新格式化,再研究一下Code菜單,找出一項讓本身感受最好用的功能。提交截圖,加上本身學號水印。git
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)); } }
/** * 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)); } } }
Surround With
(使用if-else、for、while等語句包裝代碼段)) Ctrl+Alt+T
Comment with Line Comment
( 行註釋 ) Ctrl + /
在碼雲上把本身的學習搭檔加入本身的項目中,確認搭檔的項目加入本身後,下載搭檔實驗二的Complex代碼,加入很多於三個JUnit單元測試用例,測試成功後git add .; git commit -m "本身學號 添加內容";git push;算法
提交搭檔項目git log的截圖,包含上面git commit的信息,並加上本身的學號水印信息。app
在碼雲上把本身的學習搭檔加入本身的項目中並下載學習搭檔的代碼
ide
加入很多於三個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實踐 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEA單元測試
完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上本身的學號水印。提交搭檔的碼雲項目連接。學習
按照格式,添加做者和日期
將註釋格式改成/**內容*/
將要修改的變量單擊右鍵,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()); } }
參考 http://www.cnblogs.com/rocedu/p/6683948.html,以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。
提交學習成果碼雲連接和表明性成果截圖,要有學號水印。
凱撒密碼的加密算法極其簡單。其加密過程以下:
在這裏,咱們作此約定:明文記爲m,密文記爲c,加密變換記爲E(k1,m)(其中k1爲密鑰),解密變換記爲D(k2,m)(k2爲解密密鑰)(在這裏k1=k2,不妨記爲k)。凱撒密碼的加密過程可記爲以下一個變換:c≡m+k mod n (其中n爲基本字符個數);一樣,解密過程可表示爲:m≡c+k mod n (其中n爲基本字符個數)
/** * @Author 16487 */ import java.util.Scanner; public class Caesar { public String path; public String estr=""; public char c; public static void main(String[] args) { Caesar c=new Caesar(); System.out.println("1.加密"); System.out.println("2.解密"); System.out.println("你要進行的操做:"); int num; Scanner scanner=new Scanner(System.in); num=scanner.nextInt(); System.out.println("情輸入你要進行操做的字符串"); c.path=scanner.next(); int n; Scanner scan=new Scanner(System.in); System.out.println("情輸入祕鑰"); n=scan.nextInt(); if(num==1) { c.jiami(c.path, n); System.out.println("加密事後的字符串爲:"+c.estr); } else { c.jiemi(c.path, n); System.out.println("解密事後的內容爲:"+c.estr); } } public void jiami(String key,int n) { for(int i=0;i<key.length();i++) { c=key.charAt(i); if(c>='A'&&c<='Z') { if(c+n%26<='Z') { estr+=(char)(c+n%26); } else { estr+=(char)('A'+((n-('Z'-c)-1)%26)); } } else if(c>='a'&&c<='z') { if(c+n%26<='z') { estr+=(char)(c+n%26); } else { estr+=(char)('a'+((n-('z'-c)-1)%26)); } } else if(c>='0'&&c<='9') { if(c+n%10<='9') { estr+=(char)(c+n%10); } else { estr+=(char)('0'+((n-('9'-c)-1)%10)); } } else { estr+=c; } } } public void jiemi(String key,int n) { for(int i=0;i<key.length();i++) { c=key.charAt(i); if(c>='A'&&c<='Z') { if(c-n%26>='A') { estr+=(char)(c-n%26); } else { estr+=(char)('Z'-((n-(c-'A')-1)%26)); } } else if(c>='a'&&c<='z') { if(c-n%26>='a') { estr+=(char)(c-n%26); } else { estr+=(char)('z'-((n-(c-'a')-1)%26)); } } else if(c>='0'&&c<='9') { if(c-n%10>='0') { estr+=(char)(c-n%10); } else { estr+=(char)('9'-((n-(c-'0')-1)%10)); } } else { estr+=c; } } } }
code
中的功能,並掌握了幾個實用的功能步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 20min | 10% |
設計 | 40min | 20% |
代碼實現 | 50min | 25% |
測試 | 50min | 25% |
分析總結 | 40min | 20% |