package 学生管理系统;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class LoginScreen {
public static void main(String[] args) {
ArrayList<users> list = new ArrayList<>();
users users = new users("itheima123", "ciyp1001", "360730200307241234", "19198357110");
list.add(users);
Scanner sc = new Scanner(System.in);
System.out.println("欢迎来到学生管理系统");
System.out.println("请选择1.登入 2.注册 3.忘记密码 ");
int xuanZhe = sc.nextInt();
switch (xuanZhe) {
case 1 -> {
logIn(list);
}
case 2 -> {
list = zheCe(list);
}
case 3 -> {
list = forget(list);
}
default -> System.out.println("没有这个选项");
}
}
public static void logIn(ArrayList<users> list) {
String name = "";
int a = 0, b = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
name = sc.next();
for (int i = 0; i < list.size(); i++) {
boolean jieGuo = panDuan(name, list.get(i).getName());
if (jieGuo) {
System.out.println("用户名存在");
b = i;
break;
} else {
a++;
}
}
if (a == list.size()) {
System.out.println("用户名不存在,请先注册");
} else {
for (int i = 0; i < 3; i++) {
System.out.println("请输入密码");
String password = sc.next();
String c = list.get(b).getPassword();
if (panDuan(password, c)) {
System.out.println("密码正确");
String yanZhenMa = yanZhenMa();
while (true) {
System.out.println("请输入验证码");
String jieGuo = sc.next();
boolean panDuan = panDuan(yanZhenMa, jieGuo);
if (panDuan) {
System.out.println("验证码输入正确");
break;
} else {
System.out.println("验证码输入不正确");
}
}
break;
} else {
System.out.println("密码不正确请再次输入还有" + (2 - i) + "次机会");
}
}
}
}
public static String yanZhenMa() {
char arr[] = new char[52];
int a = 65;
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = (char) a;
a++;
if (a == 91)
a = 97;
// System.out.println(arr[i]);
}
char b[] = new char[5];
for (int i = 0; i < b.length; i++) {
int v = r.nextInt(53);
b[i] = arr[v];
}
int xuZhi = r.nextInt(10) + 48;
char zuanHuan = (char) xuZhi;
int shuiJi = r.nextInt(b.length);
b[shuiJi] = zuanHuan;
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
}
String jieGuo = new String(b);
return jieGuo;
}
public static ArrayList<users> zheCe(ArrayList<users> list) {
System.out.println("欢迎进入注册界面");
Scanner sc = new Scanner(System.in);
String password = "", next = "", id = "", number = "", name = "";
while (true) {
System.out.println("请输入用户名,用户名长度在3-15包含数字与字母");
name = sc.next();
boolean jieGuo = panDuan(name);
if (jieGuo) {
System.out.println("用户名符合要求");
int panDuan = panDuan(list, name);
if (panDuan >= 0) {
System.out.println("用户名已存在");
} else {
System.out.println("输入成功");
break;
}
}
}
while (true) {
System.out.println("请输入密码");
password = sc.next();
System.out.println("请再次输入密码");
next = sc.next();
boolean a = panDuan(next, password);
if (a) {
System.out.println("输入成功");
break;
} else {
System.out.println("输入失败,密码输入不一致");
}
}
while (true) {
System.out.println("请输入身份证号");
id = sc.next();
boolean ided = idPanDuan(id);
if (ided) {
System.out.println("身份证号输入成功");
break;
} else {
System.out.println("输入失败");
}
}
while (true) {
System.out.println("请输入手机号");
number = sc.next();
boolean numberPanDuan = numberPanDuan(number);
if (numberPanDuan) {
System.out.println("手机号输入成功");
break;
} else {
System.out.println("输入失败");
}
}
users users = new users(name, password, id, number);
list.add(users);
return list;
}
public static boolean panDuan(String name) {
int a = 0;
if (name.length() < 3 || name.length() > 15) {
System.out.println("长度错误");
return false;
}
for (int i = 0; i < name.length(); i++) {
if (name.charAt(i) < 48 || name.charAt(i) > 122 || (name.charAt(i) > 57 && name.charAt(i) < 97)) {
return false;
} else if (name.charAt(i) >= 48 && name.charAt(i) <= 57) {
a++;
}
}
if (a == name.length()) {
System.out.println("用户名不能纯数字");
return false;
}
return true;
}
public static int panDuan(ArrayList<users> list, String name) {
for (int i = 0; i < list.size(); i++) {
String a = list.get(i).getName();
if (a.equals(name)) {
return i;
//用户名已存在
}
}
return -1;
//用户名不存在
}
public static boolean panDuan(String next, String name) {
return next.equals(name);
}
public static boolean idPanDuan(String id) {
if (id.length() == 18) {
if (id.charAt(0) != 48) {
for (int i = 0; i < id.length() - 1; i++) {
if (id.charAt(i) < 48 || id.charAt(i) > 57) {
System.out.println("前17位不都是数字");
return false;
}
}
char a = id.charAt(id.length() - 1);
if ((a >= 48 && a <= 57) || a == 'X' || a == 'x') {
return true;
} else {
System.out.println("最后一个字符错误");
return false;
}
} else {
System.out.println("开头为0");
return false;
}
} else {
System.out.println("长度不为18");
return false;
}
}
public static boolean numberPanDuan(String number) {
if (number.length() == 11) {
if (number.charAt(0) != 48) {
for (int i = 0; i < number.length(); i++) {
if (number.charAt(i) < 48 || number.charAt(i) > 57) {
System.out.println("不是纯数字");
return false;
}
}
return true;
} else {
System.out.println("开头为0");
return false;
}
} else {
System.out.println("长度不为11");
return false;
}
}
public static ArrayList<users> forget(ArrayList<users> list) {
//代码冗余了:判断用户名是否存在
String name = "", id = "", number = "";
int a = 0, b = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
name = sc.next();
for (int i = 0; i < list.size(); i++) {
boolean jieGuo = panDuan(name, list.get(i).getName());
if (jieGuo) {
System.out.println("用户名存在");
b = i;
break;
} else {
a++;
}
}
if (a == list.size()) {
System.out.println("用户名不存在,请先注册");
return list;
} else {
System.out.println("请输入身份证号码");
id = sc.next();
System.out.println("请输入手机号码");
number = sc.next();
String c = list.get(b).getId();
String d = list.get(b).getNumber();
boolean panDuan = panDuan(id, c);
boolean panDuan2 = panDuan(number, d);
if (panDuan) {
if (panDuan2) {
System.out.println("账号信息匹配");
System.out.println("请输入修改后的密码");
String password = sc.next();
users users = new users(name, password, id, number);
list.set(b, users);
return list;
} else {
System.out.println("账号信息不匹配,修改失败");
return list;
}
} else {
System.out.println("账号信息不匹配,修改失败");
return list;
}
}
}
}
//不知道如何进入主菜单的方法
package 学生管理系统;
public class users {
private String name;
private String password;
private String id;
private String number;
public users() {
}
public users(String name, String password, String id, String number) {
this.name = name;
this.password = password;
this.id = id;
this.number = number;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return password
*/
public String getPassword() {
return password;
}
/**
* 设置
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* 获取
* @return id
*/
public String getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(String id) {
this.id = id;
}
/**
* 获取
* @return number
*/
public String getNumber() {
return number;
}
/**
* 设置
* @param number
*/
public void setNumber(String number) {
this.number = number;
}
}