用集合实现的注册与登录

135 阅读1分钟

image.png package cn.itcast.game;

import java.util.Scanner;

/**

  • 这是猜数字小游戏

  • @author 徐文

  • @version v1.0

  • */ public class GuessNumber { //游戏的名字 private GuessNumber(){}

    public static void start(){ System.out.println("--------------欢迎进入猜数字小游戏--------------"); //产生一个随机数 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;
         }
    
     }
    

    } }

package com.qf.client;

import java.util.Scanner;

import com.qf.pojo.User; import com.qf.service.UserDao; import com.qf.service.UserDaoImpl;

import cn.itcast.game.GuessNumber;

/**

  • 用户测试类

  • @author 徐文

  • @version v1.0

  • / /*

  • 用户测试类

  • @author 徐文

  • @version v1.0

  • */ 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 choice = sc.next();
    
         //switch语句多个地方要使用,我就定义到外面
           UserDao ud =new UserDaoImpl();
    
         //经过简单的思考,我选择了switch
         switch (choice) {
             case "1":
                 //登录界面,请输入用户名和密码
                 System.out.println("--------------登录界面--------------");
                 System.out.println("请输入用户名:");
                 String username = sc.next();
                 System.out.println("请输入密码:");
                 String password = sc.next();
    
                 boolean flag = ud.isLogin(username, password);
                 if (flag) {
                     System.out.println("登陆成功,可以选择是否开始玩游戏了");
    
                     System.out.println("您玩猜数字小游戏吗?y/n");
                     while (true) {
                         String result = sc.next();
                         if (result.equalsIgnoreCase("y")) {
                             //玩游戏
                             GuessNumber.start();
                             System.out.println("您还玩吗?y/n");
                         } else {
                             break;
                         }
                     }
                     System.exit(0);
                     //break;//这里写break,结束的是swich
                 } else {
                     System.out.println("用户名或者密码有误,登陆失败");
                 }
    
                 break;
             case "2":
                 //欢迎界面,请输入用户名和密码
                 System.out.println("--------------注册界面--------------");
                 System.out.println("请输入用户名:");
                 String newUsername = sc.next();
                 System.out.println("请输入密码:");
                 String newPassword = sc.next();
    
                 //把用户名和密码封装到一个对象中
                 User user = new User();
                 user.setName(newUsername);
                 user.setPassword(newPassword);
    
                 //调用注册功能
                 //多态
                 //UserDao ud = new UserDaoImpl();
                 //具体类使用
                 //UserDaoImpl udi = new UserDaoImpl();
    
                ud.regist(user);
                 System.out.println("注册成功");
                 break;
             case "3":
             default:
                 System.out.println("谢谢使用,欢迎下次再来");
                 System.exit(0);
                 break;
         }
     }
    

    } }

package com.qf.pojo;

public class User { //成员变量 private String name; private String password; public User(String name, String password) { super(); this.name = name; this.password = password; } public User() { super(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [name=" + name + ", password=" + password + "]"; }

}

package com.qf.service;

import com.qf.pojo.User;

public interface UserDao { /** * 这是用户的登录功能 * / public abstract boolean isLogin(String username ,String password); / * 这是用户的注册功能,一旦注册,就注册成功 * user 需要注册的用户 */ public abstract void regist(User user);

}

package com.qf.service;

import java.util.ArrayList; import java.util.List;

import com.qf.pojo.User;

public class UserDaoImpl implements UserDao { /**

  • 多个功能共同使用这个集合,把它放到成员变量位置

  • 为了不让外界访问

  • 如何共用这个 对象 */ private static List list =new ArrayList<>();

    @Override public boolean isLogin(String username, String password) { //假设登录失败 boolean flag =false; //遍历集合 for (User user : list) { //判断:用户输入的用户和密码是否和集合中存储的用户名和密码一致 if(user.getName().equals(username)&&user.getPassword().equals(password)){ flag=true; break; }

     }
     	return flag;
     }
    

    @Override public void regist(User user) { //注册的逻辑 //需要将用户都存储到集合中 //将用户添加到集合中 list.add(user); }

}