package Java_Tset;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Test_getticket {
public static void main(String[] args) {
int[] number = getnumber();
System.out.println(Arrays.toString(number)); //用户输入的抽奖号码;
int[] systemnum = getSystem();
System.out.println(Arrays.toString(systemnum));//系统生成的随机中奖号码;
get(number, systemnum); //最终结果;
}
// 定义一个方法,用于判断中奖情况;
public static void get(int[] number, int[] systemnum) {
// 1,先统计红球中了多少个;
int count = 0;
// 循环里面套循环,用户与系统的球相比较;
for (int i = 0; i < number.length; i++) {
for (int i1 = 0; i1 < systemnum.length; i1++) {
if (number[i] == systemnum[i1]) {
count++;
break;
}
}
}
// 2,再结合是否中篮球,判断对应的中奖情况;switch
if (number[6] == systemnum[6]) {
switch (count) {
case 6:
System.out.println("中1000万");
break;
case 5:
System.out.println("中3000元");
break;
case 4:
System.out.println("中200元");
break;
case 3:
System.out.println("中10元");
break;
case 2, 1, 0:
System.out.println("中5元");
break;
}
} else {
switch (count) {
case 6:
System.out.println("中500万");
break;
case 5:
System.out.println("中200元");
break;
case 4:
System.out.println("中10元");
break;
default:
System.out.println("谢谢回顾");
}
}
}
// 定义一个方法,用于表示开奖的情况
public static int[] getSystem() {
// 1,定义一个数组,存放七颗球;
int[] arr = new int[7];
// 2,创建一个随机数对象;
Random r = new Random();
// 3,获取前面六颗球,使用随机数赋值;
for (int i = 0; i < arr.length - 1; i++) {
// 3.1,生成范围再【1,33】
int systemnum = r.nextInt(1, 34);
// 3.2,判断当前的随机数是否已经存放再数组中,调用方法实现;
boolean flag = getbn(arr, systemnum);
// 3.3,根据方法的结果去判断是否需要存放还是重复生成;
if (flag) {
System.out.println("输入重复");
i--;
} else {
arr[i] = systemnum;
}
}
// 4,给蓝球赋值,赋值的范围再【1,16】
arr[6] = r.nextInt(1, 17);
// 5,返回数组;
return arr;
}
// 定义一个方法用于表示用户投注的情况;方法最终不用定义参数,需要返回一个数组;
public static int[] getnumber() {
int[] arr = new int[7];
// 1,我们需要创建一个数组,用于存放七颗球【前六个为红,后一个为蓝】
// 2,遍历数组前六个元素,使用键盘录入给元素赋值;
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length - 1; i++) {
// 2.1,键盘输入的数据考虑范围[1,33]
System.out.println("输入第" + (i + 1) + "个红球");
int rednum = sc.nextInt();
// 2.2,如果是满足[1,33],也不能直接存入到数组中,还需要考虑重复问题
if (rednum >= 1 && rednum <= 33) {
// 定义一个方法,用于判断是否存在数组中;
boolean flag = getbn(arr, rednum);
if (flag) {
// 如果重复,还需要继续生成多一次;
i--;
System.out.println("输入重复");
} else {
// 如果数据不存在数组中,就可以存放元素;
arr[i] = rednum;
}
} else {
// 2.3,不满足条件,就直接重新录入多一次;
i--;
System.out.println("输入超过范围【1,33】");
}
}
// 3,生成篮球再范围[1,16]之间,如果不在,则重新生成,如果再就存放到数组的第七个位置;
while (true) {
System.out.println("输入蓝球");
int bluenum = sc.nextInt();
if (bluenum <= 16 && bluenum >= 1) {
arr[6] = bluenum;
break;
} else {
System.out.println("输入有误");
}
}
return arr;
}
private static boolean getbn(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return true;
}
}
return false;
}
}
Java简易抽号码
于 2023-07-23 15:04:19 首次发布
这是一个Java程序,用于模拟彩票抽号过程。用户输入6个红球和1个蓝球号码,系统生成一组随机的7个号码进行匹配。根据匹配的红球数量和蓝球情况,判断中奖等级,如中1000万、中500万等。
1962

被折叠的 条评论
为什么被折叠?



