双色球彩票系统

题目

实验研究目标:

1.实现双色球号码的自动抽取。

2.通过双色球的号码与用户号码进行对比,判断中奖金额。

双色球中奖条件和奖金表如下图所示:
请添加图片描述

分析

一、随机抽取双色球

  1. 将双色球的数字放进数组arr[ ]中,数组长度7,红球在前,蓝球在后,蓝球为数组最后一个。
  2. 随机抽取红色球,要注意的一点是,每个球的号码都是唯一,抽取之后就无法再抽取.
  3. 所以在写随机抽取红球之前,要先判断是否数字重合。
    代码如下:
public static boolean contains(int []arr,int Number){
        for (int i = 0; i < 6; i++) {
            if(arr[i]==Number){
                return true;
            }
        }
        return false;
    }
  1. 开始抽取红球,运用random函数,随机在33个号码中抽取一个数字。
int []arr = new int[7];
        //随机抽取红球数字
        Random r = new Random();
        for (int i = 0; i < 6; ) {
            int redNumber = r.nextInt(33)+1;
            boolean flag = contains(arr,redNumber);
            if(!flag){
                arr[i] = redNumber;
                i++;
            }
  1. 现在开始随机抽取蓝球
//随机抽取蓝球
        int blueNumber = r.nextInt(16)+1;
            arr[arr.length-1] = blueNumber;
        }
        return arr;

二、用户抽取双色球

  1. 输入红球号码
    注意事项:
    红球号码是1-33,不能超过,不能重复
int []arr = new int[7];
        Scanner scan  = new Scanner(System.in);
        for (int i = 0; i < 6; ) {
            //写入红球数字
            System.out.println("请输入第"+(i+1)+"个红球数字");
            int redNumber = scan.nextInt();
            if(redNumber>=1&&redNumber<=33){
                boolean flag = contains(arr,redNumber);
                if(!flag){
                    //如果不存在
                    arr[i] = redNumber;
                    i++;
                }else{
           System.out.println("该数字重复,请重新输入红球数字");
                }
            }else{
                System.out.println("当前红球数字超出范围");
            }
        }

2.开始写入蓝球(只需注意不要超过1-16)

System.out.println("请输入蓝球数字");
        int blueNumber = scan.nextInt();
        if(blueNumber>=1&&blueNumber<=16){
            arr[arr.length-1] = blueNumber;
        }else{
            System.out.println("当前蓝球数字超出范围");
        }

3.总代码:

public static int [] userNumber(){
        int []arr = new int[7];
        Scanner scan  = new Scanner(System.in);
        for (int i = 0; i < 6; ) {
            //写入红球数字
            System.out.println("请输入第"+(i+1)+"个红球数字");
            int redNumber = scan.nextInt();
            if(redNumber>=1&&redNumber<=33){
                boolean flag = contains(arr,redNumber);
                if(!flag){
                    //如果不存在
                    arr[i] = redNumber;
                    i++;
                }else{
           System.out.println("该数字重复,请重新输入红球数字");
                }
            }else{
                System.out.println("当前红球数字超出范围");
            }
        }
        System.out.println("请输入蓝球数字");
        int blueNumber = scan.nextInt();
        if(blueNumber>=1&&blueNumber<=16){
            arr[arr.length-1] = blueNumber;
        }else{
            System.out.println("当前蓝球数字超出范围");
        }
        return arr;
    }

三、判断是否中奖

  1. 根据红球和蓝球的个数来判断中奖金额
  2. 先定义两个变量: redcount,bluecount
  3. 判断红球个数(将两个数组的值进行比较,若相等,则个数加一)
for (int i = 0; i < userInputNumber.length-1; i++) {
            int redNumber = userInputNumber[i];
            for (int i1 = 0; i1 < arr.length-1; i1++) {
                if(arr[i1]==redNumber){
                    redcount++;
                    break;
                }
            }
        }

判断蓝球个数

//判断蓝球
        int bludNumber = userInputNumber[userInputNumber.length-1];
        if(bludNumber == arr[arr.length-1]){
            bluecount++;
        }

显示中奖

