
package day01;
import java.util.Arrays;
import java.util.Objects;
import java.util.Scanner;
public class Zhucedenglu {
public static void main(String[] args) {
// 设置两组数组分别存放用户名和密码
String[] usernames = new String[3];
String[] pswords = new String[3];
usernames[0] = "lili";
pswords[0] = "123123";
// 让用户选择要进行的操作
boolean flag = false;
do {
System.out.println("1: 注册 2:登录 0:退出");
// 调用获取用户输入的方法
Scanner sc = new Scanner(System.in);
// 将用户选择的选项保存在choose中
int choose = sc.nextInt();
// 如果用户输入1则进入注册的程序
switch (choose) {
case 1:
System.out.println("请输入您要注册的用户名:");
// System.out.println(Arrays.toString(usernames1));
String yhm = sc.next();
System.out.println("请输入您要注册的密码:");
String mm = sc.next();
System.out.println("请再次确认您注册的密码");
String mm1 = sc.next();
// 遍历数组查看有没有重复的,如果有的话记住他的下标
int index = -1;
for (int i = 0; i < usernames.length; i++) {
if (Objects.equals(usernames[i], yhm)) {
index = i;
break;
}
}
// index还等于-1说明用户名没有重复的,下一步判断他的长度是否符合标准
if (index == -1) {
// 获取要注册的用户名的长度
int yhmlen = yhm.length();
// 判断用户名长度是否大于5小于10
if (yhmlen >= 5 && yhmlen <= 10) {
// 获取密码长度
int mmlen = mm.length();
// 密码长度正确的话获取验证码
if (mmlen >= 5 && mmlen <= 10) {
if (mm.equals(mm1)) {
// 生成一个随机的四位数数字 code = Math.random() * (n - m) + m; && n=rand.nextInt(max-min+1)+min;
int codes = (int) (Math.random() * 9000 + 1000);
System.out.println("请输入一个4位数验证码" + codes);
int code = sc.nextInt();
if (code == codes) {
// 如果验证码输入正确将用户名和密码存进新数组
boolean flag1 = false;
boolean flag2 = false;
for (int i = 0; i < usernames.length; i++) {
if (usernames[i] == null) {
usernames[i] = yhm;
flag1 = true;
break;
}
}
for (int j = 0; j < pswords.length; j++) {
if (pswords[j] == null) {
pswords[j] = mm;
flag2 = true;
break;
}
}
if (flag1 && flag2) {
System.out.println("注册成功");
} else {
// 这边提前写一个新的数组存放用户注册成功后要存入的地方,因为java中数组的长度是不可改变的
usernames = Arrays.copyOf(usernames, usernames.length + 1);
pswords = Arrays.copyOf(pswords, pswords.length + 1);
usernames[usernames.length - 1] = yhm;
pswords[pswords.length - 1] = mm;
System.out.println("注册成功");
}
} else {
System.out.println("验证码错误,重新注册");
}
} else {
System.out.println("两次密码输入不一致");
}
} else {
System.out.println("您输入的密码不符合规范");
}
} else {
System.out.println("您输入的用户名长度有误,请重新注册");
}
// 否则说明已经有这个用户名了
} else {
System.out.println("您输入的用户名已经存在,请重新注册");
}
// 输出一下注册好之后的数组 以便查看变化
System.out.println(Arrays.toString(usernames));
System.out.println(Arrays.toString(pswords));
flag = true;
break;
case 2:
System.out.println("请输入您的用户名");
String yhm11 = sc.next();
System.out.println("请输入您的密码");
String mm11 = sc.next();
boolean flag3 = false;
int index1 = -1;
// 判断输入的用户名是否存在数组里面 并且判断对应的密码是否正确
for (int i = 0; i < usernames.length; i++) {
if (Objects.equals(usernames[i], yhm11)) {
index1 = i;
if (Objects.equals(pswords[i], mm11)) {
flag3 = true;
}
}
}
if (index1 > -1 && flag3 ) {
int codes1 = (int) (Math.random() * 9000 + 1000);
System.out.println("请输入验证码" + codes1);
int code1 = sc.nextInt();
if (code1 == codes1) {
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
} else {
System.out.println("用户名或密码错误登录失败");
}
break;
case 0:
System.out.println("程序已退出");
System.exit(0);
break;
default:
System.out.println("您的输入有误,请重新输入");
break;
}
} while (true);
}
}
版权声明:本文为weixin_44701385原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。