学生管理系统升级java版(登入,注册,忘记密码)

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;
    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值