1、双色球系统-业务分析、随机生成一组中奖号码

 中奖号码由6个红球和1个篮球组成(注意:6个红球要求不能重复)。

可以定义方法用于返回一组中奖号码(7个数据),返回的形式是一个整型数组

如何去保证随机的6个中奖的红球号码不重复?

                        每次随机一个红球号码后去数组中判断是否存在。

                        存在需要重新随机一个数字直到不重复为止。

2、双色球系统-用户输入一组双色球号码

定义一个方法,该方法可以录入用户输入的6个红球和1个篮球号码

该方法最终需要返回一个数组,数组中就是用户录入的号码(7位)

3、模拟双色球系统-判断中奖情况

定义一个方法,可以接收中奖号码的数组,用户选号的数组。

根据命中红球数和篮球数判断最终的中奖情况并输出详情和中奖金额。
如何去统计红球的命中数量?
遍历用户的每个选号,然后遍历中奖号码的数组。
看当前选号是否在中奖号码中存在,存在则命中数量加1

完整代码: 

package com.hmy.exer;import java.util.Random;
import java.util.Scanner;public class Text {public static void main(String[] args) {
//        1、随机6个红球号码(1-33  不能重复),随机一个篮球号码(1-16) ,可以采用数组装起来作为中奖号码int[] luckNumbers=   createLuckNumber();
//        printArray(luckNumbers);//     2、调用一个方法让用户输入七个号码作为用户选号int[] userNumbers = userInputNumbers();
//        printArray(userNumbers);judge(luckNumbers ,userNumbers);}public  static int[] createLuckNumber(){
//        a.定义一个动态初始化的数组,存储七个数字int[]  numers = new int[7];
//        b.遍历数组,为每个位置生成对应的号码(注意 , 遍历前六个位置,生成六个不重复的红球号码,范围是(1-33)Random r = new Random();for (int i = 0; i < numers.length; i++) {while (true){int data =r.nextInt(33)+1;
//      c、注意,必须判断当前随机的号码有没有重复,若重复,则必须要重新随机一个号码 直到不重复为止,才可以存到数组中去//                定义一个flag变量,默认data没有重复boolean flag =true;for (int j = 0; j <i; j++) {if(numers[j]==data){
//                        data这个数据之前出现过,不能用flag=false;break;}}if(flag){
//                    说明data这个数据之前没有出现过 可以使用 并并把它装到数组中去numers[i]=data;break;}}}
//        d. 为第七个位置生成一个1-16的号码作为蓝球号码numers[numers.length-1]= r.nextInt(16)+1;return numers;}public  static  int[] userInputNumbers(){
//        a.定义一个数组存储七个号码int[] numers =new int [7];
//        b.让用户录入六个红球号码Scanner sc = new Scanner(System.in);for (int i = 0; i < numers.length-1 ; i++) {System.out.println("请您输入第"+(i+1)+"个红球号码(1-33)");int data = sc.nextInt();
//            c、把当前录入的数据存到数组中去numers[i] = data;}System.out.println("请您输入一个蓝球号码(1-16)");numers[numers.length-1]=sc.nextInt();return  numers;}public  static  void  printArray(int[] arr){System.out.print("[");for (int i = 0; i < arr.length; i++) {System.out.print(i==arr.length-1 ?  arr[i]: arr[i]+",");}System.out.println("]");}public  static  void  judge(int[] luckyNumbers ,  int[] userNumbers){
//        判断是否中奖了
//        1、定义两个变量分别存储红球命中个数与篮球命中个数。int redHitNumbers = 0;int blueHitNumbers = 0;//        2、判断红球命中个数,开始统计for (int i = 0; i < userNumbers.length-1; i++) {for (int j = 0; j < luckyNumbers.length-1; j++) {
//                每次找到相等的就意味着当前号码命中了if (userNumbers[i]==luckyNumbers[j]){redHitNumbers++;break;}}}//        判断篮球号码是否命中blueHitNumbers= luckyNumbers[luckyNumbers.length-1] == userNumbers[userNumbers.length-1] ? 1:0;System.out.println("中奖号码是:");printArray(luckyNumbers);System.out.println("您选的号码是:");printArray( userNumbers);System.out.println("您命中了" +redHitNumbers +"个红球");System.out.println("您是否命中篮球:" + (blueHitNumbers==1? "是" : "否"));
//        判断中奖情况if(blueHitNumbers==1 && redHitNumbers<3){System.out.println("恭喜您中了五元");}else if ( blueHitNumbers ==1 && redHitNumbers==3 || blueHitNumbers==0 && redHitNumbers==4) {System.out.println("恭喜你中了十元");} else if ( blueHitNumbers ==1 && redHitNumbers==4 || blueHitNumbers==0 && redHitNumbers==5) {System.out.println("恭喜你中了两百元");} else if ( blueHitNumbers ==1 && redHitNumbers==5) {System.out.println("恭喜您中了三千元");} else if (blueHitNumbers ==0 && redHitNumbers==6) {System.out.println("恭喜您中了五百万");} else if (blueHitNumbers ==1 && redHitNumbers==6) {System.out.println("恭喜您中了一千万");}else {System.out.println("很遗憾,您没有中奖! 感谢您对福利事业做出的贡献!");}}}

java案例:模拟双色球中奖相关推荐

  1. Linux:模拟双色球中奖的脚本

    模拟双色球中奖的脚本 前几天已经写过一个模拟双色球生成一注号码的脚本,这次调整了一下代码,把中奖的过程也写进去,实现双色球的抽奖功能. 画出代码的流程图 脚本如下 #!/bin/bash functi ...

  2. 用C#实现模拟双色球中奖程序 控制台应用程序

    用C#实现模拟双色球中奖控制台应用程序 前言 课题介绍 用到的按键 程序设计 核心代码 完 前言 这是我在大一第一学期C#的课程设计,要求编写一个模拟双色球彩票的控制台应用程序,用以实现简单的模拟选购 ...

  3. java基础案例-模拟双色球

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.需求 二.分析 三.代码 四.效果图 总结 如何保证随机的6个中奖的红球号码不重复. 如何统计红球命中数量 一.需求 1 ...

  4. Java如何模拟双色球彩票系统?

    Java模拟双色球彩票系统 1. 功能介绍 2. 代码展示 总结 1. 功能介绍 投注号码由6个红球号码和1个蓝球号码组成,红球号码从1-33中选择,蓝球号码从1-16中选择 2. 代码展示 代码如下 ...

  5. 用C#实现模拟双色球中奖控制台应用程序

    1. 前言 其实这是我在大一第一学期CSharp的课程设计,要求编写一个模拟双色球彩票的控制台应用程序,用以实现简单的模拟选购彩票. 但最近我重新看我的博客时感觉之前写的代码还是有很多不足之处,比如变 ...

  6. 用python模拟双色球中奖,看看怎么买彩票最科学

    最近自学python,主要还是被铺天盖地的广告洗了个脑,完全外行,学python就是为了好玩和轻量化的自动办公.然后一日突发奇想,双色球是概率问题,但是有单注和复式的玩法,那么怎么买比较科学呢?所以撸 ...

  7. Java经典案列——模拟双色球(含完整代码)

    今天给大家分享一个Java经典案例--模拟双色球,通过这个案例对之前所学习的循环语句.数组.方法做一个简单的总结,下面先来看题目: 题目 在双色球系统中,其投注号码由六个红球和一个蓝球组成,其中红球从 ...

  8. java模拟双色球彩票程序

    /** * 案例 模拟双色球 * 系统生成一个蓝球和六个红球 并存储起来 * 接受用户选号 1个蓝球 和 6个红球 * 验证比较用户是否中奖 * 公布本期中奖号码 */ import java.uti ...

  9. 如何JAVA中模拟实现双色球

    package TestDemo;import java.util.Random; import java.util.Scanner;/*** 模拟双色球中奖情况*/ public class Dem ...

  10. 【用java写的】双色球中奖模拟器

    双色球,6个红球,1个蓝球,而且红球中的数据不能重复,红球的数字范围为1-33,蓝球的数字范围为1-16. 然后我们作为彩民,自己买号,在模拟器中则自己依次输入每个球对应的号码,最后开奖的时候判断我们 ...

最新文章

  1. VIPER 和 MVVM 到底有什么区别
  2. VMware 虚拟化编程(14) — VDDK 的高级传输模式详解
  3. 02-maven常用命令,以及使用命令创建目录
  4. 又一个程序员在工位上倒下了!
  5. anaconda配置python_interpreter报错_MAC系统下SublimeText3 Python环境配置参考
  6. Navicat Premium 12安装包下载
  7. stm32f107ptp时钟同步
  8. 电阻温度系数、电阻精度对电阻分压采样电压的影响
  9. unbuntu下gedit编辑花屏(重影 )问题解决
  10. 鸿蒙开发必备书籍整理【收藏系列】
  11. 3位1体学习法(smart哥)
  12. python 爬取《时间的形状》微信公号
  13. m3u8下载时出现跨域的解决方法
  14. SQL执行计划--HIT、SQLPLAN
  15. 【品牌DTC增长力】私域,你做的可能是“假的”
  16. 【随机过程】随机过程第一章 随机过程的基本概念
  17. 裴波那契数列及其递归算法
  18. html 鼠标悬停显示文字
  19. Double类型精度问题引起的错误
  20. 别找了,完整代码在这||校园导游咨询系统

热门文章

  1. ibm大型机服务器虚拟化,PowerVM:IBM小型机虚拟化的利器
  2. AndroidStudio升级到3.1+之后,出现Java.util.NoSuchElementException
  3. android 光标的绘制,Android EditText(TextView)如何绘制闪烁的光标?
  4. List集合按数量分组
  5. 三态门有一个信号控制端en_什么是三态门? 三态逻辑与非门电路以及三态门电路...
  6. 关于计算机软件的使用 正确的认识应该是,计算机二级考试单选题训练题库
  7. 运算电路的基本定义和运算电路经典基本电路图
  8. Adobe ColdFusion
  9. org.apache.hadoop.hive.ql.exec.mr.MapRedTask. Could not find status of job:job_1649726530586_123811
  10. 微信更新版本下载链接汇总【持续更新】