抽獎系統

是一個簡單的抽獎系統,經過輸入的選項執行相關的操做,java

import java.lang.invoke.SwitchPoint;
import java.util.Arrays;
import java.util.Scanner;

//抽獎系統
public class Test01 {

    static String userName = "";  //用戶名
    static String password = "";  //密碼
    static int i = 0;  //登陸次數
    static boolean islogin = false;   //登陸狀態,默認是沒有登錄的

    public static void main(String[] args) {

        while (true) {
            System.out.println("*****歡迎進入抽獎系統*****");
            System.out.println(" 1,註冊 \n 2,登陸 \n 3,參加抽獎");
            System.out.println("********************");
            System.out.println("請選擇:");
            Scanner sc = new Scanner(System.in);
            int num = sc.nextInt();

            //根據用戶輸入,進行相關的操做
            doSome(num);
            System.out.println("是否退出:(exit)");
            String string = sc.next();
            if ("exit".equals(string)) {
                return;
            }
        }
    }
    //根據用戶輸入,進行相關的操做
    static void doSome(int num) {
        if (num > 3 || num < 1) {   //只能輸入1,2,3
            System.out.println("輸入錯誤,請從新輸入");
            return;
        }
        switch (num) {
        case 1 : {   // 註冊
            System.out.println("抽獎 > 註冊");

            //1,判斷是否已經註冊過了,若是是,就不須要在註冊
            boolean regist = isRegist();
            if (regist) {
                System.out.println("已經註冊過了,請執行其餘操做");
                return;
            }else {
                //2,用兩個變量來保存一下用戶名和密碼
                Scanner sc = new Scanner(System.in);
                System.out.println("請輸入用戶名");
                userName = sc.next();
                System.out.println("請輸入密碼");
                password = sc.next();
                //3,註冊成功,用戶名...
                System.out.println("註冊成功,用戶名:" + userName);
            }
            break;
        }
        case 2 : {   // 登陸
            System.out.println("抽獎 > 登陸");
            //1,判斷是否註冊過,若是是,就能夠登陸,不然返回註冊
            if (islogin) {
                System.out.println("已登陸");
                break;
            }
            boolean regist = isRegist();
            if (regist) {  //註冊過
                login();
            }else {   // 沒有註冊過
                System.out.println("請先註冊...");
            }
            break;
        }

        default: {   // 抽獎
            System.out.println("抽獎 > 抽獎");
            //判斷是否登陸狀態
            if (islogin == false) {
                System.out.println("未登陸,請先登陸");
                return;
            }

            //若是是登陸狀態,抽獎,不然,返回登陸
            //代碼到這裏,代表已經登陸成功了
            System.out.println("請輸入您的幸運編號(4位):");
            Scanner scanner = new Scanner(System.in);
            int luckNum = scanner.nextInt();

            //獲取隨機出來的隨機數字
            int[] arr = getArr();

            for (int i = 0; i < arr.length; i++) {
                if (luckNum == arr[i]) {
                    System.out.println("恭喜你中獎啦");
                    return;
                }
            }
            System.out.println("努努力,恭喜下次中獎");

            //抽獎  1,輸入4位幸運數字    2,隨機一個數組  
            //若是輸入的數字在數組中,就中獎了,不然謝謝惠顧

            break;
        }
        }
    }

    //判斷是否註冊過   true是註冊過   false是未註冊過
    static boolean isRegist () {
        //字符串寫在前面,null沒有equals方法
        if ("".equals(userName) || userName == null ||
                "".equals(password) || password == null) {
            return false;
        }
        return true;
    }

    //判斷用戶名和密碼與存儲的是否相等.
    static boolean login(String name,String passwd) {
        if (Test01.userName.equals(name) && (Test01.password.equals(passwd))) {
            //每次登陸成功之後歸零
            i= 0;
            return true;
        }else {
            return false;
        }
    }

    //登陸
    static void login () {

        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入用戶名");
        String userName = sc.next();
        System.out.println("請輸入密碼");
        String password = sc.next();
        //判斷用戶名和密碼與存儲的是否相等
        boolean login = login(userName, password);
        if (login) {  //登陸成功
            System.out.println("登陸成功");
            Test01.islogin = true;  //把當前的狀態標記成登陸成功
        }else {  //登陸失敗
            System.out.println("請從新登陸");
            //輸入三次之後退出
            if (i >= 3) {
                System.out.println("登陸次數過多,明天再試吧");
                System.exit(-1);  //虛擬機終止
                return;
            }
            i++;
            //調用本身自己
            login();
        }
    }

    //抽獎環節隨機數組的函數
    static int[] getArr() {
        //初始化數組
        int[] numArr = new int[5];
        //隨機1000-9999數字放到數組中
        //調用test02的rand方法
        int index = 0;
        boolean tag = false;
        //若是數組的下標爲4的元素是0,說明數組沒有裝滿,能夠繼續執行
        while (numArr[4] == 0) {
            tag = false;
            int num = Test02.rand(1000, 9999);
            //循環判斷,每次生成的隨機數不與以前放進數組中的數重複
            for (int i = 0; i < index; i++) {
                //若是重複,tag改成true,而且跳出本次循環,
                if (num == numArr[i]) {
                    tag = true;
                    break;
                }
            }
            //若是tag = true,返回繼續執行,不走下邊的代碼
            if (tag) {
                continue;
            }
            //若是不爲true,則把隨機數放到數組中.
            numArr[index] = num;
            index++;
        }   

        return numArr;
    }
}
相關文章
相關標籤/搜索