0914作业
Posted 风林山火
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }else 205 { 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作业的主要内容,如果未能解决你的问题,请参考以下文章
0914作业-----改进后的验证码生成器---生成4-8位可重复验证码
HTML5期末大作业:餐饮美食网站设计——咖啡(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 咖啡网页设计 美食餐饮网页设计...(代码片段