综合练习
模拟双色球彩票开奖结果:随机生成一注双色球彩票,判断其是否中奖,奖金为多少。
一注双色球彩票由6个不重复的红球(序号:1~32)和1个篮球(序号:1~16)构成。
双色球中奖规则如下:
(提示:
①随机数:java.util.Random中的Random类有一个方法int nextInt(int n)可以生成0~n的一个随机整数。(教材P202页)
②java.util.Arrays的常用方法:
Arrays.sort(a); //将数组a中的元素按升序排列;
Arrays.binarySearch(a, k); //对于一个按升序排列的数组a,判断k值是否在数组a中,若在,返回k在a中的索引,否则返回一个负数。
)
主要代码:
import java.util.Random;
public class WelfareLotteries {
private static int [] computer;
private static int [] Guess;
private static int GuessB;
private static int computerB;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
computer=new int [7];//放电脑产上的随机数,即中奖号码
Guess=new int[7];//用来存放用户猜测的号码
MadeRandomOfComputer();
MadeRandomOfGuess();
ResultShow();
}
private static void ResultShow() {
// 相同红球的数量统计
int number =0;
for(int i=0;i<Guess.length-1;i++){
for(int j=0;j<computer.length-1;j++){
if(Guess[i]==computer[j]){
number+=1;
}
}
}
//比较,进行确定为几等奖
if(number==6&&computerB==GuessB)
{System.out.println("恭喜中一等奖了,奖金500万");}
else if(number==6){
System.out.println("恭喜中二等奖了,奖金150万");
}
else if(number==5&&computerB==GuessB){
System.out.println("恭喜中三等奖,奖金3000");
}
else if(number==5||(number==4&&computerB==GuessB)){
System.out.println("恭喜中奖四等奖,奖金200");
}
else if(number==4||(number==3&&computerB==GuessB)){
System.out.println("恭喜中五等奖,奖金10");
}
else if((number==2&&computerB==GuessB)||(number==1&&computerB==GuessB)){
System.out.println("恭喜中奖六等奖,奖金5");
}
else{
System.out.println("抱歉,没有中奖");
}
}
private static void MadeRandomOfGuess() {
// TODO Auto-generated method stub
//用户猜测号码
System.out.print("展示用户产生的中奖号码:\n 红球:\t");
Random random=new Random();
int number;
for(int i=0;i<Guess.length;i++){
number=random.nextInt(32)+1;
if(check(Guess, number)){
Guess[i]=number;
}
else{
i--;
continue;
}
}
for(int i=0;i<Guess.length-1;i++){
System.out.print(+Guess[i]+"\t");
}
GuessB=Guess[6];
System.out.print("篮球:\t"+GuessB+"\n");
}
private static boolean check(int a[],int e){
//产生随机数的重复检查
int i;
for(i=0;i<a.length;i++){
if(a[i]==e) break;
}
if(i==a.length){
return true;
}
return false;
}
private static void MadeRandomOfComputer() {
// TODO Auto-generated method stub
System.out.print("展示电脑产生的中奖号码:\n 红球:\t");
Random random=new Random();
int number;
for(int i=0;i<computer.length;i++){
number=random.nextInt(32)+1;
if(check(computer, number)){
computer[i]=number;
}
else{
i--;
continue;
}
}
for(int i=0;i<computer.length-1;i++){
System.out.print(computer[i]+"\t");
}
computerB=computer[6];
System.out.print("篮球:\t"+computerB+"\n");
}
}
运行结果: