java基础知识实训——双色球系统
题目:
代码:
package hello.practise;
import java.util.Random;
import java.util.Scanner;
public class Demo7 {
public static void main(String[] args) {
int[] luckNumbers = createLuckyNumber();
//调用一个方法让用户输入7个号码,作为用户选号
int[] userNumbers = userInputNumber();
judge(luckNumbers,userNumbers);
}
public static void judge(int[] luckNumbers,int[] userNumbers){
int blueHitNumber = 0;
int redHitNumber = 0;
for (int i = 0; i < userNumbers.length - 1; i++) {
for (int j = 0; j < luckNumbers.length - 1; j++) {
if(userNumbers[i] == luckNumbers[j]) {
redHitNumber++;
break;
}
}
}
//判断号码是否命中了
blueHitNumber = userNumbers[userNumbers.length - 1] == luckNumbers[luckNumbers.length -1] ? 1 :0;
System.out.println("中奖号码是:");
printArray(luckNumbers);
System.out.println("您投注的号码是:");
printArray(userNumbers);
//打印出红球和蓝球的命中情况
System.out.println("您命中红球的个数:" + redHitNumber);
System.out.println("您是否命中蓝球:" + (blueHitNumber == 1 ? "是":"否"));
if(redHitNumber < 3 && blueHitNumber == 1){
System.out.println("恭喜你,中了5元小奖!!");
}
else if(redHitNumber == 3 && blueHitNumber == 1 || redHitNumber ==4 && blueHitNumber == 0){
System.out.println("恭喜你,中了10元小奖!!!");
}
else if(redHitNumber == 4 && blueHitNumber == 1 || redHitNumber ==5 && blueHitNumber == 0){
System.out.println("恭喜你,中了200元!!!");
}
else if(redHitNumber == 5 && blueHitNumber == 1){
System.out.println("恭喜你,中了3000元!!!!");
}
else if(redHitNumber == 6 && blueHitNumber == 0){
System.out.println("恭喜你,中了500万大奖!");
}
else if(redHitNumber == 6 && blueHitNumber == 1){
System.out.println("恭喜你,中了1000万奖!!!");
}
else {
System.out.println("感谢您为福利事业做出的贡献");
}
}
public static void printArray(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
}
public static int[] userInputNumber(){
int[] numbers = new int[7];
Scanner sc= new Scanner(System.in);
for (int i = 0; i < numbers.length - 1; i++) {
System.out.println("请输入第"+(i+1)+"个红球号码(1-33):");
int number = sc.nextInt();
numbers[i] = number;
}
System.out.println("请输入最后一个蓝球号码(1-17):");
numbers[numbers.length - 1] = sc.nextInt();
return numbers;
}
public static int[] createLuckyNumber(){
//1、定义一个动态初始化数组,存储7个数据
int[] numbers = new int[7];
//2、遍历数组,为每个位置生成相应的数字(前6个不能重复 范围是1-33)
Random r = new Random();
for (int i = 0; i < numbers.length - 1; i++) {
while(true){
//为当前位置找出一个1-33之间不重复的数字
boolean flag = true;
int number = r.nextInt(33)+1;
for (int j = 0; j < i; j++) {
if(numbers[j] == number){
//number这个数据之前出现过,不能再使用
flag = false;
break;
}
}
if(flag){
//number这个数据之前出现过,可以使用
numbers[i] = number;
break;
}
}
}
//为第7个位置生成一个1-17之间的数字座位蓝球数字
numbers[6] = r.nextInt(17)+1;
return numbers;
}
}