javase学习记录之------用户登陆注册案例

package cn.itcast.pojo;

/**
 * 这是用户基本描述类
 * @author 周志武
 * @version v1.0
 *
 */
public class User {
    //用户名
    private String username;
    //密码
    private String password;

    public User() {
    }
    public User(String username, String password) {
        super();
        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;
    }
}
package cn.itcast.dao;

import cn.itcast.pojo.User;

/**
 * 这是针对用户进行操作的接口
 * @author 周志武
 * @version v1.0
 */

public interface UserDao {
    //杠,星星,回车出来的,
    /**
     * 这是用户的登陆功能
     * @param username  用户名
     * @param password  密码
     * @return  返回登陆是否成功
     */
    //如果方法参数小于等于3个,就传参数过来,如果参数过多,就传对象        isLogin翻译为是登陆
    public abstract boolean isLogin(String username,String password);

    /**
     * 这是用户注册功能
     * @param user   要注册的用户信息
     */
    public abstract void regist(User user);
}
package cn.itcast.dao.impl;

import cn.itcast.dao.UserDao;
import cn.itcast.pojo.User;

import java.util.ArrayList;

/**
 * 这是用户操作的具体实现类(集合版)、
 * @author 周志武
 * @version v1.0
 */

public class UserDaoTmpl implements UserDao {
    //输入方法名前几个单词回车即可自动补全函数
    //为了让多个方法能够使用同一个集合,就把集合定义为成员变量
    //为了不让外人看到,用private
    //在测试类中,注册是一个对象,登陆是一个对象,但是array集合不能呗多个对象共同使用,所有前面登陆是永远不会登陆成功的
    //为了让多个对象共享一个集合,用static
    //private ArrayList<User> array=new ArrayList<User>();
    private static ArrayList<User> array=new ArrayList<User>();

    @Override
    public boolean isLogin(String username, String password) {
        //遍历集合,获取每一个用户,并判断该用户的用户名和密码是否和传递过来的匹配
        boolean flag=false;
        for(User u:array){
            if(u.getUsername().equals(username)&&u.getPassword().equals(password)){
                //一但有匹配的,把标记改为true;有就返回true;
                flag=true;
                break;
            }
        }
        //如果全部遍历完还没有匹配的,就返回false;
        return true;
    }

    @Override
    public void regist(User user) {
        //把用户信息存入集合
        //ArrayList<User> array=new ArrayList<User>();
        array.add(user);

    }
}
package cn.itcast.game;

import java.util.Scanner;

/**
 * 这是猜数字小游戏
 * @author 周志武
 * @version v1.0
 */

public class GuseeNumber {
    private GuseeNumber(){}
    public static void start() {
        //产生一个随机数
        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("你猜的数据大了");
            } else if (guessNumber < number) {
                System.out.println("你猜的数据小了");
            } else {
                System.out.println("恭喜你猜中了,猜中次数花费:"+count);
                break;
            }
        }
    }

}
/*
边敲边改
能放里面的就先放里面,发现不能放里面在放外面,发现有共同的重用的在方外面:能小范围尽量不大范围
 */
package cn.itcast.test;


import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoTmpl;
import cn.itcast.game.GuseeNumber;
import cn.itcast.pojo.User;

import java.util.Scanner;

/**
 * 用户测试类
 * @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 choiceString = sc.nextLine();

            //switch语句的多个地方要使用,我就定义到外面
            UserDao ud = new UserDaoTmpl();
            switch (choiceString) {
                case "1":
                    //登陆欢迎界面,请输入用户名和密码
                    System.out.println("-------------登陆界面-------------");
                    System.out.println("请输入用户名");
                    String username = sc.nextLine();
                    System.out.println("请输入密码");
                    String password = sc.nextLine();

                    //调用登陆功能
                    //UserDao ud=new UserDaoTmpl();
                    boolean flag = ud.isLogin(username, password);
                    if (flag) {
                        System.out.println("登陆成功");
                        //玩游戏
                        System.out.println("登陆成功,可以玩飞机了,你玩吗?y/n");
                        while(true) {
                            String resultString = sc.nextLine();
                            if (resultString.equalsIgnoreCase("y")) {
                                GuseeNumber.start();
                                System.out.println("你还要玩飞机吗?y/n");
                            } else {
                                break;
                            }
                        }
                        System.out.println("谢谢使用,欢迎下次在来");
                        System.exit(0);
                        //break;这里写break结束的是swich;
                    } else {
                        System.out.println("用户名或者密码错误,登陆失败");
                    }
                    break;
                case "2":
                    //给出欢迎界面,请输入用户名和密码
                    System.out.println("-------------注册界面-------------");
                    System.out.println("请输入用户名");
                    String newUsername = sc.nextLine();
                    System.out.println("请输入密码");
                    String newPassword = sc.nextLine();

                    //把用户名和对象封装到一个对象中;
                    User user = new User();
                    user.setUsername(newUsername);
                    user.setPassword(newPassword);

                    //调用注册功能
                    // 具体类使用
                    //UserDaoTmpl udi=new UserDaoTmpl();
                    //一般用多态用法,因为后面实现是可以替换的
                    //UserDao ud=new UserDaoTmpl():
                    ud.regist(user);
                    System.out.println("注册成功");

                    break;
                case "3":
                    break;
                default:
                    System.out.println("谢谢使用,欢迎下次在来");
                    System.exit(0);
                    break;

            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值