Java对彩票双色球系统开发的简单实现 双色球系统 案例: 中奖条件及奖金表 代码及解释main方法代码: public static void main(String[] args) { //1.随机6个红球号码(1~33,不能重复),随机一个
案例: 中奖条件及奖金表 代码及解释 main方法代码:
public static void main(String[] args) {
//1.随机6个红球号码(1~33,不能重复),随机一个蓝球号码(1~16)
int[] num = createLuckNumber();
// printArray(num);
// System.out.println();
//2.调用一个方法让用户输入7个号码,作为用户选号
int[] userNums = userInputNumbers();
// printArray(userNums);
//3.判断中奖情况
judge(num,userNums);
}
系统产生随机双色球号码的代码
public static int[] createLuckNumber() {
//a、定义一个动态初始化的数组,存储7个数字
int[] number = new int[7];
//b、遍历数组,为每个位置生成对应的号码(注意只遍历前6个不重复的红球号码,范围1~33)
Random random = new Random();
for (int i = 0; i < number.length - 1; i++) {
//为当前位置找出不重复的6个不重复且符合范围的数
while (true) {
int data = random.nextInt(33) + 1;
//c、注意:必须判断当前随机的这个号码之前是否出现过,出现过要重新随机一个,知道不重复位置
// 定义一个flag变量,默认true是没有重复的
boolean flag = true;
for (int j = 0; j < i; j++) {
if (number[j] == data) {
//data当前数字前面出现过,不能用并且对flag进行标记
flag = false;
break;
}
}
if (flag) {
//data当前值前面没出现过
number[i] = data;
break;
}
}
}
// d.为第7个位置生成一个1~16的篮球号码
number[number.length - 1] = random.nextInt(16) + 1;
return number;
} //系统产生随机双色球号码
用户输入自己的双色球号码的代码
public static int[] userInputNumbers() {
//a.定义一个数组存储7个号码
int[] numbers = new int[7];
//b.让用户录入6个红球号码
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < numbers.length - 1; i++) {
System.out.println("请您输入第" + (i + 1) + "个红球号码(1 ~ 33,要求数字不重复):");
int data = scanner.nextInt();
//c.把当前录入的号码存入数组中
numbers[i] = data;
}
//d.单独录入一个蓝球号码
System.out.println("请您输入蓝球号码(1 ~ 16):");
numbers[6] = scanner.nextInt();
return numbers;
} //用户输入自己的双色球号码
中奖情况分析及中奖结果输出的代码
public static void judge(int[] num, int[] userNums) {
//判断是否中奖了
//1.定义两个变量分别存储红球,蓝球的命中个数
int redHit = 0;
int blueHit = 0;
//2.判断红球命中了几个
for (int i = 0; i < num.length - 1; i++) {
for (int j = 0; j < userNums.length - 1; j++) {
if (num[i] == userNums[j]) {
redHit++;
break;
}
}
}
//3.判断蓝球是否命中
blueHit = num[num.length - 1] == userNums[userNums.length - 1] ? 1 : 0;
System.out.println("中奖号码为:");
printArray(num);
System.out.println();
System.out.println("您投注的号码为:");
printArray(userNums);
System.out.println();
System.out.println("您命中红球的个数为:" + redHit);
System.out.println("您命中蓝球的个数为:" + blueHit);
//最后判断中奖情况输出中奖结果:
if (blueHit == 1 || redHit < 3) {
System.out.println("恭喜您,中了六等奖 5 元");
} else if (blueHit == 1 && redHit == 3 || blueHit == 0 && redHit == 4) {
System.out.println("恭喜您,中了五等奖 10 元");
} else if (blueHit == 1 && redHit == 4 || blueHit == 0 && redHit == 5) {
System.out.println("恭喜您,中了四等奖 200 元大奖");
} else if (blueHit == 1 && redHit == 5) {
System.out.println("恭喜您,中了三等奖 3000 元大奖");
} else if (blueHit == 0 && redHit == 6) {
System.out.println("恭喜您,中了二等奖 500万 超级大奖!");
} else if (blueHit == 1 && redHit == 6) {
System.out.println("恭喜您,中了一等奖 1000万 巨奖!!");
} else {
System.out.println("感谢您为福利事业做出的贡献!!!");
}
} //中奖情况分析及中奖结果输出
案例来自黑马案例7