我的Java作业遇到问题。我已经研究了2周,真的可以使用一些帮助。
这是问题所在:
创建一个控制台(独立)应用程序。该计划将允许
您选择MegaBall彩票
数字。对于前5个数字,
将被要求输入一个数字
大于零且小于零
等于或等于56。但是,
抓住!每个数字必须是
不同。
当前五个数字中的任何一个小于0或大于56时,
用户将收到一条消息
效果,将要求重新输入
号码。您将创建代码
当一个
输入小于1的数字,然后输入
如果数字更大则显示不同的消息
输入的数字大于56。如果
数字与任何数字相同
在其之前输入(例外
用户将获得的号码)
收到这样的消息,并
要求重新输入号码。这是
第二到第五相同
数字。我输入了相同的数字
几次,所以你会看到
当我这样做时会发生。
输入扩音号时,如果输入的数字不在1到
和46,则用户将收到一个
邮件达到此效果并要求
重新输入号码。一则讯息会
如果数字小于1,则显示
如果数字是
大于46。
以下必须包含在
程序:
您必须具有多个类。包含访问器和更改器的一个
方法,一个readInput()方法和一个
writeOutput()方法。你不会用
mutator方法,但包括它们
无论如何表明你知道如何
写他们。命名第一个程序
“ Megaball.java”。
第二个程序将被命名为“ MegaballTest.java”,并将
负责创建Megaball
对象并调用writeOutput()
和readInput()方法
杂技班。
这是我的解决方案:
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");
}
}
在测试中……我想确保第一个数字在我完成其余工作之前就起作用了。这是我不断得到的错误:
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
非常感谢!!
最佳答案
创建一个控制台(独立)应用程序。该计划将允许
您选择MegaBall彩票
数字。对于前5个数字,
将被要求输入一个数字
大于零且小于零
等于或等于56。但是,
抓住!每个数字必须是
不同。
这里有一个序列,值是整数。考虑使用数组(int[]
)或列表(ArrayList<Integer>
)。
当前五个数字中的任何一个小于0或大于56时,
用户将收到一条消息
效果,将要求重新输入
号码。您将创建代码
当一个
输入小于1的数字,然后输入
如果数字更大则显示不同的消息
输入的数字大于56。如果
数字与任何数字相同
在其之前输入(例外
用户将获得的号码)
收到这样的消息,并
要求重新输入号码。这是
第二到第五相同
数字。我输入了相同的数字
几次,所以你会看到
当我这样做时会发生。
考虑以下成员变量:ArrayList<Integer> numbers;
(使用ArrayList更容易“增长”)。
然后考虑功能int readNumber()
:执行以上逻辑(从输入中读取并显示消息)。如果选择了无效的数字,则返回-1;否则,返回适当范围内的数字。在readNumber
内部,确保该号码当前在numbers
列表中不存在(请记住,numbers
是成员变量)。
输入扩音号时,如果输入的数字不在1到
和46,则用户将收到一个
邮件达到此效果并要求
重新输入号码。一则讯息会
如果数字小于1,则显示
如果数字是
大于46。
巨型球的不同之处在于它可以重复并且范围也不同。
因此,请考虑功能int readPowerballNumber()
:执行以上逻辑(从输入中读取并显示消息)。如果选择了无效的数字,则返回-1;否则,返回适当范围内的数字。
现在,有了这两个,可以使用以下pseduo代码:
这可能是readInput()
成员中的代码。请记住,numbers
是成员变量。还要注意,它会将工作分配给“助手”方法,该方法采用了读取和显示警告等逻辑。
set numbers = an empty list
while have less than 5 numbers:
number = readNumber()
if number is not -1:
append number to numbers
while have less than 6 numbers:
number = readPowerballNumber()
if number is not -1:
append number to numbers
// at this point, all 6 numbers are valid and loaded
// you may then call `writeOutput()` to write all the numbers
以下必须包含在
程序:
您必须具有多个类。包含访问器和更改器的一个
方法,一个readInput()方法和一个
writeOutput()方法。你不会用
mutator方法,但包括它们
无论如何表明你知道如何
写他们。命名第一个程序
“ Megaball.java”。
我不知道为什么这个“要求”在这里。做你的老师想要的。
但是,请注意,
readInput()
和writeOutput()
是方法而不是字符串(如当前在代码中一样)。第二个程序将被命名为“ MegaballTest.java”,并将
负责创建Megaball
对象并调用writeOutput()
和readInput()方法
杂技班。
快乐的编码。
注意:上面仅描述了如何将Megaball数字序列“装入”
ArrayList<Integer>
。我将构造一个将数字序列(在“构建”之后)变成Megaball对象本身的构造函数(从而使Megaball不可变。但是,请确保根据您的老师的分级习惯进行调整。也许上述方法可能是在MegaballBuilder中,如果它获得一些奖励积分;-)