开发者

Java program won't compile

I'm making this program under jgrasp and I'm getting an error. I have checked the spelling and the grammar of my program and it seems to be correct. Please help me开发者_运维知识库 -- is there something I'm missing that's causing all my errors?

import javax.swing.*;


public class Testscore
{
   public static void main(String[] args) 
    {
       int numberofTests = 0;

       double grade = new double[numberofTests];

       double startgrade = 0;

        int x = 1 ;

       String strInput;

    // Get how many tests are used

       strInput = JOptionPane.showInputDialog(null, "How many tests do you have? ");
       numberofTests = Integer.parseInt(strInput);

       grade = new double[(int) numberofTests];
         do

         {

       for (int index = 0; index < grade.length; index++)
       {
           strInput = JOptionPane.showInputDialog(null, "Enter Test Score." + (index + 1));
           grade = Double.parseDouble(strInput);

           if (grade[index] < 0 || grade[index] > 100 )
           {   
               try 
                {
                   throw new InvalidTestScore();
                    x=2;
                }

               catch (InvalidTestScore e)
               {
                   e.printlnStackTrace();
                    system.out.println ("Choose a test score between 0 and 100");
               }
           }   
       }
       }
         while (x==1);

       for (int index = 0; index < grade.length; index++ )

            {
                startgrade += grade[index];
            }

            average = startgrade/grade.length;

            System.out.print("The average is: " + average);

    }
}

Here are the errors I am getting.

Testscore.java:12: incompatible types

found   : double[]

required: double

       double grade = new double[numberofTests];

                      ^
Testscore.java:25: incompatible types

found   : double[]

required: double

       grade = new double[(int) numberofTests];

               ^
Testscore.java:30: double cannot be dereferenced

       for (int index = 0; index < grade.length; index++)
                                        ^
Testscore.java:35: array required, but double found

           if (grade[index] < 0 || grade[index] > 100 )
                    ^
Testscore.java:35: array required, but double found

           if (grade[index] < 0 || grade[index] > 100 )
                                        ^
Testscore.java:39: cannot find symbol
symbol  : class InvalidTestScore
location: class Testscore
                   throw new InvalidTestScore();
                             ^
Testscore.java:43: cannot find symbol

symbol  : class InvalidTestScore

location: class Testscore

               catch (InvalidTestScore e)
                      ^
Testscore.java:46: package system does not exist

                    system.out.println ("Choose a test score between 0 

and 100");
                          ^
Testscore.java:53: double cannot be dereferenced

       for (int index = 0; index < grade.length; index++ )
                                        ^
Testscore.java:56: array required, but double found

                startgrade += grade[index];

     ^
Testscore.java:59: cannot find symbol

symbol  : variable average

location: class Testscore

            average = startgrade/grade.length;
            ^
Testscore.java:59: double cannot be dereferenced

            average = startgrade/grade.length;
                                      ^
Testscore.java:61: cannot find symbol

symbol  : variable average

location: class Testscore

            System.out.print("The average is: " + average);
                                                  ^
13 errors


On line 12, try changing

double grade = new double[numberofTests];

to

double[] grade = new double[numberofTests];

All of the subsequent errors appear to be consequences of the compiler thinking that grade is a double instead of an array of them. For example, the mention of "dereferencing" refers to indexing into an array; it's not reasonable to index into a scalar double.


The compiler is pretty helpful, it tells you what line you have an error on, and what the error is.

The first error is on line 12 and tells you that you've assigned an array reference to something that's not an array, you should change

 double grade = new double[numberofTests];

to

double grade[] = new double[numberofTests];

The next one, on line 25 is similar. The next 3 errors are because of the two previous ones since you declared grade as just a double but later on try to use it as an array.

The error on line 39 Testscore.java:39: cannot find symbol symbol : class InvalidTestScore Means that the compiler cannot find your InvalidTestScore class - where is it ? You should compiler that class as well.

The error on line 46 is that system.out.println should be System.out.println (capital S in System)

The error on line 59 says that there is no variable named average You can define it as the result of the expression you have there, so just change average = startgrade/grade.length; to double average = startgrade/grade.length;

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