Java 登录注册集合版本

使用集合实现登录注册功能。

1、保证用户输入的是数字,不是数字,提示用户输入数字,
2、登录次数给三次
3、对用户和密码进行一个规则的校验

接口:

public interface UserDao {
    //注册的操作
    public abstract void register(User user);
    //登录的操作
    public abstract boolean login(String username,String password);
}

接口实现类:

public class UserDaoImpl implements UserDao {
    static private ArrayList<User> list =new ArrayList<>();
    @Override
    public void register(User user) {
list.add(user);//将用户信息添加到集合
    }

    @Override
    public boolean login(String username, String password) {
        boolean flag=false;
        for(User user:list){
            //对登录信息进行验证
if(username.equals(user.getUsername())&&password.equals(user.getPassword())){
                flag=true;
                break;
            }
        }
        return flag;
    }
}

用户类:

public class User {
    private String username;
    private String password;

    public User() {
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

猜数字游戏:

public class GuessNumber {
    public static void playGame(){
        Random random = new Random();
        int num=random.nextInt(100)+1;
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("请输入一个数字 0——100");
            int guessNumber=sc.nextInt();
            if(guessNumber>num){
                System.out.println("猜大了");
            }else if(guessNumber<num){
                System.out.println("猜小了");
            }else if(guessNumber==num){
                System.out.println("猜对了");
                break;
            }
        }
    }
}

登录界面

package org.westo.login.view;

import org.westo.login.dao.UserDao;
import org.westo.login.dao.UserDaoImpl;
import org.westo.login.game.GuessNumber;
import org.westo.login.pojo.User;

import java.util.Scanner;

public class LoginUI {
    public static void main(String[] args) {
        int i=0;
        Scanner sc = new Scanner(System.in);
        UserDao userDao = new UserDaoImpl();
        while(true){
            System.out.println("1注册2登录3退出");
            String num=String.valueOf(sc.nextLine());
            String regx="[1-3]";//验证是否是正确数字,
            while(!num.matches(regx)){
                System.out.println("请输入正确数字");
                num=sc.nextLine();
            }
            switch(num){
                case "1":
                    System.out.println("------注册------");
                    System.out.println("请输入用户名");
                    String username=sc.nextLine();
                    //账号正则判断
                    String usernameRegx="[\\w$]{6}";
                    if(!username.matches(usernameRegx)){
                        System.out.println("您输入的用户名不合法,请重新输入");
                        username = sc.nextLine();
                    }
                    System.out.println("请输入密码");
                    String password=sc.nextLine();
                    // //密码正则判断
                    String passwordRegx = "[\\w$]{6}";
                    if (!password.matches(passwordRegx)) {
                        System.out.println("您输入的密码不合法,请重新输入");
                        password=sc.nextLine();

                    }
                    User user = new User(username, password);
                    userDao.register(user);
                    break;
                case "2":
                    System.out.println("---------登录--------");
                    System.out.println("请输入用户名");
                    String username2 = sc.nextLine();
                    System.out.println("请输入密码");
                    String password2 = sc.nextLine();
                    boolean b = userDao.login(username2, password2);
                    if(b){
                        System.out.println("登陆成功,要玩么?y/n");
                        while(true){
                            String play=sc.nextLine();
                            if(play.equalsIgnoreCase("y")){
                                GuessNumber.playGame();
                                System.out.println("还玩么?y/n");
                            }else{
                                System.exit(0);
                            }
                        }
                    //三次登录机会
                    } else if (!b&&i<2){
                        i++;
                        System.out.println("登录失败,你还有"+(3-i)+"次机会");
                    }else if(!b&&i>=2){
                        System.out.println("登录失败");
                        System.exit(0);
                    }
                    break;
                case "3":
                    default:
                        System.exit(0);
                        break;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/superfloat/article/details/86155777