45.【Java 实现双色球中奖查询系统】

简介: 45.【Java 实现双色球中奖查询系统】

(一)、双色球中奖规则:

双色球的中奖规则如下:

1、双色球总共有7个号码,6红1蓝,只要全部买中就会中一等奖(1000万)。

2、只要任意买中6个红球,就会中二等奖(500万)。

3、只要6个球中任意中5个红球+1个蓝球,就会中三等奖(3000元)。

4、只要6个球中任意选中5个红球,或者任意选中4个红球+1个蓝球,就会中四等奖(200元)。

5、只要6个球中任意选中4个红球,或者任意中3个红球+1个蓝球,就会中五等奖(10元)。

6、只要6个球中任意选中2个红球+1个蓝球,或者1个红球+1个蓝球,或者1个蓝球,都可以中六等奖(5元)。

总的来说,双色球中有7个号码,6红1蓝,只要6+1、6+0、5+1、5+0或4+1、4+0或3+1、2+1或1+1或0+1都是可以中奖的,只是中奖的金额不同。

(二)、分布操作:

第一步:(去重)

进行中奖设置,首先我们要用系统随机生成一个7位数的中奖号码,且中奖号码红色的球(前六位不能重复1 ~ 36),蓝色的球可以重复(1~16).

调用随机函数(Random):

import java.util.Random;     //导包
Random r=new Random();      //声明
int idex=r.nextInt();       //引用

设置第一个方法: judgeRead(){}目的是为了去掉奖项中的重复数字

public static boolean judgeRead(int number[],int readidex)      //判断是否有重复
   {
     for(int i=0;i<number.length-1;i++)
     {
//number[]中奖数值,右边是随机值,假如说随机值和中奖值重复返回true否则false  
       if(number[i]==readidex)   
       {
         return true;
       }
     }
     return false;   
   }

第二步:(获奖数)

设置第二个方法: Creatnumber(){}目的是为了创建中奖号码

public static int[] creatNumber()    //创建中奖号码
   {
     int number[]=new int[7];   //设置空数组
     Random r=new Random();   //引用随机
     for(int i=0;i<number.length-1;)   //判断红球,并去重
     {
       int readIdex=r.nextInt(36)+1;   //设定随机范围1~36
       boolean flag=judgeRead(number,readIdex); //判断是否与数字重复
       if(!flag)   //假如说不相同进入体内
       {
         number[i]=readIdex;    //把不相同的数值给数组
         System.out.print(number[i]+" "); //输出
         i++;     //然后进行++操作
       }
     }
     int blueNumber=r.nextInt(16)+1;    //设定篮球范围 1~16
     number[number.length-1]=blueNumber;   //赋值给最后一个数
     System.out.print( number[number.length-1]+" ");  //输出
     return number;  //返回数组
   }

第三步:(用户信息)

设置第三个方法:usernumber(){}目的是为得到用户的信息

public static int[] userInputNumber()         //  用户输入自己的号码
   {
     int user_number[]=new int[7];    //设置7个空间
     Scanner sc=new Scanner(System.in);
     Random r=new Random();
     System.out.println("请您输入您的红色号码:");
     for(int i=0;i<user_number.length-1;)
     {
      System.out.print("请输入"+(i+1)+"个球:");
      int readnumber=sc.nextInt();
      if(readnumber>=1&&readnumber<=36)   //红球范围
      {
        boolean flag=judgeRead(user_number,readnumber);  //去重
        if(!flag)  //假如说不同
        {
          user_number[i]=readnumber;   //红球给数组
          i++;
        }
        else   //否则重新输入
        {
          System.out.println("当前号码以重复,请重新输入:");
         }
      }
      else   //否则重新输入
      {
        System.out.println("当前号码超出范围,请重新输入:");
      }
     }
     while(true)  //蓝色球 范围
     {
     System.out.print("请输入蓝球号码:");
     int bluenumber=sc.nextInt();
     if(bluenumber>1&&bluenumber<16)
     {
       user_number[user_number.length-1]=bluenumber;  //在范围内赋值
       break;   //直接退出
     }
     else  //如果超出范围重新输入
     {
       System.out.println("您输入的数字超出范围,请重新输入:");
     }
     }
     return user_number;    //返回用户的信息
   }

第四步: 中的红球和蓝球个数

设置第四个方法:目的是为了得到红球蓝球的个数

public static void judgeball()         //判断中奖的球数
  {
    System.out.println("随机生成的中奖号码是:");
    int arr[]=creatNumber();   //复制
    System.out.println("");
    System.out.println("\n\n进入用户数页面:\n");
    int userarr[]=userInputNumber();   //复制
    for(int i=0;i<userarr.length-1;i++)
    {
      for(int j=0;j<arr.length-1;j++)
      {
        if(userarr[i]==arr[j])  //假如说红球相同 +1
        {
          count++;
          break;
        }
      }
    }
    if(arr[6]==userarr[6])  假如说蓝球相同  +1
    {
      count1++;
    }
    System.out.println("红球中:"+count+"个,蓝球中:"+count1+"个");
    //打印输出
  }

第五步:计算中奖金额:

调用第五个方法: judgeWard(){}目的是为了中奖金钱

