Write a lottery class that simulates a lottery. The class should have an array o
ID: 3858576 • Letter: W
Question
Write a lottery class that simulates a lottery. The class should have an array of five integers named lotteryNumbers. The constructor should use the Random class (from the Java API) to generate a random number in the range of 0 through 9 for each element in the array. The class should also have a method that accepts an array of five integers that represent a person's lottery picks. The method is to compare the corresponding elements in the two arrays and return the number of the digits that match. For example, the following shows the lotteryNumbers array and the user's array with sample numbers stored in each. There are two matching digits (elements 2 and 4). lottery array: |7|4|9|1|3| user array: |4|2|9|7|3| In addition, the class should have a method that returns a copy of the lotteryNumbers array. Demonstrate the class in a program that asks the user to enter five numbers. The programshould display the number of digits that match the randomly generated lottery numbers. If all of the digits match, display a message proclaiming the user a grand prize winner. Use Console for input and output. You should submit Lottery.java and LotteryTest.java.
Explanation / Answer
Below is your code: -
Lottery.java
import java.util.Random;
class Lottery {
/**
* The lottery numbers.
*/
private int lotteryNumbers[];
/**
* Default Constructor.
*
* The class should use the Random class (from the Java API) to generate a
* random number in the range of 0 through 9 for each element in the array.
*/
public Lottery() {
Random rand = new Random(System.currentTimeMillis());
lotteryNumbers = new int[5];
for (int i = 0; i < lotteryNumbers.length; i++) {
lotteryNumbers[i] = rand.nextInt(10);
}
}
/**
* The class should also have a method that accepts an array of 5 integers
* that represent a person's lottery picks. The method is to compare the
* corresponding elements in the two arrays and return the number of digits
* that match.
*/
public int compareNumbers(int[] usersNumbers) {
int match = 0;
if (usersNumbers.length == lotteryNumbers.length) {
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[i] == lotteryNumbers[i]) {
match++;
}
}
}
return match;
}
/**
* In addition, the class should have a method that returns a copy of the
* lotteryNumbers array.
*/
public int[] getLotteryNumbers() {
return lotteryNumbers;
}
}
LotteryTest.java
import java.util.Arrays;
import java.util.Scanner;
/**
* Demonstrate the class in a program that asks the user to enter five numbers.
* The program should display the number of digits that match the randomly
* generate lottery numbers. If all of the digits match, display a message
* proclaiming the user a grand prize winner.
*/
public class LotteryTest {
public static void main(String[] args) {
Lottery lottery = new Lottery();
int lotteryNumbersCount = lottery.getLotteryNumbers().length;
System.out.println("Lottery Application ");
System.out.println("There are " + lotteryNumbersCount + " secret numbers in range of 0 through 9. "
+ "Try to guess them!!! ");
// Asks the user to enter five numbers.
Scanner kb = new Scanner(System.in);
int numbers[] = new int[lotteryNumbersCount];
for (int i = 0; i < numbers.length; i++) {
System.out.print(String.format("Enter Number %d: ", i + 1));
numbers[i] = kb.nextInt();
}
// Display the number of digits that match the randomly generate
// lottery numbers.
int match = lottery.compareNumbers(numbers);
if (match == lotteryNumbersCount) {
// If all of the digits match, display a message proclaiming the
// user a grand prize winner.
System.out.println(" WOHOO! ALL CORRECT! YOU WON THE GRAND PRIZE!");
} else {
System.out.println(" Uh-oh! You hit " + match + " number(s).");
}
System.out.println("Lottery numbers were : "+Arrays.toString(lottery.getLotteryNumbers()));
}
}
Sample Run: -
Lottery Application
There are 5 secret numbers in range of 0 through 9. Try to guess them!!!
Enter Number 1: 1
Enter Number 2: 2
Enter Number 3: 3
Enter Number 4: 4
Enter Number 5: 5
Uh-oh! You hit 3 number(s).
Lottery numbers were : [7, 3, 3, 4, 5]
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.