2011-02-02 28 views
-1

私はこのプログラムをjgraspで作成していますが、エラーが発生しています。私は私のプログラムのスペルや文法をチェックしており、正しいと思われます。私を助けてください - 私はすべてのエラーを引き起こしている欠けているものがありますか?Javaプログラムはコンパイルされません

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); 

    } 
} 

ここではエラーが発生しています。 12行目

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 
+3

あなたはそのプログラムですが、それだけではありませんか?これは深刻な音...あなたはあなたの質問から "宿題"タグを忘れていないと確信していますか? –

+1

変更する必要があります。さもなければ、それは常にそうしません。 – kcoppock

答えて

6

、その後のエラーのすべてがgradedouble代わりの配列であることを考え、コンパイラの結果のように見える

double[] grade = new double[numberofTests]; 

double grade = new double[numberofTests]; 

を変更してみてくださいそのうちの。たとえば、「逆参照」とは、配列への索引付けを指します。 doubleスカラーに索引付けすることは妥当ではありません。

+0

ニースキャッチ..... –

2

コンパイラは非常に有用です。エラーがどの行にあるのか、エラーは何かを示します。

最初のエラーは、次の1ライン12上にあり、あなたが配列でない何かに配列リファレンスを割り当てた、あなたは

double grade[] = new double[numberofTests]; 

double grade = new double[numberofTests]; 

を変更すべきであることを示しています25行目も同様です。 gradeをダブルとして宣言してから、それを後で配列として使用しようとしたので、次の3つのエラーは前の2つのエラーのためです。

39行目のエラーTestscore.java:39: cannot find symbol symbol : class InvalidTestScore コンパイラがInvalidTestScoreクラスを見つけることができないことを意味します - それはどこですか?そのクラスもコンパイルする必要があります。

ライン46上のエラーがsystem.out.printlnSystem.out.println(システムにおける資本S)

あるべきライン59上のエラーがという名前の変数が存在しないと言うことaverageあなたが持っている式の結果としてそれを定義することができますですそこでちょうど変更してくださいaverage = startgrade/grade.length;double average = startgrade/grade.length;

関連する問題