这是我学校的myprogramminglab问题,我无法上班...... 它必须在一页上,这就是为什么我一起拥有它。
我的编译错误:
Driver.java:3: error: class TestScores is public, should be declared in a file named TestScores.java
public class TestScores
^
Driver.java:51: error: constructor TestScores in class TestScores cannot be applied to given types;
TestScores TestScore = new TestScores();
^
required: double[]
found: no arguments
reason: actual and formal argument lists differ in length
2 errors
练习:
编写一个名为TestScores的类。类构造函数应该接受一个数组 测试分数作为其论据。该类应该有一个返回的方法 考试成绩的平均值。如果阵列中的任何测试分数为负数 或者大于100,该类应抛出IllegalArgumentException。
在名为Driver的程序中演示该类。 该程序应要求用户输入要计数的测试分数, 然后是每个单独的考试成绩。然后它应该得出这些分数的数组, 创建一个TestScore对象,并打印得分的平均值。
如果抛出IllegalArgumentException,主方法应该捕获它,打印“测试分数的值必须小于100且大于0”。并终止该计划。
我的代码:
import java.util.Scanner;
public class TestScores
{
private double[] scoreArray;
public TestScores(double[] test) throws IllegalArgumentException
{
scoreArray = new double[test.length];
for (int i = 0; i < test.length; i++)
{
if (test[i] < 0 || test[i] > 100)
throw new IllegalArgumentException("Test scores must have a value less than 100 and greater than 0.");
else
scoreArray[i] = test[i];
}
}
public double getAverage()
{
double total = 0.0;
for (int i = 0; i < scoreArray.length; i++)
total += scoreArray[i];
return (total / scoreArray.length);
}
public static void main(String[] args)
{
int score = 0;
int scores = 0;
Scanner userInput = new Scanner(System.in);
System.out.print("Enter number of test scores: ");
score = userInput.nextInt();
double[] scoreArray = new double[score];
for (int i = 0; i <= score - 1; i++)
{
System.out.print("Enter test score " + (i + 1)+ ": ");
scoreArray[scores] = userInput.nextDouble();
}
TestScores TestScore = new TestScores();
System.out.print(TestScore);
}
}
答案 0 :(得分:1)
确保将TestScores类保存在名为TestScores.java的文件中。此外,请确保正确使用您的构造函数。如果构造函数接受一个int数组,那么在调用它时将它传递给一个int数组。
TestScores testScore = new TestScores(scoreArray);
此外,按照惯例,变量名称应以小写字母开头。
答案 1 :(得分:0)
可能是程序启动时首先调用构造函数,并且没有双精度。错误。然后,您尝试在类上创建实例,而不在参数
中传递double答案 2 :(得分:0)
您必须提供给实例:
TestScores TestScore = new TestScores(scoreArray);
因为你在类中有一个名为TestScores的构造函数,它接收一个数组,测试它并让我们知道!
答案 3 :(得分:0)
在创建类时请记住,总是为这些情况添加No-Args控制器
您的问题是您需要提供在构造函数
中指定的测试数组参数