首页 > 代码库 > 0914作业
0914作业
1 import java.util.Scanner; 2 import java.util.Random; 3 public class HomeWork0914 implements HomeWork 4 { 5 /*成员变量、常量定义区*/ 6 Scanner scanner=new Scanner(System.in);//定义扫描器实例变量 7 8 char[] a=new char[62]; //定义第二题的验证码取值范围数组 9 int[] x=new int[4]; //定义第二题控制验证码生成的4个随机数的存放数组 10 char[] y=new char[4]; //定义第二题验证码存放数组 11 int state=1; //定义第二题递归方法的控制变量 12 String zhong=""; //定义第二题存放验证码的字符串变量 13 14 int[] num; //定义第三题移位数量的存放数组 15 String password1; //定义第三题存放密码的字符串变量 16 int[] password2; //定义第三题加密后密码存放字符串变量 17 String password3=""; //定义第三题解密后存放密码的字符串变量 18 19 /*方法调用区*/ 20 //实现接口,获取家庭作业题目 21 public void getHRMessage() 22 { 23 getMs(); 24 } 25 //实现接口,获取家庭作业答卷 26 public void getHR() 27 { 28 home1(); //第一题答卷 29 home2(); //第二题答卷 30 home3(); //第三题答卷 31 } 32 //实现接口,获取家庭作业 33 public void start() 34 { 35 getHRMessage(); 36 getHR(); 37 } 38 39 /*方法实现区*/ 40 //试题方法的实现 41 public void getMs() 42 { 43 System.out.println(); 44 System.out.println("题目一:自己实现startsWith()跟endsWith()并测试"); 45 System.out.println("题目二:编写验证码生成器,最多可输入5次"); 46 System.out.println("题目三:移位实现密码加密解密器"); 47 System.out.println(); 48 } 49 //第一题方法实现 50 public void home1() 51 { 52 myStartsWith(); 53 myEndsWith(); 54 } 55 //第二题方法实现 56 public void home2() 57 { 58 myABC(); //生成验证码数组 59 myCodeNumber(x,0,61); //生成0-61之间的4个随机数 60 getMyCode(); //获得验证码 61 myCode(); //验证码5次验证 62 } 63 //第三题方法实现 64 public void home3() 65 { 66 getPassword(); //生成加密密码 67 showPassword(); //还原密码 68 } 69 //myStartsWith()的实现 70 public boolean myStartsWith() 71 { 72 String a1="dfgdagaggdsag"; 73 System.out.println("测试startsWith(),测试字符为:"+a1); 74 System.out.println("请输入字符进行判断:"); 75 Scanner scanner=new Scanner(System.in); 76 String a2=scanner.nextLine(); 77 if(!a2.equals("")&&a1.indexOf(a2)==0) 78 { 79 System.out.println("true"); 80 return true; 81 }else 82 { 83 System.out.println("false"); 84 return false; 85 } 86 } 87 //myEndsWith()的实现 88 public boolean myEndsWith() 89 { 90 String a1="dfgdagaggdsag"; 91 System.out.println("测试endsWith(),测试字符为:"+a1); 92 System.out.println("请输入字符进行判断:"); 93 String a2=scanner.nextLine(); 94 if(!a2.equals("")&&a1.lastIndexOf(a2)>=0&&a1.substring(a1.length()-a2.length()).equals(a2)) 95 { 96 System.out.println("true"); 97 return true; 98 }else 99 {100 System.out.println("false");101 return false;102 }103 }104 //生成验证码数组105 public void myABC()106 {107 char b1=‘a‘;108 char b2=‘A‘;109 char b3=‘0‘;110 for(int i=0;i<a.length;i++)111 {112 if(i<=10)113 {114 a[i]=b3;115 b3++;116 }117 if(i>10&&i<=36)118 {119 a[i]=b1;120 b1++;121 }122 if(i>36)123 {124 a[i]=b2;125 b2++;126 }127 }128 }129 //生成不想等任意随机数方法,m是起始数值,n是结束数值,包含m,n本身130 public void myCodeNumber(int[] a,int m,int n)131 {132 Random random=new Random();133 int r;134 for(int i=0;i<a.length;i++)135 {136 r=random.nextInt(n)+m;137 a[i]=r;138 for(int j=0;j<i;j++)139 {140 if(a[j]==a[i])141 { 142 i--;143 break;144 }145 }146 } 147 }148 //获得验证码149 public void getMyCode()150 {151 for(int i=0;i<x.length;i++)152 {153 for(int j=0;j<a.length;j++)154 {155 if(x[i]==j)156 {157 y[i]=a[j];158 break;159 }160 }161 zhong+=y[i];162 System.out.print(y[i]);163 }164 System.out.println(); 165 }166 //验证码验证167 public void myCode()168 {169 System.out.println("请输入图中所显示的验证码");170 String str=scanner.nextLine();171 System.out.println(zhong); 172 if(str.equals(zhong))173 {174 System.out.println("您的验证码输入正确!");175 }176 if(!str.equals(zhong)&&state<=5)177 {178 System.out.println("您的验证码输入不对,您还有"+(5-state)+"次机会!");179 state++;180 zhong="";181 myCodeNumber(x,0,61);182 getMyCode();183 myCode(); 184 }185 186 }187 //接收用户输入密码并加密188 public void getPassword()189 {190 System.out.println("请输入密码:");191 password1=scanner.nextLine();192 num=new int[password1.length()];193 password2=new int[password1.length()];194 myCodeNumber(num,20,40); //生成20--40之间的随机数 195 if(password1!=""&&password1.length()>=6)196 {197 System.out.print("加密后的密码是:"); 198 for(int i=0;i<password1.length();i++)199 {200 password2[i]=password1.charAt(i)+num[i];201 System.out.print(password2[i]);202 }203 System.out.println(); 204 }else205 {206 System.out.println("请输入合法密码!至少6位!");207 getPassword(); 208 }209 }210 //解密211 public void showPassword()212 {213 System.out.print("解密后的密码是:");214 for(int i=0;i<password2.length;i++)215 {216 password3=password3+(char)(password2[i]-num[i]);217 }218 System.out.println(password3);219 System.out.println();220 }221 }
0914作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。