模拟幸运抽奖案例:

功能:

用户注册:注册后随机生成4位数的卡号

登录:三次机会,失败一次扣一次机会,机会为0返回主操作

幸运抽奖:注册后生成的4位数卡号与随机生成的5个4位数卡号对比,相等是幸运卡号,否则不是

package learnday5;

import java.util.Arrays;
import java.util.Scanner;
 * @description:抽奖案例
public class Lucky {
    //全局变量在类中,在方法外面,static修饰
    //一个类里面很多方法可以用全局变量
    //static Scanner input = new Scanner(System.in);
    //用的最多的是参数传递
    //可以加,根据个人情况
    // 1.可以注册多个用户的信息(保存用户的信息)--->保证用户名的唯一性
    //2.登录一次(切换账号登录)
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String answer;
        boolean loginFlag = false;
        boolean regFlag = false;
        do {
            System.out.print("1.注册"+"\t"+"2.登录"+"\t"+"3.抽奖");
            System.out.println();
            System.out.println("请选择:");
            int choice = input.nextInt();

            switch (choice){
                case 1:
                    //调用了注册的方法
                    regFlag = register(input);
                    break;
                case 2:
                    //调用登录的方法
                    loginFlag = login(input,regFlag);
                    break;
                case 3:
                    lucky(input,loginFlag);
                    break;
            }
            System.out.println("是否继续?y/n");
            answer = input.next();
        } while ("y".equals(answer));
        System.out.println("程序退出");
        input.close();
    }

    public static void lucky(Scanner input,boolean loginFlag) {
        //必须是登录成功之后做的
        if(!loginFlag){
            System.out.println("请先登录");
            return;
        }
        System.out.println("请录入会员卡号:");
        int cardNo = input.nextInt();

        int[] luckyNum = new int[5];
        for (int i = 0; i < 5; i++) {
            int num = (int)(Math.random() * 9000 + 1000);
            luckyNum[i] = num;
        }
        System.out.println("今日幸运卡号:"+ Arrays.toString(luckyNum));
        for (int num : luckyNum) {
            if(cardNo == num){
                System.out.println(cardNo+"是本日幸运会员");
                return;
            }
        }
        System.out.println(cardNo+"不是本日幸运会员");
    }

    //注册时候的数据/全局变量
    public static String name;
    public static String pass;

    public static boolean login(Scanner input,boolean regFlag) {
        if(!regFlag){
            System.out.println("请先注册");
            return false;
        }
        int count = 3;
        do {
            count--;
            System.out.println("登录:用户名");
            String loginName = input.next();
            System.out.println("登录:密码");
            String loginPass = input.next();
            if(loginName.equals(name)||loginPass.equals(pass)){
               break;
            }
            if(count == 0){
                System.out.println("机会使用完毕,返回主界面");
                return false;
            }
            System.out.println("用户名或密码不符,还剩下"+count+"次机会");
        } while (true);
        System.out.println("登陆成功,欢迎您"+name);
        //修改登录成功的标识
        return true;
    }

    public static boolean register(Scanner input) {
        //一个方法相使用另一个方法的变量
        //1.参数传递 2.全局变量,对所有方法都有效
        System.out.println("注册:用户名");
        name = input.next();
        System.out.println("注册:密码");
        pass = input.next();
        //随即卡号:4位数
        //Math.random()生成的随机数0.0-1.0(包头不包尾)
        int cardNo = (int)(Math.random() * 9000 + 1000);
        System.out.println("注册成功");
        System.out.println("用户名\t密码\t会员卡号");
        System.out.println(name+"\t"+pass+"\t"+cardNo);
        //修改注册表示为ture
       return true;
    }
}