实现思路:分别创建5个包和5个类{cn.f.pojo(User.java);cn.f.Dao(UserDao.java);cn.f.Dao.impl(UserDaoImpl.java); cn.f.game(GuessNumber.java);  cn.f.test(UserTest.java)}

第一步:

 封装cn.f.pojo(User.java)类

代码:

package cn.f.pojo;
public class User {
     private String name;
     private String mima;    public String getName() {
         return name;
     }    public void setName(String name) {
         this.name = name;
     }    public String getMima() {
         return mima;
     }    public void setMima(String mima) {
         this.mima = mima;
     }    public User(String name, String mima) {
         super();
         this.name = name;
         this.mima = mima;
     }    public User() {
         super();
     }    @Override
     public String toString() {
         return "User [name=" + name + ", mima=" + mima + "]";
     }}

第二步:

创建一个用户登录注册接口cn.f.Dao(UserDao.java)

代码:

package cn.f.Dao;
import cn.f.pojo.User;
public interface UserDao {
 //    这是登陆功能
 public abstract boolean isLogin(String name,String mima);
 //这是注册功能
 public abstract void regist(User user);}

 

第三步:

创建一个实现用户登录注册功能实现类cn.f.Dao.impl(UserDaoImpl.java)

代码:

package cn.f.Dao.impl;
import java.util.ArrayList;
import cn.f.Dao.UserDao;
 import cn.f.pojo.User;//这是用户操作具体实现类
 public class UserDaoImpl implements UserDao {
     // 为了让多个方法能够使用一个集合,就把集合定义为成员变量
     // 为了不让外人看到,就用private
     // 为了让多个对象共享同一个成员变量用static
     private static ArrayList<User> u = new ArrayList<User>();    @Override
     public boolean isLogin(String name, String mima) {
         // 遍历集合,获取每一个用户,并判断该用户名和密码是否和传递过来的匹配
         boolean flag = false;
         for (User s : u) {
             if (s.getName().equals(name) && s.getMima().equals(mima)) {
                 flag = true;
                 break;
             }        }
         return flag;
     }    @Override
     public void regist(User user) {
         // 把用户信息存储集合        u.add(user);
    }
}

 

第四步:

增加用户体验用户注册登录成功后给用户玩个小游戏cn.f.game(GuessNumber.java)

代码:

package cn.f.game;
import java.util.Scanner;
public class GuessNumber {
     private GuessNumber() {    }
    public static void strat() {
         // 产生一个随机数
         int number = (int) (Math.random() * 100) + 1;
         // 定义一个统计变量
         int count = 0;
         while (true) {
             Scanner sc = new Scanner(System.in);
             System.out.println("请输入数据(1-100):");
             int guessNumber = sc.nextInt();
             count++;
             // 判断
             if (guessNumber > number) {
                 System.out.println("你猜的数据" + guessNumber + "大了");
             } else if (guessNumber < number) {
                 System.out.println("你猜的数据" + guessNumber + "小了");            } else {
                 System.out.println("恭喜你,"+count+"次猜中了!");
                 break;
             }        }
    }
 }

 

第五步:

实现用户登录注册功能测试cn.f.test(UserTest.java)

代码:

package cn.f.test;
import java.util.Scanner;
import cn.f.Dao.UserDao;
 import cn.f.Dao.impl.UserDaoImpl;
 import cn.f.game.GuessNumber;
 import cn.f.pojo.User;public class UserTest {
     static Scanner sc = new Scanner(System.in);
     // 多态
     static UserDao ud = new UserDaoImpl();    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("请输入你的选择:");
             // 键盘录入选择,根据选择做出不同的操作            // 为了后面录入信息的方便,我所有的数据录入全部用字符接受
             String m = sc.nextLine();
             switch (m) {
             case "1":
                 denglu();
                 break;
             case "2":
                 zhuce();
                 break;
             case "3":            default:
                 System.out.println("谢谢使用,欢迎下次再来!");
                 System.exit(0);
             }
         }
     }    public static void denglu() {
         System.out.println("-------------登录界面(请先注册后再登录!)--------------");
         System.out.println("请输入用户名:");
         String n = sc.nextLine();
         System.out.println("请输入密码:");
         String p = sc.nextLine();
         // 调用登录功能
         boolean flag = ud.isLogin(n, p);
         if (flag) {
             System.out.println("登录成功!奖励你玩游戏。");
             System.out.println("你要玩吗?y/n");
             while (true) {
                 String r = sc.nextLine();
                 if (r.equalsIgnoreCase("y")) {
                     // 玩游戏
                     GuessNumber.strat();
                     System.out.println("是否继续游戏?y/n");
                 }else{
                     break;
                 }
             }
             System.out.println("谢谢使用,欢迎下次再来!");
             System.exit(0);
         } else {
             System.out.println("用户名或者密码有误,登录失败!");
         }
     }    public static void zhuce() {
         // 注册界面,请输入用户名和密码
         System.out.println("-------------注册界面--------------");
         System.out.println("请输入用户名:");
         String name = sc.nextLine();
         System.out.println("请输入密码:");
         String mima = sc.nextLine();
         // 把用户名和密码封装到一个对象中
         User user = new User();
         user.setName(name);
         user.setMima(mima);
         // 调用注册功能
         ud.regist(user);
         System.out.println("注册成功!");
     }
 }

 

代码运行结果:

-------------欢迎光临--------------
1.登录
2.注册
3.退出
请输入你的选择:
1
-------------登录界面(请先注册后再登录!)--------------
请输入用户名:
232
请输入密码:
232
用户名或者密码有误,登录失败!
-------------欢迎光临--------------
1.登录
2.注册
3.退出
请输入你的选择:
2
-------------注册界面--------------
请输入用户名:
1234
请输入密码:
1234
注册成功!
-------------欢迎光临--------------
1.登录
2.注册
3.退出
请输入你的选择:
1
-------------登录界面(请先注册后再登录!)--------------
请输入用户名:
1234
请输入密码:
1234
登录成功!奖励你玩游戏。
你要玩吗?y/n
y
请输入数据(1-100):
67
你猜的数据67小了
请输入数据(1-100):
87
你猜的数据87大了
请输入数据(1-100):
80
你猜的数据80大了
请输入数据(1-100):
78
你猜的数据78大了
请输入数据(1-100):
76
你猜的数据76大了
请输入数据(1-100):
74
你猜的数据74小了
请输入数据(1-100):
75
恭喜你,7次猜中了!
是否继续游戏?y/n
n