2016-10-31 42 views
-3

我的代码发布在下面。我正在生成随机数字等级并将它们分配给字母等级。然后将创建一个客户端类来测试该程序。我的问题即将结束。我收到一个错误,表示非法开始表达。也许我只需要一组新的眼睛来看看这个。我似乎无法弄清楚。谢谢!用户定义类中的Java数组

import java.util.Random; 

public class Convertgrade 
{ 
    private int numberOfStudents; 

    private int[] studentGrades = new int[100]; 


    public Convertgrade() 
    { 
      numberOfStudents = 0; 
    } 

     //one arg constructor, sets numberOfStudents = students 
     public Convertgrade(int students) 

     { 
      numberOfStudents = students; 
      setGrades(students); 
     } 

     //mutator 
     public void setStudents(int students) 
     { 
      if(students < 0) 
      { 
         numberOfStudents = 0; 
      } 
      else 
      { 
         numberOfStudents = students; 
         setGrades(students); 
       } 
     } 

     //accessor 
     public int getStudents() 

     { 
     return numberOfStudents; 
     } 

     public void setGrades(int students) 
     { 
       Random randomNumber = new Random(); 
       for(int count = 0; count < students; count++) 
       { 
        studentGrades[count] = randomNumber.nextInt(101); 
        } 
       } 

      public char[] getLetterGrades() 
      { 
        char[] letterGrades = new char[numberOfStudents]; 
        for(int count = 0; count < numberOfStudents; count++) 
        { 
          if(studentGrades[count] <= 59) 
          letterGrades[count] = 'F'; 

          else if(studentGrades[count] <= 69) 
          letterGrades[count] = 'D'; 

          else if(studentGrades[count] <= 79) 
          letterGrades[count] = 'C'; 

          else if(studentGrades[count] <= 89) 
          letterGrades[count] = 'B'; 

          else if(studentGrades[count] <= 100) 
          letterGrades[count] = 'A'; 
          } 
         return letterGrades; 
         } 

      public int getAs() 

      { 

         int numberOfAs = 0; 

         for(int count = 0; count < numberOfStudents; count++) 

         { 

           if(studentGrades[count] >= 90) 

           numberOfAs++; 

         } 
        return numberOfAs; 
      } 

      public int[] getNumberOfEachGrade() 

      { 

       int[] numberOfGrades = new int[numberOfStudents]; 

       for(int count = 0; count < numberOfStudents; count++) 

        { 

         if(studentGrades[count] <= 59) 

         numberOfGrades[count] ++; 

         else if(studentGrades[count] <= 69) 

         numberOfGrades[count] ++; 

         else if(studentGrades[count] <= 79) 

         numberOfGrades[count] ++; 

         else if(studentGrades[count] <= 89) 

         numberOfGrades[count] ++; 



         else if(studentGrades[count] <= 100) 

         numberOfGrades[count] ++; 

       } 

       return numberOfGrades; 

      } 



      public String toString() 

      { 

        System.out.format("The number of students = %d\n", numberOfStudents); 

        for(int count = 0; count < numberOfStudents; count++) 

        { 

          System.out.format("Grade %d is %d\n", count + 1, studentGrades[count]); 

        } 

      return String.format("\n"); 

      public void sort_array(int[] array); 
      //GETTING ERRORS HERE^: ILLEGAL START OF EXPRESSION 

      { 

        int intTemp; 

        int count = 0; 

        int index = 0; 

        for(count = 0; count < (array.length - 1); count++) 

        { 

         for(index = 0; index < (array.length - 1); index++) 

         { 

           if(array[index] > array[index +1]) 

           { 

             intTemp = array[index +1]; 

             array[index +1] = array[index]; 

             array[index] = intTemp; 

            } 

          } 

        } 

       } 

     } 

} 
+0

'public void sort_array(int [] array){...}'...用大括号替换分号。 –

+0

您已经指出了问题。从声明中删除分号。 –

+0

仍然收到错误家伙。感谢您的回应。你们可以尝试编译它吗? –

回答

0

你在错误的地方有一些大括号{}和分号。

你的缩进看起来有点搞砸 - 也许这是你在做这篇文章时如何复制代码,但小心你的缩进可以使这些错误更明显。

  • 您有后“公共无效sort_array(INT []数组)”分号这不应该存在
  • 你有缺少右括号}紧接本
  • 之前,有一个额外的在文件的结尾结束花
0

