java基础项目练习

双色球项目代码。
分成三个部分来写
1,先写入随机生成的6位红球和1位蓝球
2,写入让用户输入的7位幸运号码
3,两组数组之间进行比较
建议先将基本代码写出来,然后再慢慢加上一些细节代码,这样思路会更加清晰

 //功能一,生成一个随机的7位双色球

    public static int[] LuckNumber() {
        //1.先定义数组存储
        int[] numbers = new int[7];
        Random r = new Random();
        //2.使用循环遍历数组,先弄6个红球的数据
        for (int i = 0; i < numbers.length - 1; i++) {
            //3.随机生成的数字,放入数组
            //4.随机数会生成相同的数字,每次生成前要去遍历前面的数字,是否有生成过。
            // 如果有,就重新生成,直到前面没有一样的为止
            numbers[i] = r.nextInt(33) + 1;
            out:
            for (int j = 0; j < i; j++) {
                if (numbers[j] == numbers[i]) {
                    //生成一个新的随机数
                    numbers[i] = r.nextInt(33) + 1;
                    //重新跳转回去,再来一次遍历
                    break out;
                }
            }
        }
///定义第二个功能,用户买票功能
    public static int[] user() {

        //1.定义动态数组,给用户输入7位数字
        int[] a = new int[7];
        Scanner sc = new Scanner(System.in);
        //2.遍历数组,让用户输入所选的数字,先输入6位红球号码
        System.out.println("请先输入红球号码");

        for (int i = 0; i < 6; i++) {

            System.out.print("请输入第" + (i + 1) + "个号码" + "\t");
            int inpu = sc.nextInt();
            a[i] = inpu;
            //一,用户会输入错的情况有两种 1.输入重复了 2.输入的数字不是1-33内

            //用一个死循环来判断
            while (true) {
                //利用一个前定义来判断,是否该结束while循环
                boolean fale = true;
                //第一种情况,用遍历来解决
                for (int j = 0; j < i; j++) {

                    if (a[i] == a[j]) {
                        System.out.println("输入的数字重复,请重新选号");
                        inpu = sc.nextInt();
                        a[i] = inpu;
                        fale = false;
                        break;
                    }
                }
                //第二种情况,嵌套一个死循环
                while (true) {
                    if (inpu > 33 || inpu < 1) {
                        System.out.println("你输入的号码超出范围,请重新输入");
                        inpu = sc.nextInt();
                        a[i] = inpu;

                    }
                    if (inpu <= 33 && inpu >= 1) {
                        break;
                    }

                }
                //如果fale == true 那么就代表着两个问题都没有问题
                if (fale == true) {

                    break;
                }
            }

        }
        //3.红球录完录蓝球
        System.out.println("请输入蓝球号码:");
        a[6] = sc.nextInt();

        //如果输入蓝球不在1-16的范围需要重新输入
        while (true) {

            if (a[6] > 16 || a[6] < 1) {
                System.out.println("你输入的蓝球号码有误!!");
                System.out.println("请重新输入");
                a[6] = sc.nextInt();
            }
            if (a[6] <= 16 && a[6] >= 1) {
                break;
            }
        }

        return a;
    }
 //第三个功能
    //实现两组数据的相互判断是否相等
    public static void NumberContrast(int[] a, int[] b) {
        //定义一个数组来存储中奖的号码
        int[] Luck = new int[a.length];
        int n = 0;
        //没有顺序规则,所以使用嵌套for循环来判断是否有数字相等
        //红球跟蓝球规则不一样,
        for (int i = 0; i < a.length - 1; i++) {

            for (int j = 0; j < b.length - 1; j++) {

                if (a[i] == b[j]) {
                   // System.out.print("猜中号码为:" + b[j]);
                    n++;
                    break;
                }
            }
        }
        int m = 0;
        if (a[a.length - 1] == b[b.length - 1]) {
            m = 1;

        }
        System.out.println();
        switch (m) {
            case 0:
                switch (n) {
                    case 4:
                        System.out.println("恭喜你中了10元小奖!");
                        break;
                    case 5:
                        System.out.println("恭喜你中了200元小奖!");
                        break;
                    case 6:
                        System.out.println("恭喜你中了500w元大奖!");
                        break;
                    case 0:
                        System.out.println("很遗憾你没有中奖");
                        break;
                    case 1:
                        System.out.println("很遗憾你没有中奖");
                        break;
                    case 2:
                        System.out.println("很遗憾你没有中奖");
                        break;
                    case 3:
                        System.out.println("很遗憾你没有中奖");
                        break;

                }
                break;


            case 1:
                switch (n) {

                    case 0:
                    case 1:
                    case 2:
                        System.out.println("恭喜你中了5元小奖!");
                        break;
                    case 3:
                        System.out.println("恭喜你中了10元小奖!");
                        break;
                    case 4:
                        System.out.println("恭喜你中了200元小奖");
                        break;
                    case 5:
                        System.out.println("恭喜你中了3000元大奖");
                        break;
                    case 6:
                        System.out.println("恭喜你中了1000w大奖元小奖");
                        break;


                }
                break;


        }
        System.out.println("你命中了几个红球:"+n);
        System.out.print("你是否命中蓝球:");
        if (m==0){
            System.out.println("否");
        }
        else
            System.out.println("是");
        System.out.println("感谢你为福利事业做出的贡献");

    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值