使用数组进行注册和登录

标题说明:

因为使用的是数组,不像使用数据库那样,所以使用的数组要使用其全局变量。注册和登录逻辑都使用方法实现。

目录:

  • 创建实体类

  • 创建逻辑实现类

  • 创建测试方法

创建实体类:

public class Account {
    private String accountId;
    private String accountName;
    private String accountRealName;
    private String accountPwd;
    private String accountPhone;
    private String accountBirthday;

    
    public String getAccountId() {
        return accountId;
    }

    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getAccountRealName() {
        return accountRealName;
    }

    public void setAccountRealName(String accountRealName) {
        this.accountRealName = accountRealName;
    }

    public String getAccountPwd() {
        return accountPwd;
    }

    public void setAccountPwd(String accountPwd) {
        this.accountPwd = accountPwd;
    }

    public String getAccountPhone() {
        return accountPhone;
    }

    public void setAccountPhone(String accountPhone) {
        this.accountPhone = accountPhone;
    }



    public String getAccountBirthday() {
        return accountBirthday;
    }

    public void setAccountBirthday(String accountBirthday) {
        this.accountBirthday = accountBirthday;
    }

    public Account() {
        super();
    }

    public Account(String accountName, String accountPwd) {
        super();
        this.accountName = accountName;
        this.accountPwd = accountPwd;
    }

    
    public Account(String accountId, String accountName, String accountRealName, String accountPwd, String accountPhone,
            String accountBirthday) {
        super();
        this.accountId = accountId;
        this.accountName = accountName;
        this.accountRealName = accountRealName;
        this.accountPwd = accountPwd;
        this.accountPhone = accountPhone;
        this.accountBirthday = accountBirthday;
    }

    public Account(String accountName, String accountPwd, String accountPhone) {
        super();
        this.accountName = accountName;
        this.accountPwd = accountPwd;
        this.accountPhone = accountPhone;
    }

创建逻辑实现类

创建全局作用域 存放Student类型的数组

public static Account[] accounts = new Account[25];

为Student数组添加初始数据

    static {
        accounts[0] = new Account("001","admin","管理员", "123","123555",new Date().toString());
        accounts[1] = new Account("002","xiaoming","小红", "123456","123555",new Date().toString());
        accounts[2] = new Account("003","xiaoming","小明", "456","123555",new Date().toString());

    }

注册逻辑实现

    //注册
    public boolean register(Account account) {
        //判断哪个数组位置是空,如果为空,然后存储该对象
        for (Integer i = 0; i < accounts.length; i++) {
            //找到数组元素是空的
            if(accounts[i] == null) {
                //对空的位置赋值
                accounts[i] = account;
                //1. 注册的元素没有对id进行赋值,需要系统自行赋值
                accounts[i].setAccountId("00"+((Integer)(i+1)).toString());
                return true;
            }
            //检查用户名是否存在
            if(accounts[i].getAccountName().equals(account.getAccountName())) {
                System.out.println("账户已经存在,不能注册");
                return false;
            }
        }
        return false;
    }

登录逻辑实现

    //登录
    public boolean login(Account account) {
        for (int i = 0; i < accounts.length; i++) {
            if (accounts[i] != null && account.getAccountName().equals(accounts[i].getAccountName()) && account.getAccountPwd().equals(accounts[i].getAccountPwd())) {
                return true;
            }
        }
        return false;
    }

验证码逻辑实现

    //验证码
    public char[] checkCode() {
        char[] code = new char[4];
        int j = 0;
        while(j < 4) {
            int rand = (int) (Math.random()*58+65);
                while(true) {
                    if (rand >= 91 && rand <= 96) {
                        rand = (int)(Math.random()*58+65);    
                    }
                    break;
                }
                code[j] += (char)rand;
          j++;
        }
        return code;
        
    }

AccountDAO总体代码

public class AccountDao {
    //成员变量   属性:private修饰,提供set、get方法
    public static Account[] accounts = new Account[25];
    int length = accounts.length;
    
