双色球系统开发

双色球系统


案例:

案例

中奖条件及奖金表

代码及解释

main方法代码:

public static void main(String[] args) {
        //1.随机6个红球号码(1~33,不能重复),随机一个蓝球号码(1~16)
        int[] num = createLuckNumber();
//        printArray(num);
//        System.out.println();

        //2.调用一个方法让用户输入7个号码,作为用户选号
        int[] userNums = userInputNumbers();
//        printArray(userNums);

        //3.判断中奖情况
        judge(num,userNums);
    }

系统产生随机双色球号码的代码

public static int[] createLuckNumber() {
        //a、定义一个动态初始化的数组,存储7个数字
        int[] number = new int[7];
        //b、遍历数组,为每个位置生成对应的号码(注意只遍历前6个不重复的红球号码,范围1~33)
        Random random = new Random();
        for (int i = 0; i < number.length - 1; i++) {
            //为当前位置找出不重复的6个不重复且符合范围的数

            while (true) {
                int data = random.nextInt(33) + 1;
                //c、注意:必须判断当前随机的这个号码之前是否出现过,出现过要重新随机一个,知道不重复位置
                // 定义一个flag变量,默认true是没有重复的
                boolean flag = true;
                for (int j = 0; j < i; j++) {
                    if (number[j] == data) {
                        //data当前数字前面出现过,不能用并且对flag进行标记
                        flag = false;
                        break;
                    }
                }
                if (flag) {
                    //data当前值前面没出现过
                    number[i] = data;
                    break;
                }
            }
        }
        // d.为第7个位置生成一个1~16的篮球号码
        number[number.length - 1] = random.nextInt(16) + 1;
        return number;
    } //系统产生随机双色球号码

用户输入自己的双色球号码的代码

public static int[] userInputNumbers() {
        //a.定义一个数组存储7个号码
        int[] numbers = new int[7];
        //b.让用户录入6个红球号码
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < numbers.length - 1; i++) {
            System.out.println("请您输入第" + (i + 1) + "个红球号码(1 ~ 33,要求数字不重复):");
            int data = scanner.nextInt();
            //c.把当前录入的号码存入数组中
            numbers[i] = data;

        }
        //d.单独录入一个蓝球号码
        System.out.println("请您输入蓝球号码(1 ~ 16):");
        numbers[6] = scanner.nextInt();

        return numbers;
    } //用户输入自己的双色球号码

中奖情况分析及中奖结果输出的代码

public static void judge(int[] num, int[] userNums) {
        //判断是否中奖了
        //1.定义两个变量分别存储红球,蓝球的命中个数
        int redHit = 0;
        int blueHit = 0;

        //2.判断红球命中了几个
        for (int i = 0; i < num.length - 1; i++) {
            for (int j = 0; j < userNums.length - 1; j++) {
                if (num[i] == userNums[j]) {
                    redHit++;
                    break;
                }
            }
        }
        //3.判断蓝球是否命中
        blueHit = num[num.length - 1] == userNums[userNums.length - 1] ? 1 : 0;

        System.out.println("中奖号码为:");
        printArray(num);
        System.out.println();
        System.out.println("您投注的号码为:");
        printArray(userNums);
        System.out.println();
        System.out.println("您命中红球的个数为:" + redHit);
        System.out.println("您命中蓝球的个数为:" + blueHit);
        //最后判断中奖情况输出中奖结果:
        if (blueHit == 1 || redHit < 3) {
            System.out.println("恭喜您,中了六等奖 5 元");
        } else if (blueHit == 1 && redHit == 3 || blueHit == 0 && redHit == 4) {
            System.out.println("恭喜您,中了五等奖 10 元");
        } else if (blueHit == 1 && redHit == 4 || blueHit == 0 && redHit == 5) {
            System.out.println("恭喜您,中了四等奖 200 元大奖");
        } else if (blueHit == 1 && redHit == 5) {
            System.out.println("恭喜您,中了三等奖 3000 元大奖");
        } else if (blueHit == 0 && redHit == 6) {
            System.out.println("恭喜您,中了二等奖 500万 超级大奖!");
        } else if (blueHit == 1 && redHit == 6) {
            System.out.println("恭喜您,中了一等奖 1000万 巨奖!!");
        } else {
            System.out.println("感谢您为福利事业做出的贡献!!!");
        }

    } //中奖情况分析及中奖结果输出


案例来自黑马案例7

posted @ 2022-06-23 18:32  Haziy  阅读(69)  评论(0编辑  收藏  举报