抽奖系统

作者: 文艺小年青 | 来源:发表于2017-08-31 08:46 被阅读0次

    如下是功能实现的代码:

    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;
        }
    }
    
    

    相关文章

      网友评论

        本文标题:抽奖系统

        本文链接:https://www.haomeiwen.com/subject/ybifjxtx.html