    static {
        accounts[0] = new Account("001","admin","管理员", "123","123555",new Date().toString());
        accounts[1] = new Account("002","xiaoming","小红", "123456","123555",new Date().toString());
        accounts[2] = new Account("003","xiaoming","小明", "456","123555",new Date().toString());

    }
    //注册
    public boolean register(Account account) {
        //判断哪个数组位置是空,如果为空,然后存储该对象
        for (Integer i = 0; i < accounts.length; i++) {
            //找到数组元素是空的
            if(accounts[i] == null) {
                //对空的位置赋值
                accounts[i] = account;
                //1. 注册的元素没有对id进行赋值,需要系统自行赋值
                accounts[i].setAccountId("00"+((Integer)(i+1)).toString());
                return true;
            }
            //检查用户名是否存在
            if(accounts[i].getAccountName().equals(account.getAccountName())) {
                System.out.println("账户已经存在,不能注册");
                return false;
            }
        }
        return false;
    }
    
    //登录
    public boolean login(Account account) {
        for (int i = 0; i < accounts.length; i++) {
            if (accounts[i] != null && account.getAccountName().equals(accounts[i].getAccountName()) && account.getAccountPwd().equals(accounts[i].getAccountPwd())) {
                return true;
            }
        }
        return false;
    }
    
    //验证码
    public char[] checkCode() {
        char[] code = new char[4];
        int j = 0;
        while(j < 4) {
            int rand = (int) (Math.random()*58+65);
                while(true) {
                    if (rand >= 91 && rand <= 96) {
                        rand = (int)(Math.random()*58+65);    
                    }
                    break;
                }
                code[j] += (char)rand;
          j++;
        }
        return code;
        
    }
}

创建测试类

注册操作测试

        Scanner sc = new Scanner(System.in);
        AccountDao accountDao = new AccountDao();
        //注册操作
        System.out.println("请输入用户名 真实姓名  密码  电话  生日 ");
        Account account = new Account(null,sc.next(),sc.next(),sc.next(),sc.next(),sc.next());
        System.out.println(accountDao.register(account)?"注册成功":"注册失败");
        System.out.println(account);

登录操作测试

验证码功能测试
        //登录操作
        //添加验证码功能,在登录之前输入验证码,并比较,如果验证码正确才比较用户名和密码
        //验证码
        System.out.println("验证码:");
        char[] codes = accountDao.checkCode();
        for (int i = 0; i < codes.length; i++) {
            System.out.print((char)codes[i]);
        }
        System.out.println();
        while(true) {
            System.out.println("请输入验证码:");
            String code = sc.next();
            String checkCodes = String.valueOf(codes);
                if(code.equals(checkCodes)) {
                    System.out.println("验证码正确,进行登录操作");
                    break;
                }else {
                    System.out.println("错误,请重新输入");
                }
        }
登录操作测试
        //登录
        System.out.println("请输入用户名");
        String name = sc.next();
        System.out.println("请输入密码");
        String pwd = sc.next();
        
        Account accountLogin = new Account();
        accountLogin.setAccountName(name);
        accountLogin.setAccountPwd(pwd);
        boolean result = accountDao.login(accountLogin);
        if (result) {
            System.out.println("登录成功");
        }else {
            System.out.println("登录失败");
        }

总体测试方法:

public class AccountDaoTest {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        AccountDao accountDao = new AccountDao();
        //注册操作
        System.out.println("请输入用户名 真实姓名  密码  电话  生日 ");
        Account account = new Account(null,sc.next(),sc.next(),sc.next(),sc.next(),sc.next());
        System.out.println(accountDao.register(account)?"注册成功":"注册失败");
        System.out.println(account);
//        
        //登录操作
        //添加验证码功能,在登录之前输入验证码,并比较,如果验证码正确才比较用户名和密码
        //验证码
        System.out.println("验证码:");
        char[] codes = accountDao.checkCode();
        for (int i = 0; i < codes.length; i++) {
            System.out.print((char)codes[i]);
        }
        System.out.println();
        while(true) {
            System.out.println("请输入验证码:");
            String code = sc.next();
            String checkCodes = String.valueOf(codes);
                if(code.equals(checkCodes)) {
                    System.out.println("验证码正确,进行登录操作");
                    break;
                }else {
                    System.out.println("错误,请重新输入");
                }
        }
        //登录
        System.out.println("请输入用户名");
        String name = sc.next();
        System.out.println("请输入密码");
        String pwd = sc.next();
        
        Account accountLogin = new Account();
        accountLogin.setAccountName(name);
        accountLogin.setAccountPwd(pwd);
        boolean result = accountDao.login(accountLogin);
        if (result) {
            System.out.println("登录成功");
        }else {
            System.out.println("登录失败");
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值