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();
}
 }

效果展示:

双色球

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉士先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值