2016-11-18 5 views
-1

Ich versuche, ein Programm zu schreiben, das Noten einträgt und die Buchstabenklasse zurückgibt, und nachdem der Benutzer -1 eingegeben hat, gibt es die maximale Note, die minimale Note und die Durchschnittsnote zurück wurde ... betreten. Im Moment gibt das Programm den Buchstabengrad und Null für den Durchschnitt, Maximum und Minimum zurück.Minimum, Maximum und Durchschnitt der Noten

import java.util.Scanner; 

public class getLetterGrade { 
    public static void main(String[] args) { 
     int count = getGrades(); 
     int sum = getGrades(); 
     int max = getGrades(); 
     int min = getGrades(); 
     System.out.println("You entered " + count + " students"); 
     System.out.println("Class average =" + sum/count); 
     System.out.println("Maximum =" + max); 
     System.out.println("Minimum ="+ min); 

    } 

    public static int getGrades() { 
     Scanner reader = new Scanner(System.in); { 
     int count = 0; 
     int sum = 0; 
     int min = 100; 
     int max = 0; 

     while(true) { 
      System.out.println("Welcome to the grade calculator. \n Please enter a numeric grade. \n After the last student in the class, enter a grade of -1."); 


      int grade = reader.nextInt(); 



      if (grade >= 90) { 
       System.out.println("That's an A"); 
      } else if (grade >= 80) { 
       System.out.println("That's a B"); 
      } else if (grade >= 70) { 
       System.out.println("That's a C"); 
      } else if (grade >= 60) { 
       System.out.println("That's a D"); 
      } else if (grade >= 0) { 
       System.out.println("That's an F"); 
      } else if (grade == -1) { 
       return count; 
      } 

      if (grade < min){ 
       min = grade; 
      } 
      if (grade > max){ 
       max = grade;} 

      count++; 
      sum += grade; 

     } 
    } 
} 
} 
+6

Ich vermute, Sie wollen nicht wirklich 'getGrades()' 4 Mal aufrufen. Auch "getGrades" gibt nichts zurück. Vielleicht lohnt es sich, Hilfe von Ihrem Professor/TA zu suchen. Dies ist ein ziemlich grundlegender Mangel an Java/Programmierkenntnissen – CollinD

Antwort

0

In Ihrer Hauptfunktion, schauen Sie, wie Sie versuchen, zählen, Summe, Max und Min. Wie kann getGrades() Ihnen einen dieser Werte geben, wenn getGrades() nur gibt zurück, nur wenn Sie eine -1 erhalten?

Dann rufen Sie auch getGrades() vier Mal. Müssen Sie diese 4 Mal nach Benutzereingaben fragen?

Korrigieren Sie es, indem Sie getGrades() nur einmal aufrufen, und verschieben Sie dann die Druckanweisungen nach Ihrer while-Schleife in getGrades().

Ändern Sie auch getGrades(), so dass es nichts zurückgibt, und es nur aus der While-Schleife ausbrechen, wenn der Benutzer -1 eingibt.

Wie andere gesagt haben, flehe ich Sie an, mit einem Professor, ta oder was auch immer zu sprechen, um Ihnen das persönlich zu erklären.

public static void getGrades() { 
    Scanner reader = new Scanner(System.in); 
    int count = 0; 
    int sum = 0; 
    int min = 100; 
    int max = 0; 

    while(true) { 
     System.out.println("Welcome to the grade calculator. \n Please enter a numeric grade. \n After the last student in the class, enter a grade of -1."); 

     int grade = reader.nextInt(); 

     if (grade >= 90) { 
      System.out.println("That's an A"); 
     } else if (grade >= 80) { 
      System.out.println("That's a B"); 
     } else if (grade >= 70) { 
      System.out.println("That's a C"); 
     } else if (grade >= 60) { 
      System.out.println("That's a D"); 
     } else if (grade >= 0) { 
      System.out.println("That's an F"); 
     } else if (grade == -1) { 
      // Exit while loop to finish the rest of the code 
      break; 
     } 

     if (grade < min){ 
      min = grade; 
     } 
     if (grade > max){ 
      max = grade; 
     } 

     count++; 
     sum += grade; 
    } 
    // Moved print statements here, to be just outside the while loop 
    System.out.println("You entered " + count + " students"); 
    System.out.println("Class average =" + sum/count); 
    System.out.println("Maximum =" + max); 
    System.out.println("Minimum ="+ min); 
} 
Verwandte Themen