[案例 2-6] 登录注册

案例需求:

(1)登录功能,用户输入正确的账号密码可成功登录.

(2)注册功能,输入用户名和密码进行注册.

(3)查看功能,查看所有的用户名和密码.

(4)退出功能,退出系统.

用户可以输入对应的编号进行相应的功能操作.例如,输入"2"进入注册功能,输出用户名和密码进行注册.


首先创建一个登录类:

在里面定义成员变量账号和密码,在创建一个无参构造方法

public class DengLu {
    // 定义账号和密码
    private String zhangHao;
    private String miMa;

    // 创建一个无参构造方法
    public DengLu(){

    }
    public String getZhangHao(){
        return zhangHao;
    }
    public void setZhangHao(String zhangHao){
        this.zhangHao = zhangHao;
    }
    public String getMiMa(){
        return miMa;
    }
    public void setMiMa(String miMa){
        this.miMa = miMa;
    }
}

然后创建登录界面:


import java.util.ArrayList;
import java.util.Scanner;

/**
 * 2022/1/17
 */
public class DengLuCeShi {
    public static void main(String[] args) {
        // 定义集合
        ArrayList<DengLu> array = new ArrayList<>();
        // 定义一个while循环使整体循环
        while (true){
            System.out.println("--------欢迎使用用户登录注册系统--------");
            System.out.println("1,登录功能");
            System.out.println("2,注册功能");
            System.out.println("3,查看功能");
            System.out.println("4,退出");
            System.out.println("请选择功能:");

            // 用户输入
            Scanner in = new Scanner(System.in);
            String s = in.nextLine();
            switch (s){
                case "1":
                    // 调用登录方法
                    DengLu(array);
                    break;
                case "2":
                    // 调用注册方法
                    ZhuCe(array);
                    break;
                case "3":
                    // 调用查看方法
                    ChaKan(array);
                    break;
                case "4":
                    System.out.println("感谢使用!");
                    System.exit(0); // JVM退出
                default:
                    System.out.println("正在努力开发中~~~~~");
            }
        }
    }

定义登录方法:

// 登录功能
    public static void DengLu(ArrayList<DengLu> array){
        // 判断是否集合中是否有账号
        if (array.size() == 0){
            System.out.println("暂无账号!");
            return;
        }
        // 输入账号密码
        Scanner in = new Scanner(System.in);
        System.out.println("请输入账号:");
        String zhangHao = in.nextLine();
        System.out.println("请输入密码:");
        String miMa = in.nextLine();

        // 遍历集合
        for (int i = 0 ; i < array.size() ; i++){
            DengLu d = array.get(i);
            // 判断账号密码是否正确
            if (d.getZhangHao().equals(zhangHao) && d.getMiMa().equals(miMa)){
                System.out.println("登录成功!");
            }else{
                System.out.println("请检查账号密码是否正确!");
            }
        }
    }

定义注册方法:

这里定义了一个boolean方法来判断注册的账号是否重复

 // 注册功能
    public static void ZhuCe(ArrayList<DengLu> array) {
        Scanner in = new Scanner(System.in);
        // 将zhu定义在外面,使外面元素也可以被访问到
        String zhu;
        // 定义循环,如果账号重复,则循环再次输入
        while (true) {
            // 输入要注册的账号
            System.out.println("请输入要注册账号:");
            zhu = in.nextLine();
            boolean b = PanDuan(array , zhu);
            // b是可变的,所以当他是true则返回账号重复,是false则退出循环
            if (b){
                System.out.println("账号重复,请重新输入!");
            }else{
                break;
            }
        }
        // 将mi定义在循环外,使外面的内容也能访问到
        String mi;
        // 定义一个循环,判断两次密码是否一致,不一致则提示继续输入
        while (true) {
            System.out.println("请输入密码:");
            mi = in.nextLine();
            System.out.println("请再次输入密码:");
            String mi2 = in.nextLine();
            // 判断两次密码是否一致,一致的话跳出循环
            if (mi.equals(mi2)) {
                break;
                // 不一致则循环
            }else{
                System.out.println("两次密码不一致,请重新输入!");
            }
        }
        // 创建对象,将账号密码存进去
        DengLu d = new DengLu();
        d.setZhangHao(zhu);
        d.setMiMa(mi);
        // 将元素存入集合中
        array.add(d);
        // 输出提示
        System.out.println("注册成功!");
    }
    // 判断账号是否存在
    public static boolean PanDuan(ArrayList<DengLu> array , String zhang){
        boolean flag = false;
        // 遍历集合,判断是否有相同的账号
        for (int i = 0 ; i < array.size() ; i++){
            DengLu d = array.get(i);
            // 如果集合中有这个账号,则返回true
            if (d.getZhangHao().equals(zhang)){
                flag = true;
                // 满足条件之后终止循环
                break;
            }
        }
        return flag;
    }

定义查看方法:

 // 查看功能
    public static void ChaKan(ArrayList<DengLu> array){
        // 判断集合中是否有内容
        if (array.size() == 0){
            System.out.println("暂无内容!");
            return;
        }
        // 使用制表符使格式好看点
        System.out.println("账号\t\t密码");
        // 遍历集合获取集合中的元素
        for (int i = 0 ; i < array.size() ; i++){
            DengLu d = array.get(i);
            System.out.println(d.getZhangHao() + "\t" + d.getMiMa());
        }
    }
}

最后看看输出结果:

到这里也就做完了.

代码基本上都有注释.

有问题欢迎评论区纠正.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈努力学JAVA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值