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菜单的强大。学会了格式化代码,体会到告终对学习的好处,理解了什么是重构,对重构的条件和目标有了基本的了解,能对代码进行简单的重构。学习