JAVA思维提升

news/2024/10/7 17:47:08 标签: java, 开发语言

利用java做一个双色球彩票系统

要求

java">package ZY;
import java.util.Random;
import java.util.Scanner;
public class Test9双色球 {
//目标:模拟双色球
    //规则投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16中选择。
    public static void main(String[] args) {
        //定义一个数组接受输入数字产生的数组
       int num[]= numbers();
        System.out.println("您的号码是");
       pr(num);
        //定义一个数组接受随机数字产生的数组
        int num2[] = createNumbers();
        System.out.println("中奖号码是");
        pr(num2);
        //调用中将判断的情况
       userNumbers(num,num2);//传入客户猜的数字的数组和系统答案的数组
    }
    public static void pr(int[] num) {
        System.out.print("[");
        for (int i = 0; i < num.length; i++) {
            System.out.print(i<num.length-1?num[i] + ", ":num[i]);
        }
        System.out.println("]");
    }
 //第一步:业务分析、用户投注一组号码
    //1.1、 设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后1个是蓝球号码 )
    public static int[] numbers() {
        //1.2、创建一个整型数组,用于存储用户投注的7个号码(前6个是红球号码,最后1个是蓝球号码)
        int number [] = new int[7];
        Scanner Y = new Scanner(System.in);
        // 1.3、遍历前6个位置,让用户依次投注6个红球号码,存入
        for (int i = 0; i < number.length-1; i++) {//-1是因为最后一位要去存储蓝球
           while (true) {//放到死循环里面,让他每次都去执行判断
               //1. 4、开始让用户为当前位置投注一个红球号码(1-33之间,不能重复)
               System.out.println("请输入第"+(i+1)+"个红球号码(1-33之间)");
               int num = Y.nextInt();
               //1.5、先判断用户输入的红球号码是否在1-33之间
               if (num<1||num>33) {
                   System.out.println("对不起,您输入的红球号码不在1-33之间,请确认!");
               }
               //1.6通过上面的if判断了号码是在1-33之间了,接着还要继续判断这个号码是否重复,不重复才可以使用
               else {
                  //1.6、 定义一个方法来判断是不死与前面输入的号码重复了
                  if ( exist(number,num))//传入数组和输入的数字,返回的是布尔类型,再利用if进行判断
                       {//当返回的是true的时候是重复了
                           System.out.println("对不起,您当前输入的红球号码前面选择过,重复了,请确认!");
                       }else {//此时没重复可以放进数组了
                      number[i]=num;//遍历下标放进数组里面
                      break;//录入成功后,结束死循环
                       }
               }
           }
        }
        //1.7、投注最后一个蓝球号码
        while (true)//设置一个死循环,里层也惊醒判断和输出
        {
            System.out.println("请您输入最后1个蓝球号码(1-16):");
            int num = Y.nextInt();
            //判断是否在蓝球号码的范围里面
            if (num<1||num>16) {
                System.out.println("对不起,您输入的蓝球号码范围不对!");
            }else {
                //在范围里面直接把号码放进数组的最后一位
                number[6] = num;
                break;//录入成功后,结束死循环
            }
        }
        return number;
    }
        //创建一个返回布尔类型对数据进行判断是否重复的方法
    private static boolean exist(int[] number, int num) {
        for (int i = 0; i < number.length; i++) {
            if (number[i]==num) {
                return true;//此时就是重复
            }
        }
        return false;//没有重复的时候返回的代码
    }
//第二步:随机生成一组中奖号码
    //2.1、 设计一个方法,随机产生一组号码并返回(前6个是红球号码,最后1个是蓝球号码 )(利用函数组返回)
    public  static int[] createNumbers(){
       //2.2、定义一个空数组接受随机数
        int num2[] = new int[7];
        Random Q = new Random();
        for (int i = 0; i < num2.length-1; i++) {//-1是因为最后一位要去存储蓝球
            //每次遍历产生一个随机数
            int num = Q.nextInt(33)+1;//这种形式值从1-33都取闭区间
            //2.3、判断是否与前面的重复,同样需要放进一个死循环中一直执行
            while (true){
                if (!exist(num2,num))//此处!exist的意思是因为如果没有重复则false,!false就是true则可以执行后面的代码
                {
                    num2[i]=num;
                    break;//录入成功后,结束死循环
                }
            }
        }
        //2.4、产生最后一个蓝球号码
        int num3 = Q.nextInt(16)+1;//这种形式值从1-16都取闭区间
        num2[6]=num3;
        return num2;
    }
//第三步:判断中奖情况
    //3.1定义一个进行判断中奖情况的方法
    public static void  userNumbers(int number1[],int number2[]){
        //3.2、定义两个变量来接受红球猜中了几个,蓝球猜中了几个
        int red = 0;
        int bule = 0;
        //3.3、需要定义两个循环进行嵌套
        for (int i = 0; i < number1.length-1; i++) {
            //-1是因为最后一位要去存储蓝球
            for (int j = i+1; j < number2.length-1; j++) {
                if (number1[i]==number2[j]) {//拿外部用户输入的第一个数字对系统产生的数字挨个进行判断是否相等
                    red++;
                    break;//跳出内部的for循环
                }
            }
        }
        bule = number1[6] == number2[6] ? 1 : 0;//3.4、利用三元判断进行判断最后一个蓝球是不是相等
        System.out.println("您命中的红球数量是:"+red);
        System.out.println("您命中的蓝球数量是:"+bule);
    //3.5、进行判断奖金和中奖情况
        if (red==6&&bule==1){
            System.out.println("恭喜您,中奖1000万,可以开始享受人生了~~~");
        } else if (red==6&&bule==0) {
            System.out.println("恭喜您,中奖500万,可以稍微开始享受人生了~~~");
        } else if (red==5&&bule==1) {
            System.out.println("恭喜您,中奖3000元,可以出去吃顿小龙虾了~");
        } else if (red==5&&bule==0||red==4&&bule==1) {
            System.out.println("恭喜您,中了小奖:200元~");
        } else if (red==4&&bule==0||red==3&&bule==1) {
            System.out.println("中了10元~");
        } else if (red<3&&bule==1) {
            System.out.println("中了5元~~");
        }else {
            System.out.println("感谢您对福利事业做出的巨大贡献~~~");
        }

    }
}

 


