I am having problems with my java assignment. I have been working on it for 2 weeks and could really use some help.
Here is the problem:
Create a console (standalone) application. This program will allow
you to select MegaBall lottery
numbers. For the first 5 numbers you
will be requested to enter a number
that is greater than zero and less
than or equal to 56. However, there’s
a catch! Each number must be
different.When any of the first five numbers is less than 0 or greater than 56 the
user will receive a message to this
effect and will be asked to reenter
the number. You will create the code
that will display one message when a
number less than 1 is entered and a
different message if a number greater
than 56 is entered.If the
number is the same as any number
entered before it (with the exception
of the megaball number) the user will
receive a message to this effect and
asked to reenter the number. This is
the same for the second through fifth
numbers. I typed in the same number a
couple of times so you will see what
occurs when I do.When entering the megaball number, if the number entered IS NOT between 1
and 46 then the user will receive a
message to this effect and asked to
reenter the number. One message will
display if the number is less than 1,
and a different if the number is
greater than 46.The following MUST be included in the
program:
- You must have multiple classes. One that contains the accessor and mutator
methods, a readInput() method and a
writeOutput() method. You will not use
the mutator methods but include them
anyway to show that you know how to
write them. Name this first program
“Megaball.java”.- The second program is to be named “MegaballTest.java” and will be
responsible for creating a Megaball
object and calling the writeOutput()
and readInput() methods from the
Megaball class.
Here is my solutions:
import java.util.Scanner;
public class Megaball
{
Scanner scan = new Scanner(System.in);
double n1, n2, n3, n4, n5, n6;
double Num;
String readInput;
String writeOutput;
public Megaball()
{
n1 = 0;
n2 = 0;
n3 = 0;
n4 = 0;
n5 = 0;
n6 = 0;
}
public Megaball(double n1, double n2, double n3, double n4, double n5, double n6)
{
this.n1 = n1;
this.n2 = n2;
this.n3 = n3;
this.n4 = n4;
this.n5 = n5;
this.n6 = n6;
}
public double getNum()
{
return Num;
}
public void setNum(double n1, double n2, double n3, double n4, double n5, double n6)
{
this.Num = Num;
}
public String readInput()
{
return readInput;
}
public String writeOutput()
{
return writeOutput;
}
}
public class MegaballTest
{
public static void main(String[] args)
{
Megaball n1 = new Megaball(0,0,0,0,0,0);
Megaball n2 = new Megaball(0,0,0,0,0,0);
Megaball n3 = new Megaball(0,0,0,0,0,0);
Megaball n4 = new Megaball(0,0,0,0,0,0);
Megaball n5 = new Megaball(0,0,0,0,0,0);
Megaball n6 = new Megaball(0,0,0,0,0,0);
do
{
System.out.println("Please enter your 1st number which is between 0 and 56");
if (n1 < 0 || n1 > 56)
System.out.println("Number must be between 0 and 56");
}while (n1 < 0 || n1 > 56);
System.out.println("Please enter your 2nd number which is between 0 and 56");
}
}
On the test… I wanted to make sure the first number worked before I did the rest. Here is the error I keep getting:
G:\MegaballTest.java:15: operator < cannot be applied to Megaball,int
if (n1 < 0 || n1 > 56)
^
G:\MegaballTest.java:15: operator > cannot be applied to Megaball,int
if (n1 < 0 || n1 > 56)
^
G:\MegaballTest.java:17: operator < cannot be applied to Megaball,int
}while (n1 < 0 || n1 > 56);
^
G:\MegaballTest.java:17: operator > cannot be applied to Megaball,int
}while (n1 < 0 || n1 > 56);
^
4 errors
Tool completed with exit code 1
Thanks so much!!
There is a sequence here and the values are integers. Consider the use an array (
int[]) or a List (ArrayList<Integer>).Consider the following member variable:
ArrayList<Integer> numbers;(using an ArrayList is simpler to “grow”).Then consider the functions
int readNumber(): Perform the above logic (reading from input and displaying the messages). Returns -1 if an invalid number is selected, else returns the number in the appropriate range. InsidereadNumber, make sure the number does not currently exist in thenumberslist (remember,numbersis a member variable).The mega-ball is different in that it can be a repeat and the range is different.
So, consider the function
int readPowerballNumber(): Perform the above logic (reading from input and displaying the messages). Returns -1 if an invalid number is selected, else returns the number in the appropriate range.Now, having those two, the following pseduo-code can be employed:
This might be the code in the
readInput()member. Remember thatnumbersis a member variable. Also note that it farms out the work to the “helper” methods which employ the logic for reading and displaying the warning, etc.I have no idea why this “requirement” is here. Do what your teacher wants.
However, note that
readInput()andwriteOutput()are methods and not Strings (as you currently have in code).Happy coding.
Note: The above merely describes how to “load” a Megaball number sequence into an
ArrayList<Integer>. I would make a constructor which turns the number sequence (after you “build it”) into a Megaball object itself (and thus have a Megaball be immutable. However, make sure to adjust for your teachers grading habits. Perhaps the above methods could be in a MegaballBuilder, if it earns some bonus points 😉