04_登陆注册

package com.dao;

import com.pojo.User;

/**
 * 这是针对用户进行操作的接口
 * @author Administrator
 *
 */
public interface UserDao {
    /**
     * 这是用户登录功能
     * @param username
     * @param password
     * @return 是否登录成功
     */
    public abstract boolean isLogin(String username,String password);

    /**
     * 这是用户注册功能
     * @param user
     */
    public abstract void regist(User user);
}

package com.dao.impl;

import java.util.ArrayList;

import com.dao.UserDao;
import com.pojo.User;

/**
 * 这是用户操作的具体实现
 * @author Administrator
 *
 */
public class UserDaoImpl implements UserDao{
    //为了让多个方法使用同一个集合,就把集合定义为成员变量
    //为了让多个对象共用一个array,所以使用static
    private static ArrayList<User> array=new ArrayList<User>();
    
    @Override
    public boolean isLogin(String username, String password) {
        //遍历集合,获取每一个用户,并判断该用户的用户名和密码是否吻合
        for(User u:array){
            if(u.getUsername().equals(username) && u.getPassword().equals(password)){
                return true;
            }
        }
        return false;
    }

    @Override
    public void regist(User user) {
        //把用户信息存储集合
        
        array.add(user);
    }

}

package com.game;

import java.util.Scanner;

/**
 * 这是猜数字小游戏
 * @author Administrator
 *
 */
public class GuessNumber {
    private GuessNumber(){
        
    }
    public static void start(){
        int number=(int)(Math.random()*100)+1;
        
        Scanner sc=new Scanner(System.in);
        
        int count=0;
        while(true){
            count++;
            System.out.println("请输入数据(1~100):");
            int guessNumber=sc.nextInt();
            if(guessNumber>number){
                System.out.println("你猜的数据"+guessNumber+"大了");
            }else if(guessNumber<number){
                System.out.println("你猜的数据"+guessNumber+"小了");
            }else{
                System.out.println("恭喜你,"+count+"次就猜中了!");
                break;
            }
        }
        
    }
}

package com.pojo;

public class User {
    private String username;
    private String password;
    //private int age;
    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 int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }*/
    public User(String username, String password) {
        super();
        this.username = username;
        this.password = password;
    }
    public User() {
        super();
    }
    
}

package com.test;

import java.util.Scanner;

import com.dao.UserDao;
import com.dao.impl.UserDaoImpl;
import com.game.GuessNumber;
import com.pojo.User;

/**
 * 用户测试类
 * @author Administrator
 *
 */
public class UserTest {
    public static void main(String[] args) {
        //多个地方使用,就定义到外面
        
        while(true){
            //欢饮界面给出选择项
            System.out.println("--------欢迎光临------");
            System.out.println("1 登陆");
            System.out.println("2 注册");
            System.out.println("3 退出");
            System.out.println("请输入你的选择:");
            //键盘录入选择,根据选择做不同操作
            Scanner sc=new Scanner(System.in);
            //为了后面的录入信息的方面,我后面所有的信息都用String接受
            String choiceString;
            //经过简单的思考,我选择使用Switch
            String regex="^[1-3]$";
            sc=new Scanner(System.in);
            choiceString=sc.hasNext(regex)?sc.nextLine():"3";    
            UserDao ud=new UserDaoImpl();
            switch(Integer.valueOf(choiceString)){
            case 1:
                //登陆页面界面给出用户名和密码
                System.out.println("请输入用户名:");
                String newUsername=sc.nextLine();
                System.out.println("请输入密码:");
                String newPassword=sc.nextLine();
                boolean flag=ud.isLogin(newUsername, newPassword);
                if(flag){
                    System.out.println("恭喜,登陆成功!");
                    
                    System.out.println("你玩吗?y/n");
                    while(true){
                        String resultString=sc.nextLine();
                        if(resultString.equalsIgnoreCase("y")){
                            //玩游戏
                            GuessNumber.start();
                        }else{
                            break;
                        }
                        System.out.println("你还玩吗?");
                    }    
                    System.out.println("谢谢使用,欢迎下次再来!");
                    System.exit(0);
                }else{
                    System.out.println("用户名或者密码有误,登陆失败!");
                }
                //调用登陆功能
                break;
            case 2:
                //注册页面界面给出用户名和密码
                System.out.println("请输入用户名:");
                String newUsername1=sc.nextLine();
                System.out.println("请输入密码:");
                String newPassword1=sc.nextLine();
                User user=new User();
                user.setUsername(newUsername1);
                user.setPassword(newPassword1);
                //调用注册功能
//                UserDao ud=new UserDaoImpl();
                ud.regist(user);
                break;
            case 3:
                System.out.println("谢谢使用,欢迎下次再来!");
                System.exit(0);
                break;
            }
        }
        
        
        
        
    }
}
原文地址:https://www.cnblogs.com/aigeileshei/p/5572454.html