http://www.niftyadmin.cn/n/5693134.html

相关文章

JS模块化工具requirejs详解

文章目录 JS模块化工具requirejs详解一、引言二、RequireJS 简介1、什么是 RequireJS2、RequireJS 的优势 三、RequireJS 的使用1、配置 RequireJS1.1、基础配置 2、定义模块3、加载模块 四、总结 JS模块化工具requirejs详解 一、引言 随着前端技术的快速发展&#xff0c;Jav…

Maven - 依赖管理

依赖配置 在pom.xml的project标签内添加dependencies标签&#xff0c;之后添加依赖配置。 <dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.4.5</version>…

用CSS创造三角形案例

6.3.2 用CSS创造三角形 用div来创建&#xff0c;角上是平分的&#xff0c;所以要是内部宽高为0&#xff0c;其他边透明&#xff0c;正好是三角形。 代码 div {border: 12px solid;width: 0;height: 0;border-color: transparent red transparent transparent; } 与伪元素aft…

005集—— 用户交互之CAD窗口选择图元实体(CAD—C#二次开发入门)

如下图&#xff1a;根据提示选择若干图形要素&#xff0c;空格或右键结束选择&#xff0c;返回图元的objectid&#xff0c;以便进一步操作图元实体。 代码如下&#xff1a; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.Aut…

卡码网104.建造最大岛屿

题目 104. 建造最大岛屿 (kamacoder.com) 代码&#xff08;ACM 首刷看解析&#xff09;&#xff1a; #include<iostream> #include<vector> #include<unordered_map> #include<unordered_set> using namespace std;int dir[4][2] {1,0,-1,0,0,1,0,-…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 12数据中心中的EVPN

研究数据中心如何进行网络虚拟化配置之前&#xff0c;我们需要熟悉 EVPN的基础知识。如前所述&#xff0c;EVPN是一种为网络虚拟化提供控制平面的解决方案。用最简单的术语来说&#xff0c;EVPN是一种连接被三层网络分隔的二层网段的技术。EVPN通过在三层网络之上构建出一个叠加…

如何判断静态代理IP地址是否被污染?

在网络使用中&#xff0c;静态IP代理是一种常见的工具&#xff0c;用于维持稳定的连接和保护个人隐私。然而&#xff0c;有时这些IP地址可能会被污染&#xff0c;导致用户遭受各种问题&#xff0c;如连接延迟、数据泄露等。因此&#xff0c;了解如何判断址是否被污染至关重要。…

C嘎嘎入门篇:类和对象番外(时间类)

前文&#xff1a; 小编在前文讲述了类和对象的一部分内容&#xff0c;其中小编讲述过运算符重载这个概念以及一个时间类&#xff0c;当时小编讲的没有那么细致&#xff0c;下面小编将会讲述时间类来帮助各位读者朋友更好的去理解运算符重载&#xff0c;那么&#xff0c;代码时刻…