替换此部分:

 return String.format("\n"); 

     public void sort_array(int[] array); 
     //GETTING ERRORS HERE^: ILLEGAL START OF EXPRESSION 

通过这个:

return String.format("\n"); 
} 

public void sort_array(int[] array) { 
    // OMG THERE ISN'T ERRORS ANYMORE :) 

下一次你可以告诉有什么东西,如果你看到这样的“回报”语句挂在无处奇怪...

+0

HAHA!感谢您的建议和帮助 –

2

我veeery强烈建议您使用IDE,像EclipseIntelliJ。或者任何能够帮助你保持健康的代码风格的东西,比如Sublime Text以及一些Java代码风格包。

任何事情都可以做!


您有3个问题:

  1. 缺失闭合支架(})线149(大致)
  2. 一个额外的分号线150个
  3. 一个在最后太多括号的文件。

我这次为你清理了你的代码,但它只是输入问题,我希望你能找到一种方法来避免在未来:)

import java.util.Random; 

public class Convertgrade { 

    private int numberOfStudents; 
    private final int[] studentGrades = new int[100]; 

    public Convertgrade() { 
     this.numberOfStudents = 0; 
    } 

    // one arg constructor, sets numberOfStudents = students 
    public Convertgrade(final int students) { 
     this.numberOfStudents = students; 
     setGrades(students); 
    } 

    // mutator 
    public void setStudents(final int students) { 
     if (students < 0) { 
      this.numberOfStudents = 0; 
     } else { 
      this.numberOfStudents = students; 
      setGrades(students); 
     } 
    } 

    // accessor 
    public int getStudents() { 
     return this.numberOfStudents; 
    } 

    public void setGrades(final int students) { 
     final Random randomNumber = new Random(); 
     for (int count = 0; count < students; count++) { 
      this.studentGrades[count] = randomNumber.nextInt(101); 
     } 
    } 

    public char[] getLetterGrades() { 
     final char[] letterGrades = new char[this.numberOfStudents]; 
     for (int count = 0; count < this.numberOfStudents; count++) { 
      if (this.studentGrades[count] <= 59) { 
       letterGrades[count] = 'F'; 
      } else if (this.studentGrades[count] <= 69) { 
       letterGrades[count] = 'D'; 
      } else if (this.studentGrades[count] <= 79) { 
       letterGrades[count] = 'C'; 
      } else if (this.studentGrades[count] <= 89) { 
       letterGrades[count] = 'B'; 
      } else if (this.studentGrades[count] <= 100) { 
       letterGrades[count] = 'A'; 
      } 
     } 

     return letterGrades; 
    } 

    public int getAs() { 
     int numberOfAs = 0; 
     for (int count = 0; count < this.numberOfStudents; count++) { 
      if (this.studentGrades[count] >= 90) { 
       numberOfAs++; 
      } 
     } 

     return numberOfAs; 
    } 

    public int[] getNumberOfEachGrade() { 
     final int[] numberOfGrades = new int[this.numberOfStudents]; 
     for (int count = 0; count < this.numberOfStudents; count++) { 
      if (this.studentGrades[count] <= 59) { 
       numberOfGrades[count]++; 
      } else if (this.studentGrades[count] <= 69) { 
       numberOfGrades[count]++; 
      } else if (this.studentGrades[count] <= 79) { 
       numberOfGrades[count]++; 
      } else if (this.studentGrades[count] <= 89) { 
       numberOfGrades[count]++; 
      } else if (this.studentGrades[count] <= 100) { 
       numberOfGrades[count]++; 
      } 
     } 

     return numberOfGrades; 

    } 

    @Override 
    public String toString() { 
     System.out.format("The number of students = %d\n", this.numberOfStudents); 
     for (int count = 0; count < this.numberOfStudents; count++) { 
      System.out.format("Grade %d is %d\n", count + 1, this.studentGrades[count]); 
     } 

     return String.format("\n"); 
    } 

    public void sort_array(final int[] array) { 
     int intTemp; 
     int count = 0; 
     int index = 0; 
     for (count = 0; count < (array.length - 1); count++) { 
      for (index = 0; index < (array.length - 1); index++) { 
       if (array[index] > array[index + 1]) { 
        intTemp = array[index + 1]; 
        array[index + 1] = array[index]; 
        array[index] = intTemp; 
       } 
      } 
     } 
    } 
} 
+0

哇!非常感谢!你真的很有天赋。 –