//恭喜中奖
        if(redcount == 6&&bluecount==1){
            System.out.println("恭喜你中奖1000万");
        }
        else if(redcount == 6&&bluecount==0){
            System.out.println("恭喜你中奖500万");
        }
        else if(redcount == 5&&bluecount==1){
            System.out.println("恭喜你中奖3000元");
        }
        else if((redcount == 5&&bluecount==0)||(redcount == 4&&bluecount==1)){
            System.out.println("恭喜你中奖200元");
        }
        else if((redcount == 4&&bluecount==0)||(redcount == 3&&bluecount==1)){
            System.out.println("恭喜你中奖10元");
        }
        else if((redcount == 3&&bluecount==0)||(redcount == 2&&bluecount==1)||(redcount == 2&&bluecount==0 )||(redcount ==1&&bluecount==1)||(redcount == 0&&bluecount==1)){
            System.out.println("恭喜你中奖5元");
        }
        else {
            System.out.println("谢谢惠顾");
        }

四、总代码

import java.util.Random;
import java.util.Scanner;

public class shuangSEqiu {
    public static void main(String[] args) {
        int []arr = createNumber();
        System.out.println("=====本次中奖号码=====");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        //用户输入
        int []userInputNumber = userNumber();
        //判断用户的中奖情况
        int redcount = 0;
        int bluecount = 0;
        //判断红球
        for (int i = 0; i < userInputNumber.length-1; i++) {
            int redNumber = userInputNumber[i];
            for (int i1 = 0; i1 < arr.length-1; i1++) {
                if(arr[i1]==redNumber){
                    redcount++;
                    break;
                }
            }
        }
        //判断蓝球
        int bludNumber = userInputNumber[userInputNumber.length-1];
        if(bludNumber == arr[arr.length-1]){
            bluecount++;
        }
        //恭喜中奖
        if(redcount == 6&&bluecount==1){
            System.out.println("恭喜你中奖1000万");
        }
        else if(redcount == 6&&bluecount==0){
            System.out.println("恭喜你中奖500万");
        }
        else if(redcount == 5&&bluecount==1){
            System.out.println("恭喜你中奖3000元");
        }
        else if((redcount == 5&&bluecount==0)||(redcount == 4&&bluecount==1)){
            System.out.println("恭喜你中奖200元");
        }
        else if((redcount == 4&&bluecount==0)||(redcount == 3&&bluecount==1)){
            System.out.println("恭喜你中奖10元");
        }
        else if((redcount == 3&&bluecount==0)||(redcount == 2&&bluecount==1)||(redcount == 2&&bluecount==0 )||(redcount ==1&&bluecount==1)||(redcount == 0&&bluecount==1)){
            System.out.println("恭喜你中奖5元");
        }
        else {
            System.out.println("谢谢惠顾");
        }
    }
    //用户输入中奖号码
    public static int [] userNumber(){
        int []arr = new int[7];
        Scanner scan  = new Scanner(System.in);
        for (int i = 0; i < 6; ) {
            //写入红球数字
            System.out.println("请输入第"+(i+1)+"个红球数字");
            int redNumber = scan.nextInt();
            if(redNumber>=1&&redNumber<=33){
                boolean flag = contains(arr,redNumber);
                if(!flag){
                    //如果不存在
                    arr[i] = redNumber;
                    i++;
                }else{
                    System.out.println("该数字重复,请重新输入红球数字");
                }
            }else{
                System.out.println("当前红球数字超出范围");
            }
        }
        System.out.println("请输入蓝球数字");
        int blueNumber = scan.nextInt();
        if(blueNumber>=1&&blueNumber<=16){
            arr[arr.length-1] = blueNumber;
        }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;
            boolean flag = contains(arr,redNumber);
            if(!flag){
                arr[i] = redNumber;
                i++;
            }
        //随机抽取蓝球
        int blueNumber = r.nextInt(16)+1;
            arr[arr.length-1] = blueNumber;
        }
        return arr;
    }
    public static boolean contains(int []arr,int Number){
        for (int i = 0; i < 6; i++) {
            if(arr[i]==Number){
                return true;
            }
        }
        return false;
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值