JAVA语言,双色球系统案例

package xunlian;

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

public class AnliDemo7 {
    public static void main(String[] args) {
        //双色球系统开发,系统生成范围1~33的红球号码6个(不可重复)范围1~16蓝球号码1个
        //用户输入7个号码,要求与系统生成的号码范围一致
        //定义一个数组,用于存储方法1生成的中奖号码
        int luckarr[]=luck();
        //定义一个数组,用于存储方法2产生的用户输入的号码
        int userarr[]=user();
        //对用户输入的投注号码进行输出
        System.out.println("您投注的号码为:");
        print(userarr);
        //调用方法4对本次生成的中奖号码进行输出
        System.out.println("本次中奖号码为:");
        print(luckarr);
        //调用方法3,对两个数组进行比较,判断是否中奖,并输出中奖情况。
        compare(luckarr,userarr);
    }
    //方法1:生成6个红球和1个蓝球号码
    public static int [] luck(){
        Random r=new Random();
        //定义一个数组,存储7个数字
        int[] arr=new int [7];
        //遍历数组,为每个位置生成一个随机号码,范围1~33,不能重复。
        for (int i = 0; i < arr.length-1 ; i++) {
            int data= r.nextInt(33)+1;
            //注意:当前判断生成的号码是否与之前的重复,出现重复则重新生成,直到不重复再存进数组
            //定义一个flag,默认data是没有重复的
            while (true) {
                boolean flag=true;
                for (int j = 0; j < i; j++) {
                    if(data==arr[j]){
                        flag=false;
                        //重复,不能用,退出循环重新生成新的数。
                        break;
                    }
                }
                if (flag){
                    //data在之前没有出现,可以存入数组。
                    arr[i]=data;
                    break;
                }
            }
        }
        arr[arr.length-1]= r.nextInt(16)+1;
        return arr;
    }
    // 方法2:用户可以输入7个号码啊(6个红球,1个蓝球)。
    public static int[] user(){
        Scanner sc=new Scanner(System.in);
        //定义一个动态数组,用于存储用户输入的号码。
        int[] user=new int[7];
        for (int i = 0; i < user.length-1; i++) {
            System.out.println("请输入第"+(i+1)+"个红球号码,范围1~33,不可重复");
            user[i]= sc.nextInt();
        }
        System.out.println("输入1个蓝球号码");
        user[user.length-1]= sc.nextInt();
        return user;
    }
    public static void compare(int[] a,int[] b){
        int red=0;
        int blue=0;
        //对两数组中的红球进行比较,记录相同个数。
        for (int i = 0; i < a.length-1; i++) {
            //用户号码数组遍历一次,判断有无与中奖数组相同的号码。
            for (int j = 0; j < b.length-1; j++) {
                if(a[i]==b[j]){
                    red++;
                    break;
                }
            }
        }
        //三目比较符,判断蓝球号码是否相同,对blue赋值
        blue = a[a.length-1]==b[b.length-1]?1:0;
        System.out.println("您中了"+red+"个红球,"+blue+"个蓝球。");
        //判断中奖情况
        if(blue==1 && red<3){
            System.out.println("恭喜您,六等奖,5元!");
        }
        else if(blue==1 && red==3 || blue==0 && red==4){
            System.out.println("恭喜您,五等奖,10元!");
        }
        else if (blue==1 && red==4 || blue==0 && red==5) {
            System.out.println("恭喜您,四等奖,200元!");
        }
        else if(blue==1 && red==5){
            System.out.println("恭喜您,三等奖,3000元大奖!");
        }
        else if(blue==0 && red==6){
            System.out.println("恭喜您,二等奖,最高五百万元特大奖!");
        }
        else if(blue==1 && red==6){
            System.out.println("恭喜您,一等奖,1000万元超级大奖!");
        }
        else{
            System.out.println("很遗憾没中奖,感谢您为福利事业做出贡献!");
        }
    }
    //方法4:输出数组
    public static void print(int[] Array){
        for (int i = 0; i < Array.length; i++) {
            System.out.print(Array[i]+" ");
        }
        System.out.println("\n");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值