日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java案例----双色球中奖分析

發布時間:2024/1/18 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java案例----双色球中奖分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目如下:

?

?由題意,我將構造滿足以下要求的五個方法對題目進行實現:

1.對中獎號碼的確定。

2.對重復號碼的判定。

3.用戶輸入自己的中獎號碼進行驗證。

4.判斷中獎球的次數以及球的顏色。

5.判斷中獎的金額。

以下進行逐個實現:

在開始之前,我定義了幾個全局的靜態變量,有利于數據的傳遞

static Random r = new Random();//隨機數生成類 static Scanner sc = new Scanner(System.in);//鍵盤的錄入類 static int redCount = 0,blueCount = 0;//前為記錄紅球中獎的次數,后為記錄藍球中獎的次數

1.對中獎號碼的確定。

public static int[] Create(){int[]arr = new int[7];//以下為生成紅色球的中獎號碼for (int i = 0; i < arr.length-1; ) {int redNum = r.nextInt(33)+1;//以下的ifExist函數會在下面補充,是對重復元素的判斷!if(ifExist(arr,redNum)){continue;}else {arr[i] = redNum;i++;}}//以下為生成藍色球的中獎號碼int blueNum = r.nextInt(16)+1;arr[arr.length-1] = blueNum;return arr;}

2.對重復號碼的判定。

//傳入的參數為已經錄入數據的數組,以及需要判斷是否存在的數字 public static boolean ifExist(int[]arr,int ra){for (int i = 0; i < arr.length; i++) {if(arr[i] == ra){return true;//存在則返回是}}return false;//如果代碼運行到此處則說明,沒有存在重復,則返回否}

3.用戶輸入自己的中獎號碼進行驗證。

public static int[] userNum(){int[]arr = new int[7];System.out.println("請輸入你的中獎號碼!");for (int i = 0; i < arr.length; ) { //此處的減一是為區分紅球和藍球if(i<arr.length-1){System.out.println("您現在正在輸入第"+(i+1)+"個紅色球");int rednum = sc.nextInt(); //需對輸入的號碼控制在1~33才能符合題目的要求!if(rednum>0 && rednum<34){if(ifExist(arr,rednum)){System.out.println("您輸入的號碼已經存在,請重新輸入!");}else{arr[i] = rednum;i++;}}elseSystem.out.println("您輸入的第"+(i+1)+"個紅球超過了范圍");} //以下對藍球進行錄入操作else {System.out.println("您現在輸入的是藍球的號碼");int blueNum = sc.nextInt(); //控制藍球在1~16的范圍內符合題目的要求if(blueNum>0 && blueNum<17){arr[i] = blueNum;i++;}elseSystem.out.println("你輸入的超過了藍球的范圍!");}}return arr;}

4.判斷中獎球的次數以及球的顏色。

public static String ifWin(int[] winingNum,int[] userNum){for (int i = 0; i < userNum.length; i++) {if(i<userNum.length-1){ //這里繼續運用上面的存在重復元素方法,對用戶輸入的元素在中獎數組里面判斷是否重復 //如果是,則就是中獎了,則對紅球的中獎次數進行加一操作。 //如果不是則會隨著i++而跳過該元素,繼續判斷接下來的元素。if(ifExist(winingNum,userNum[i])){redCount++;}} //以下是對藍球的中獎次數進行判斷,因為藍球存在數組的末尾位置,故位置為(arr.length-1)。else {if(userNum[userNum.length-1] == winingNum[winingNum.length-1])blueCount++;}} //這里直接返回結果字符串,在主函數中直接輸出即可!return "此次中獎結果為\t紅球:"+redCount+"個,"+"藍球:"+blueCount+"個";}

5.判斷中獎的金額。

//在上述方法就會得到具體的各球中獎次數,然后就可以進行判斷具體獎金 //因為我設置了全局變量,所以該方法并不需要傳入如何的參數。public static String judgeBonus(){if(redCount == 0 && blueCount == 1 || redCount == 1 && blueCount == 1 || redCount == 2 && blueCount == 1 )return "獲得5元獎金!";else if(redCount == 3 && blueCount == 1 || redCount == 4 && blueCount == 0)return "獲得10元獎金!";else if(redCount == 4 && blueCount == 1 || redCount == 5 && blueCount == 0)return "獲得200元獎金!";else if(redCount == 5 && blueCount == 1)return "獲得3000獎金!";else if(redCount == 6 && blueCount == 0)return "獲得5000000獎金!";else if(redCount == 6 && blueCount == 1)return "獲得10000000獎金!";elsereturn "沒有該獎項!"; //對中獎次數進行簡單的邏輯判斷,便可以進行獎金的確定。}

?以上便可以實現雙色球彩票系統的具體流程,完整代碼如下:

package com.wxy.demo1; import java.util.Scanner; import java.util.Random; public class 雙色球系統 {static Random r = new Random();static Scanner sc = new Scanner(System.in);static int redCount = 0,blueCount = 0;public static void main(String[] args) {int[]winningNum = new int[7];int[]userNum = new int[7];winningNum = Create();userNum = userNum();System.out.println(ifWin(winningNum,userNum));System.out.println(judgeBonus());}public static int[] Create(){int[]arr = new int[7];//以下為生成紅色球的中獎號碼for (int i = 0; i < arr.length-1; ) {int redNum = r.nextInt(33)+1;if(ifExist(arr,redNum)){continue;}else {arr[i] = redNum;i++;}}//以下為生成藍色球的中獎號碼int blueNum = r.nextInt(16)+1;arr[arr.length-1] = blueNum;return arr;}public static boolean ifExist(int[]arr,int ra){for (int i = 0; i < arr.length; i++) {if(arr[i] == ra){return true;}}return false;}public static int[] userNum(){int[]arr = new int[7];System.out.println("請輸入你的中獎號碼!");for (int i = 0; i < arr.length; ) {if(i<arr.length-1){System.out.println("您現在正在輸入第"+(i+1)+"個紅色球");int rednum = sc.nextInt();if(rednum>0 && rednum<34){if(ifExist(arr,rednum)){System.out.println("您輸入的號碼已經存在,請重新輸入!");}else{arr[i] = rednum;i++;}}elseSystem.out.println("您輸入的第"+(i+1)+"個紅球超過了范圍");}else {System.out.println("您現在輸入的是藍球的號碼");int blueNum = sc.nextInt();if(blueNum>0 && blueNum<17){arr[i] = blueNum;i++;}elseSystem.out.println("你輸入的超過了藍球的范圍!");}}return arr;}public static String ifWin(int[] winingNum,int[] userNum){for (int i = 0; i < userNum.length; i++) {if(i<userNum.length-1){if(ifExist(winingNum,userNum[i])){redCount++;}}else {if(userNum[userNum.length-1] == winingNum[winingNum.length-1])blueCount++;}}return "此次中獎結果為\t紅球:"+redCount+"個,"+"藍球:"+blueCount+"個";}public static String judgeBonus(){if(redCount == 0 && blueCount == 1 || redCount == 1 && blueCount == 1 || redCount == 2 && blueCount == 1 )return "獲得5元獎金!";else if(redCount == 3 && blueCount == 1 || redCount == 4 && blueCount == 0)return "獲得10元獎金!";else if(redCount == 4 && blueCount == 1 || redCount == 5 && blueCount == 0)return "獲得200元獎金!";else if(redCount == 5 && blueCount == 1)return "獲得3000獎金!";else if(redCount == 6 && blueCount == 0)return "獲得5000000獎金!";else if(redCount == 6 && blueCount == 1)return "獲得10000000獎金!";elsereturn "沒有該獎項!";} }

實現效果圖:

?

總結

以上是生活随笔為你收集整理的Java案例----双色球中奖分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。