2014-02-13 1 views
0

Я наконец написал свою программу (Потребовалось некоторое время, как я новичок) и то, что программа делает это:Простая ошибка усреднения, не может найти правильный код

меню
  • распечаток с 2-х вариантов, средний балл или выйти.

  • Если пользователь выбирает средние оценки, он запрашивает их имя. Затем он сообщает им, какой порядок оценок будет усреднен.

  • Затем они вводят любое количество оценок и нажимают -1, и это даст вам сумму этих оценок вместе со средним значением. Он делает это 3 раза, для домашней работы, викторины и тестов.

Последнее, что мне нужно сделать, это в среднем всего 3 из этих классов, а затем выход:

  • System.out.println(name, "'s average is ", + averageFinal);

Я получил эту строку из моего назначения:

Final Average = 0.25*HomeworkAvg + 0.25*QuizAvg + 0.50*TestAvg = 77.87 

Который я попытался поместить в программу как:

averageFinal = 0.25*averageOne + 0.25*averageTwo + 0.50*averageThree; 

Но по какой-то причине, я получаю эту странную ошибку компиляции, которую я не могу исправить:

Assignment3.java:120: error: cannot find symbol 
System.println(name, "'s final average is ", averageFinal); 
    ^
symbol: method println(String,String,double) 
location: class System 
1 error 

Есть только простая проблема с моим кодом, или я должен изменить что-то в моем методе строк?

import java.util.Scanner; 

public class Assignment3 { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int choice; 
     int total; 
     double averageOne; 
     double averageTwo; 
     double averageThree; 
     double averageFinal; 
     int grade; 

     int gradeCounterone; 
     int gradeCountertwo; 
     int gradeCounterthree; 

     gradeCounterone = 0; 
     gradeCountertwo = 0; 
     gradeCounterthree = 0; 
     total = 0; 

     String name; 

     System.out.println("Enter 1 or 2: \n 1 - Average grades \n 2 - Quit"); 
     choice = input.nextInt(); 

     if (choice == 1) { 
      System.out.println("Enter the students name:"); 
      name = input.next(); 

      System.out.println("Grades will be entered in this order: \n 1) Homework Grades \n 2) Quiz Grades \n 3) Test Grades "); 

      { 
       System.out.println("Enter homework grades, press -1 when finished:"); 
       grade = input.nextInt(); 

       while (grade != -1) { 
        total = total + grade; 
        gradeCounterone = gradeCounterone + 1; 

        System.out.println("Enter homework grades, press -1 when finished:"); 
        grade = input.nextInt(); 

       } 
       if (gradeCounterone != 0) { 
        averageOne = (double) total/gradeCounterone; 

        System.out.printf("\nThe total of the %d homework grades is %d\n", gradeCounterone, total); 
        System.out.printf("\nThe average of the homework grades is %.2f\n ", averageOne); 

       } 

       // second loop for quiz grades 

       System.out.println("\nEnter quiz grades, press -1 when finished:"); 
       grade = input.nextInt(); 

       while (grade != -1) { 
        total = total + grade; 
        gradeCountertwo = gradeCountertwo + 1; 

        System.out.println("Enter quiz grades, press -1 when finished:"); 
        grade = input.nextInt(); 

       } 
       if (gradeCountertwo != 0) { 

        averageTwo = (double) total/gradeCountertwo; 

        System.out.printf("\nThe total of the %d quiz grades is %d\n", gradeCountertwo, total); 
        System.out.printf("\nThe average of the quiz grades is %.2f\n ", averageTwo); 

       } 

       // third loop for test grades 

       System.out.println("\nEnter test grades, press -1 when finished:"); 
       grade = input.nextInt(); 

       while (grade != -1) { 
        total = total + grade; 
        gradeCounterthree = gradeCounterthree + 1; 

        System.out.println("Enter test grades, press -1 when finished:"); 
        grade = input.nextInt(); 

       } 
       if (gradeCounterthree != 0) { 

        averageThree = (double) total/gradeCounterthree; 

        System.out.printf("\nThe total of the %d test grades is %d\n", gradeCounterthree, total); 
        System.out.printf("\nThe average of the test grades is %.2f\n ", averageThree); 

       } 

       averageFinal = 0.25 * averageOne + 0.25 * averageTwo + 0.50 * averageThree; 
       System.println(name, "'s final average is ", averageFinal); 

      } 

     } else if (choice == 2) { 
      System.out.println("Exiting program."); 
     } else { 
      System.out.println("Invalid response, exiting program."); 
     } 
    } 
} 

ответ

0

Вместо

System.println(name, "'s final average is ", averageFinal); 

попробовать

System.out.println(name + "'s final average is " + averageFinal); 

Вы также можете получить эту информацию от JDK документации.

+0

Ничего себе я даже не видел, что простая ошибка><Но спасибо.! – user3304333

+0

Также я чувствую, что моя последняя строка усреднения неверна, есть ли место, где можно найти правильный код? Или это то, что вы хотели найти в документах JDK – user3304333

0

его опечатка.

Его не

System.println(); 

Это

System.out.println(); 

Обратитесь к этому link

1

Оно должно быть:

System.out.println(name + " s final average is " + averageFinal); 

вместо

System.println(name, "' s final average is ", averageFinal); 
0

Существует несколько вопросов здесь.

Несмотря на очевидное: это System.out.println.И, сцепить String ы вместе с +:

System.out.println(name + "'s final average is " + averageFinal); 

Теперь, после того, как вы исправить этот код, то вы получите вопрос об этих переменных не инициализирован:

averageFinal = 0.25 * averageOne + 0.25 * averageTwo + 0.50 * averageThree; 

Ни averageOne, averageTwo ни averageThree гарантируются посредством естественного потока программы, которые должны быть инициализированы - кажется, что они инициализируются за некоторыми заявлениями if.

Было бы просто инициализировать их к нулю, только в случае, если вы не попали какие-либо из ваших if заявлений:

double averageOne = 0; 
double averageTwo = 0; 
double averageThree = 0; 
Смежные вопросы