2014-02-13 35 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; 

无论averageOneaverageTwo也不averageThree通过程序的自然流程来保证被初始化 - 看起来他们正在初始化一些if声明的后面。

这将会是简单的将其初始化为零,以防万一你没有打任何你if声明:

double averageOne = 0; 
double averageTwo = 0; 
double averageThree = 0;