0
点赞
收藏
分享

微信扫一扫

java代码------method方法(尚马day04作业)

一只1994 2022-02-14 阅读 84

(1)练习------幸运抽奖

 

 

 

 

 

 

public class Lucky {

    public static void main(String[] args) {
        startGame();
    }

    private static void startGame() {
        Scanner input = new Scanner(System.in);
        String answer;
        boolean regFlag = false;                            //注册标志
        boolean loginFlag = false;                          //登录标志
        do {
            System.out.println("\n*********** 欢迎进入大富翁抽奖系统 ***********\n");
            System.out.println("                   1.注 册 ");
            System.out.println("                   2.登 录 ");
            System.out.println("                   3.抽 奖 ");
            System.out.println("                   5.查询所有的会员信息 ");
            System.out.println("                   4.退 出 \n");
            System.out.println("*********************************************\n");

            System.out.print("请选择要进行的操作(1-4): ");
            int choice = input.nextInt();
            switch (choice) {
                case 1:
                    regFlag = register(input);                      //实际参数用的input,利用参数传递,为了用第一句话
                    break;
                case 2:
                    loginFlag = login(input, regFlag, loginFlag);
                    break;
                case 3:
                    lucky(input, loginFlag);
                    break;
                case 4:
                    System.out.println("程序退出");
                    input.close();                                 //程序退出也要释放资源
                    return;
            }
            System.out.println("是否继续?y/n");
            answer = input.next();
        } while ("y".equals(answer));

        System.out.println("程序结束");
        input.close();

    }

    private static void lucky(Scanner input, boolean loginFlag) {
        if (!loginFlag) {
            System.out.println("请先登录");
            return;
        }
        System.out.println("录入会员卡号:");
        int memberNo = input.nextInt();

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

    private static boolean login(Scanner input, boolean regFlag, boolean loginFlag) {
        //已经成功地注册数据
        if (!regFlag) {
            System.out.println("请先注册");
            return false;
        }
        if (loginFlag) {
            System.out.println("您已经成功登陆过了,无需重复登录");
            System.out.println("是否切换账号登录y/n");
            String s = input.next();
            if ("n".equals(s)) {
                return true;
            }
        }
        int count = 3;
        String loginName;
        do {
            count--;
            System.out.println("请填写登录信息 ");
            System.out.print("请输入用户名: ");
            loginName = input.next();

            System.out.print("请输入密码: ");
            String loginPass = input.next();

            //比较----> 与注册时候的信息比较(信息存储数组中了)
            for (int index = 0; index <= totalCount; index++) {
                if (loginName.equals(nameArray[index]) && loginPass.equals(passArray[index])) {
                    System.out.println("欢迎你:" + loginName);
                    return true;
                }
            }
            if (count == 0) {
                System.out.println("机会使用完毕,返回主页面");
                return false;
            }
            System.out.println("登录失败,还剩下" + count + "次机会,请重新登录!");
        } while (true);

    }

    public static int totalCount = 0;//维护的数组中有小的元素个数  以及一个人所有信息的索引位置
    public static String[] nameArray = new String[10];
    public static String[] passArray = new String[10];
    public static int[] randomNoArray = new int[10];

    //在一个方法中: 如何获得另外一个方法里面的变量?
    // 1. 参数传递
    // 2. 全局变量:  放在方法之外   所有的方法都可以访问全局变量
    private static boolean register(Scanner input) {
        System.out.println("请填写个人注册信息 ");
        System.out.print("请输入用户名: ");
        String name = input.next();
        
        System.out.print("请输入密码: ");
        String pass = input.next();

        int randomNo = (int) (Math.random() * 9000 + 1000);
        int length = nameArray.length;

        if (totalCount + 1 >= length) {
            //扩容
            nameArray = Arrays.copyOf(nameArray, 2 * totalCount);              //存放用户名的数组扩容
            passArray = Arrays.copyOf(passArray, 2 * totalCount);
            randomNoArray = Arrays.copyOf(randomNoArray, 2 * totalCount);
        }
        nameArray[totalCount] = name;
        passArray[totalCount] = pass;
        randomNoArray[totalCount] = randomNo;

        totalCount++;

        System.out.println("注册成功! 请牢记您的会员号");
        
        System.out.println("用户名\t密码\t会员卡号");
        System.out.println(name + "\t" + pass + "\t" + randomNo);
        return true;
    }
}
举报

相关推荐

day04作业

java代码(尚马day01)

JAVA基础day04

day04

Day04

0 条评论