一 .业务分析:
1.双色球中奖规则:
任意规定二等奖500万,一等奖1000万元。
投注号码由6个红色球号码(不可重复)和1个蓝色球号码,红色球1-33,蓝色球1-16
二.程序设计
1.定义三个方法,一个方法来生成中奖号码,第二个方法让用户输入号码,第三个方法来判断中奖情况。
main方法:
public static void main(String[] args) {int[] haoma = zhongjiang(); //方法1:随机生成中奖号码int[] shoudong = xuanhao(); //方法2:用户输入号码System.out.println("输入完成!");System.out.print("您的投注号码是");daying(shoudong);panduan(haoma,shoudong); //方法3:判断中奖情况}
接下来,编写方法1:随机生成中奖号码:
public static int[] zhongjiang() //中奖号码{int[] arr = new int[7];Random rs = new Random();for (int i = 0; i < arr.length; i++) {while (true) //不能出现重复{int date = rs.nextInt(33) + 1; //0-32+1boolean flag = true; //标记符for (int j = 0; j < i; j++) {if (arr[j] == date) {flag = false;break;}}if (flag) {arr[i] = date;break;}}}arr[arr.length - 1] = rs.nextInt(16) + 1;return arr;}
编写方法2:用户输入号码:
public static int[] xuanhao() { //用户输入号码int[] nums = new int[7];Scanner sc = new Scanner(System.in);int rs = 0;System.out.println("红色球,在1-33之间输入"); //红色球号码for (int i = 0; i < nums.length-1; i++) {System.out.println("第" + (i + 1) + "个号码");rs = sc.nextInt();int date = rs;if (rs >= 1 && rs <= 33) {while (true) { //定义死循环,且判断是否重复boolean flag = true;for (int j = 0; j < i; j++) {if (nums[j] == rs) {flag = false;System.out.println("红色球,不能输入重复的数字!请重新输入:");rs = sc.nextInt();}}if (flag) {nums[i] = date;break;}}} else {System.out.println("红色球输入号码不合法!,请重新输入");rs = sc.nextInt();date = rs;if (rs >= 1 && rs <= 33) {while (true) {boolean flag = true;for (int j = 0; j < i; j++) {if (nums[j] == rs) {flag = false;System.out.println("红色球,不能输入重复的数字!请重新输入:");rs = sc.nextInt();}}if (flag) {nums[i] = date;break;}}}}}System.out.println("蓝色球,在1-16中输入");while(true) {int pp=sc.nextInt();if (pp<1||pp>16){System.out.println("蓝色球输入不合法,请重新输入!");pp= sc.nextInt();}else{nums[nums.length-1]=pp;break;}}return nums;}
最后,编写方法3,判断中奖情况:
public static void panduan(int arr1[],int arr2[]) //判断中奖情况{int shotred =0;int shotblue=0;for (int i = 0; i < arr2.length-1; i++) {for (int j = 0; j < arr1.length-1; j++) {if(arr2[i]==arr1[j]){shotred++;break;}}}if(arr2[arr1.length-1]==arr1[arr1.length-1]){shotblue++;}System.out.println("中奖号码是:");daying(zhongjiang());System.out.println("命中了"+shotred+"个红色球号码");System.out.println("命中了"+shotblue+"个蓝色球号码");if(shotblue==1&&shotred<=2){System.out.println("中奖5元!");}else if(shotblue==1&&shotred==3||shotblue==0&&shotred==4){System.out.println("中奖10元!");}else if (shotblue==1&&shotred==4||shotblue==0&&shotred==5){System.out.println("中奖200元!");}else if (shotblue==1&&shotred==5){System.out.println("中奖3000元!");}else if (shotblue==0&&shotred==6){System.out.println("中奖500万!");}else if (shotblue==1&&shotred==6){System.out.println("中奖1000万!");}else {System.out.println("很遗憾没有中奖,感谢您的参与");}}}
遍历数组打印的方法4,
public static void daying(int [] arr){for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+"\t");}System.out.println();}