public static void judgeWard()   //判断能得到多少钱?
  {
    switch(count)
    {
    case 0: 
    case 1: if(count1==1) {System.out.println("获得5元奖励");} else {System.out.println("很抱歉,没中奖!");}break;
    case 2:if(count1==1) {System.out.println("获得10元奖励");} else {System.out.println("很抱歉,没中奖!");}break;
    case 3:if(count1==1) {System.out.println("获得10元奖励");} else {System.out.println("很抱歉,没中奖!");}break;
    case 4:if(count1==0) {System.out.println("获得10元奖励");} else{System.out.println("获得200元奖励");}break;
    case 5:if(count1==0) {System.out.println("获得200元奖励");} else{System.out.println("获得3000元奖励");}break;
    case 6:if(count1==0) {System.out.println("获得500万元奖励");} else{System.out.println("获得1000万元奖励");}break;
    }   
  }

第六步:导入主函数:

调用第六个方法:主函数

public static void main(String []avgs)
 { 
     judgeball();
     judgeWard();
}

(三)、整体代码展示:

package test;  //  包名
import java.util.Random;
import java.util.Scanner;
 public class test1 {     //项目名
   static int count=0,count1=0;
   public static int[] creatNumber()    //创建中奖号码
   {
     int number[]=new int[7];   //创建中奖数组
     Random r=new Random();
     for(int i=0;i<number.length-1;)
     {
       int readIdex=r.nextInt(36)+1;
       boolean flag=judgeRead(number,readIdex);
       if(!flag)
       {
         number[i]=readIdex;
         System.out.print(number[i]+" ");
         i++;
       }
     }
     int blueNumber=r.nextInt(16)+1;
     number[number.length-1]=blueNumber;
     System.out.print( number[number.length-1]+" ");
     return number;
   }
   public static boolean judgeRead(int number[],int readidex)      //判断是否有重复
   {
     for(int i=0;i<number.length-1;i++)
     {
       if(number[i]==readidex)
       {
         return true;
       }
     }
     return false;   
   }
   public static int[] userInputNumber()         //  用户输入自己的号码
   {
     int user_number[]=new int[7];
     Scanner sc=new Scanner(System.in);
     Random r=new Random();
     System.out.println("请您输入您的红色号码:");
     for(int i=0;i<user_number.length-1;)
     {
      System.out.print("请输入"+(i+1)+"个球:");
      int readnumber=sc.nextInt();
      if(readnumber>=1&&readnumber<=36)
      {
        boolean flag=judgeRead(user_number,readnumber);
        if(!flag)
        {
          user_number[i]=readnumber;
          i++;
        }
        else
        {
          System.out.println("当前号码以重复,请重新输入:");
         }
      }
      else
      {
        System.out.println("当前号码超出范围,请重新输入:");
      }
     }
     while(true)
     {
     System.out.print("请输入蓝球号码:");
     int bluenumber=sc.nextInt();
     if(bluenumber>1&&bluenumber<16)
     {
       user_number[user_number.length-1]=bluenumber;
       break;
     }
     else
     {
       System.out.println("您输入的数字超出范围,请重新输入:");
     }
     }
     return user_number;
   }
  public static void judgeball()         //判断中奖的球数
  {
    System.out.println("随机生成的中奖号码是:");
    int arr[]=creatNumber();
    System.out.println("");
    System.out.println("\n\n进入用户数页面:\n");
    int userarr[]=userInputNumber();
    for(int i=0;i<userarr.length-1;i++)
    {
      for(int j=0;j<arr.length-1;j++)
      {
        if(userarr[i]==arr[j])
        {
          count++;
          break;
        }
      }
    }
    if(arr[6]==userarr[6])
    {
      count1++;
    }
    System.out.println("红球中:"+count+"个,蓝球中:"+count1+"个");
  }
  public static void judgeWard()   //判断能得到多少钱?
  {
    switch(count)
    {
    case 0: 
    case 1: if(count1==1) {System.out.println("获得5元奖励");} else {System.out.println("很抱歉,没中奖!");}break;
    case 2:if(count1==1) {System.out.println("获得10元奖励");} else {System.out.println("很抱歉,没中奖!");}break;
    case 3:if(count1==1) {System.out.println("获得10元奖励");} else {System.out.println("很抱歉,没中奖!");}break;
    case 4:if(count1==0) {System.out.println("获得10元奖励");} else{System.out.println("获得200元奖励");}break;
    case 5:if(count1==0) {System.out.println("获得200元奖励");} else{System.out.println("获得3000元奖励");}break;
    case 6:if(count1==0) {System.out.println("获得500万元奖励");} else{System.out.println("获得1000万元奖励");}break;
    }
  }
  public static void main(String []avgs)
 { 
     judgeball();
     judgeWard();
}
 }

效果展示:

双色球


相关文章
|
17天前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
165 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
19天前
|
前端开发 JavaScript Java
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
84 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
|
20天前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
82 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
19天前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
61 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
23天前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
80 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
16天前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
58 5
|
1月前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
63 6
|
2天前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
89 60
【Java并发】【线程池】带你从0-1入门线程池
|
13天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
72 14
|
16天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
48 13

热门文章

最新文章