Java第三週作業(3)

Miss_You123123發表於2017-09-24

綜合練習

模擬雙色球彩票開獎結果:隨機生成一注雙色球彩票,判斷其是否中獎,獎金為多少。
一注雙色球彩票由6個不重複的紅球(序號:1~32)和1個籃球(序號:1~16)構成。
雙色球中獎規則如下:

這裡寫圖片描述

(提示:
①隨機數:java.util.Random中的Random類有一個方法int nextInt(int n)可以生成0~n的一個隨機整數。(教材P202頁)
②java.util.Arrays的常用方法:
Arrays.sort(a); //將陣列a中的元素按升序排列;
Arrays.binarySearch(a, k); //對於一個按升序排列的陣列a,判斷k值是否在陣列a中,若在,返回k在a中的索引,否則返回一個負數。


主要程式碼:

import java.util.Random;


public class WelfareLotteries {
    private static int [] computer; 
    private static int [] Guess;
    private static int GuessB;
    private static int computerB;
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       computer=new int [7];//放電腦產上的隨機數,即中獎號碼
       Guess=new int[7];//用來存放使用者猜測的號碼
       MadeRandomOfComputer();
       MadeRandomOfGuess();
       ResultShow();
    }
    private static void ResultShow() {
        // 相同紅球的數量統計
        int number =0;
        for(int i=0;i<Guess.length-1;i++){
            for(int j=0;j<computer.length-1;j++){
                if(Guess[i]==computer[j]){
                    number+=1;
                }
            }
        }
        //比較,進行確定為幾等獎
        if(number==6&&computerB==GuessB)
        {System.out.println("恭喜中一等獎了,獎金500萬");}
        else if(number==6){
            System.out.println("恭喜中二等獎了,獎金150萬");

        }
        else if(number==5&&computerB==GuessB){
            System.out.println("恭喜中三等獎,獎金3000");
        }
        else if(number==5||(number==4&&computerB==GuessB)){
            System.out.println("恭喜中獎四等獎,獎金200");
        }
        else if(number==4||(number==3&&computerB==GuessB)){
            System.out.println("恭喜中五等獎,獎金10");
        }
        else if((number==2&&computerB==GuessB)||(number==1&&computerB==GuessB)){
            System.out.println("恭喜中獎六等獎,獎金5");
        }
        else{
            System.out.println("抱歉,沒有中獎");
        }
    }
    private static void MadeRandomOfGuess() {
        // TODO Auto-generated method stub
        //使用者猜測號碼
        System.out.print("展示使用者產生的中獎號碼:\n 紅球:\t");
        Random random=new Random();
        int number;
        for(int i=0;i<Guess.length;i++){
            number=random.nextInt(32)+1;
            if(check(Guess, number)){
                Guess[i]=number;
            }
            else{
                i--;
                continue;
            }

        }
        for(int i=0;i<Guess.length-1;i++){
            System.out.print(+Guess[i]+"\t");
        }
        GuessB=Guess[6];
        System.out.print("籃球:\t"+GuessB+"\n");
    }
    private static boolean check(int a[],int e){
        //產生隨機數的重複檢查
        int i;
        for(i=0;i<a.length;i++){
            if(a[i]==e) break;
        }
        if(i==a.length){
            return true;
        }
        return false;
    }
    private static void MadeRandomOfComputer() {
        // TODO Auto-generated method stub
        System.out.print("展示電腦產生的中獎號碼:\n 紅球:\t");
        Random random=new Random();
        int number;
        for(int i=0;i<computer.length;i++){
            number=random.nextInt(32)+1;
            if(check(computer, number)){
                computer[i]=number;
            }
            else{
                i--;
                continue;
            }

        }
        for(int i=0;i<computer.length-1;i++){
            System.out.print(computer[i]+"\t");
        }
        computerB=computer[6];
        System.out.print("籃球:\t"+computerB+"\n");
    }

}

執行結果:

這裡寫圖片描述
這裡寫圖片描述

相關文章