1.沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程java
2.完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導算法
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)); } }
重構(Refactoring)就是經過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更趨合理,提升軟件的擴展性和維護性。設計模式
重構的目標
1.改進軟件設計使軟件更容易被理解
2.幫你找到bug
3.提升軟件的開發速度網絡
重構搭檔代碼架構
加密過程app
明文記爲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爲基本字符個數)c≡m+k mod n (其中n爲基本字符個數)工具
一樣,解密過程可表示爲:
m≡c+k mod n (其中n爲基本字符個數)性能
public static void main(String args[]) throws Exception{ String s=args[0]; int key=Integer.parseInt(args[1]); String es=""; for(int i=0;i<s.length( );i++) { char c=s.charAt(i); if(c>='a' && c<='z') // 是小寫字母 { c+=key%26; //移動key%26位 if(c<'a') c+=26; //向左超界 if(c>'z') c-=26; //向右超界 } else if(c>='A' && c<='Z') // 是大寫字母 { c+=key%26; if(c<'A') c+=26; if(c>'Z') c-=26; } es+=c; } System.out.println(es); }
public class Caesar { public static void main(String args[]) throws Exception{ String s=args[0]; int key=Integer.parseInt(args[1]); String es="";*/ import java.util.Scanner; public class Caesar { private String table; // 定義密鑰字母表 private int key; // 定義密鑰key public Caesar(String table, int key) { // 根據不一樣的字母表和不一樣的密鑰生成一個新的凱撒算法,達到通用的目的 super(); this.table = table; this.key = key; }//重構參數部分 /*for(int i=0;i<s.length( );i++) { char c=s.charAt(i); if(c>='a' && c<='z') // 是小寫字母 { c+=key%26; //移動key%26位 if(c<'a') c+=26; //向左超界 if(c>'z') c-=26; //向右超界 } else if(c>='A' && c<='Z') // 是大寫字母 { c+=key%26; if(c<'A') c+=26; if(c>'Z') c-=26; } es+=c; }*/ public String encrypt(String from) { //凱撒加密算法,傳入明文字符串,返回一個密文字符串 String to = ""; for (int i = 0; i < from.length(); i++) { to += table.charAt((table.indexOf(from.charAt(i))+key)%table.length()); } return to; }//重構算法部分 /*System.out.println(es); } }*/ public static void main(String[] args) { int key; System.out.println("請輸入要加密的字符串"); Scanner scanner = new Scanner(System.in); String str =scanner.nextLine(); System.out.println("請輸入密鑰"); key=scanner.nextInt(); Caesar caeser = new Caesar("abcdefghijklmnopqrstuvwxyz", key); String result = caeser.encrypt(str); System.out.print(result); } }
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | 20min | 16% |
設計 | 20min | 16% |
代碼實現 | 30min | 24% |
測試 | 25min | 20% |
分析總結 | 30min | 24% |
經過本次試驗,對於編寫和編譯代碼有了新的認識。深一步的學會了IDEA的使用方法。基本瞭解了Code菜單的強大。學會了格式化代碼,體會到告終對學習的好處,理解了什麼是重構,對重構的條件和目標有了基本的瞭解,能對代碼進行簡單的重構。學習