返回顶部
首页 > 资讯 > 后端开发 > JAVA >【Java】抽奖系统———保姆学习教程
  • 937
分享到

【Java】抽奖系统———保姆学习教程

开发语言javaintellij-ideac语言c++ 2023-09-13 12:09:03 937人浏览 八月长安
摘要

目录  一、抽奖系统介绍  二、代码实现 1、随机生成中奖号码 1.1、中奖号码createNumber方法  1.2、控制判断contains方法 2、用户输入中奖号码 3、判断中奖情况 3.1、判断奖项isWin方法  三、完整代码

目录

 一、抽奖系统介绍

 二、代码实现

1、随机生成中奖号码

1.1、中奖号码createNumber方法

 1.2、控制判断contains方法

2、用户输入中奖号码

3、判断中奖情况

3.1、判断奖项isWin方法 

三、完整代码


 一、抽奖系统介绍

抽奖的号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择,不允许重复,蓝色球号码从1-16中选择。红色球只看值,不看顺序。

注:我们这里规定一等奖为1000万,二等奖为30万,其他与表中一致。

 二、代码实现

1、随机生成中奖号码

1.1、中奖号码createNumber方法

创建一个长度为7的数组存放中奖号码,其中前6个为红球,最后1个为蓝球。

需要注意的是,for循环中,需要把i++放在if判断语句中,当数字重复时不执行i++语句,只有录入成功才进行++操作。

    public static int[] createNumber() {        int[] arr = new int[7];        Random r = new Random();        //生成红球号码        for (int i = 0; i < 6; ) {            int redNumber = r.nextInt(33) + 1;            if (contains(arr, redNumber)) {                arr[i] = redNumber;                i++;            }        }        //生成蓝球号码        int blueNumber = r.nextInt(16) + 1;        arr[6] = blueNumber;        return arr;    }

 1.2、控制判断contains方法

 当数组arr中有num则返回false,没有则返回true。

    public static boolean contains(int[] arr, int num) {        for (int i = 0; i < arr.length; i++) {            if (arr[i] == num) {                return false;            }        }        return true;    }

2、用户输入中奖号码

同样创建一个长度为7的数组,利用键盘录入用户输入号码。同样i++需要放入if判断语句中,当录入成功再进行++操作。

public static int[] userInputNumber() {        int[] arr = new int[7];        Scanner sc = new Scanner(System.in);        //输入红球号码        for (int i = 0; i < 6; ) {            System.out.println("请输入第" + (i + 1) + "红球号码");            int redNumber = sc.nextInt();            if (redNumber >= 1 && redNumber <= 33) {                if (contains(arr, redNumber)) {                    arr[i] = redNumber;                    i++;                } else {                    System.out.println("当前红球号码已存在,请重新输入");                }            } else {                System.out.println("当前红球号码超出范围");            }        }        //输入蓝球号码        while (true) {            System.out.println("请输入蓝球号码");            int blueNumber = sc.nextInt();            if (blueNumber >= 1 && blueNumber <= 16) {                arr[arr.length - 1] = blueNumber;                break;            } else {                System.out.println("当前蓝球号码超出范围");            }        }        return arr;    }

3、判断中奖情况

 定义redCount和blueCount存放相同球的个数,写for循环时需要注意红球的范围。

    public static void main(String[] args) {        //随机生成中奖号码        int[] arr = createNumber();        //用户输入中奖号码        int[] userArr = userInputNumber();        //判断中奖情况        int redCount = 0;        int blueCount = 0;        for (int i = 0; i < userArr.length - 1; i++) {            int redNumber = userArr[i];            for (int j = 0; j < arr.length - 1; j++) {                if (redNumber == arr[j]) {                    redCount++;                    break;                }            }        }        int blueNumber = userArr[userArr.length - 1];        if (blueNumber == arr[arr.length - 1]) {            blueCount++;        }        int winNum = isWin(redCount, blueCount);        switch (winNum) {            case 1 -> System.out.println("恭喜你,中奖1000万");            case 2 -> System.out.println("恭喜你,中奖30万");            case 3 -> System.out.println("恭喜你,中奖3000元");            case 4 -> System.out.println("恭喜你,中奖200元");            case 5 -> System.out.println("恭喜你,中奖10元");            case 6 -> System.out.println("恭喜你,中奖5元");            default -> System.out.println("非常遗憾,没有中奖");        }    }

3.1、判断奖项isWin方法 

 用于判断是否中奖以及中几等奖的函数,几等奖对应返回数字几,并在main中用switch判断。

    public static int isWin(int red, int blue) {        if (red == 6 && blue == 1)            return 1;        else if (red == 6 && blue == 0)            return 2;        else if (red == 5 && blue == 1)            return 3;        else if ((red == 5 && blue == 0) || (red == 4 && blue == 1))            return 4;        else if ((red == 4 && blue == 0) || (red == 3 && blue == 1))            return 5;        else if ((red == 2 && blue == 1) || (red == 1 && blue == 1) || (red == 0 && blue == 1))            return 6;        else            return 7;    }

三、完整代码

import java.util.Random;import java.util.Scanner;public class test7 {    public static void main(String[] args) {        //随机生成中奖号码        int[] arr = createNumber();        //用户输入中奖号码        int[] userArr = userInputNumber();        //判断中奖情况        int redCount = 0;        int blueCount = 0;        for (int i = 0; i < userArr.length - 1; i++) {            int redNumber = userArr[i];            for (int j = 0; j < arr.length - 1; j++) {                if (redNumber == arr[j]) {                    redCount++;                    break;                }            }        }        int blueNumber = userArr[userArr.length - 1];        if (blueNumber == arr[arr.length - 1]) {            blueCount++;        }        int winNum = isWin(redCount, blueCount);        switch (winNum) {            case 1 -> System.out.println("恭喜你,中奖1000万");            case 2 -> System.out.println("恭喜你,中奖30万");            case 3 -> System.out.println("恭喜你,中奖3000元");            case 4 -> System.out.println("恭喜你,中奖200元");            case 5 -> System.out.println("恭喜你,中奖10元");            case 6 -> System.out.println("恭喜你,中奖5元");            default -> System.out.println("非常遗憾,没有中奖");        }    }    public static int isWin(int red, int blue) {        if (red == 6 && blue == 1)            return 1;        else if (red == 6 && blue == 0)            return 2;        else if (red == 5 && blue == 1)            return 3;        else if ((red == 5 && blue == 0) || (red == 4 && blue == 1))            return 4;        else if ((red == 4 && blue == 0) || (red == 3 && blue == 1))            return 5;        else if ((red == 2 && blue == 1) || (red == 1 && blue == 1) || (red == 0 && blue == 1))            return 6;        else            return 7;    }    public static int[] userInputNumber() {        int[] arr = new int[7];        Scanner sc = new Scanner(System.in);        for (int i = 0; i < 6; ) {            System.out.println("请输入第" + (i + 1) + "红球号码");            int redNumber = sc.nextInt();            if (redNumber >= 1 && redNumber <= 33) {                if (contains(arr, redNumber)) {                    arr[i] = redNumber;                    i++;                } else {                    System.out.println("当前红球号码已存在,请重新输入");                }            } else {                System.out.println("当前红球号码超出范围");            }        }        while (true) {            System.out.println("请输入蓝球号码");            int blueNumber = sc.nextInt();            if (blueNumber >= 1 && blueNumber <= 16) {                arr[arr.length - 1] = blueNumber;                break;            } else {                System.out.println("当前蓝球号码超出范围");            }        }        return arr;    }    public static int[] createNumber() {        int[] arr = new int[7];        Random r = new Random();        for (int i = 0; i < 6; ) {            int redNumber = r.nextInt(33) + 1;            if (contains(arr, redNumber)) {                arr[i] = redNumber;                i++;            }        }        int blueNumber = r.nextInt(16) + 1;        arr[6] = blueNumber;        return arr;    }    public static boolean contains(int[] arr, int num) {        for (int i = 0; i < arr.length; i++) {            if (arr[i] == num) {                return false;            }        }        return true;    }}

此次双色球彩票系统的内容就到此为止了,相信大家也能够做出属于自己的双色球彩票系统,这个系统最重要的是代码思维而不是代码本身,理解代码思维能够得到更大的提升。

如果觉得作者写的不错,求给作者一个大大的点赞支持一下,你们的支持是我更新的最大动力!

来源地址:https://blog.csdn.net/zzzzzhxxx/article/details/132817201

--结束END--

本文标题: 【Java】抽奖系统———保姆学习教程

本文链接: https://www.lsjlt.com/news/405935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作