2013-09-25 3 views
-2

프로그래밍에 익숙하지 않아 각 do while 루프에 대한 점수를 증가 시키거나 저장할 카운터를 얻을 수 없습니다. 이 프로그램은 숙제에 대한 성적을 받아 평균 한 다음, 퀴즈에 대한 성적을 받아 평균 한 다음, 시험에 대해 동일한 결과를 얻은 다음 마지막에 평균 3 개의 평균을 함께 계산합니다. ,Java가 작동하도록 카운터를 가져올 수 없습니다.

averagehomework = totalhomework/counterhomework; 
System.out.print("\nYour Homework average is:" + averagehomework); 

당신이 이름 변수를 초기화해야합니다

import java.util.Scanner; 

public class Homework3 { 

    public static void main (String[] args) { 
     Scanner input = new Scanner(System.in); 
     int number1; 
     int totalhomework = 0; 
     int counterhomework = 0; 
     double averagehomework = 0; 

     String name; 
     int homeworkgrade = 0; 
     int totalquiz = 0; 
     int counterquiz = 0; 
     double averagequiz = 0; 

     int quizgrade = 0; 
     int totaltest = 0; 
     int countertest = 0; 
     double averagetest = 0; 
     int testgrade = 0; 

     double finalaverage = 0; 
     boolean run = true; 

     do { 
      System.out.print("\nEnter 1 to average grades for new student"); 
      System.out.print("\n Enter 2 to quit"); 
      number1 = input.nextInt(); 
      if (number1 == 1) { 
       System.out.println("\nWhat is the student's name?"); 
       name = input.next(); 
      } 
      if (number1 == 2) { 
       System.out.print("\nThank you"); 
       System.exit(1); 
      } 
      counterhomework = 0; 
      totalhomework = 0; 

      do { 
       counterhomework++; 
       totalhomework = totalhomework + homeworkgrade; 
       System.out.println("\nFirst enter Homework grades then type " + 
        "-1 to move onto next category" 
       ); 
       homeworkgrade = input.nextInt(); 
      } while(homeworkgrade != -1); 

      if (homeworkgrade == -1) { 
       System.out.print("\nYour Homework average is:" + 
        averagehomework 
       ); 
       averagehomework = totalhomework/counterhomework; 
      } 
      do { 
       counterquiz = counterquiz +1; 
       System.out.print("\nNext enter quiz grades then type -1 " + 
        "to move onto next category" 
       ); 
       totalquiz = totalquiz + quizgrade; 
       quizgrade = input.nextInt(); 

      } while (quizgrade != -1); 

      if (quizgrade ==-1) { 
       System.out.print("\nYour quiz average is:" + averagequiz); 
       averagequiz = totalquiz/counterquiz; 
      } 
      do { 
       countertest = countertest +1; 
       System.out.print("\nFinally enter test grades then type " + 
        "-1 when finished" 
       ); 
       totaltest = totaltest + testgrade; 
       testgrade = input.nextInt(); 
      } while (testgrade != -1); 

      if (testgrade == -1) { 
       System.out.print("\nYour test average is:" +averagetest); 
       averagetest = totaltest/countertest; 
      } 
      System.out.print(name); 
      System.out.print("final average is:" + finalaverage); 
      finalaverage = 0.25 * averagehomework + 0.25 * averagequiz + 
       0.50 * averagetest; 
     } while (number1 != 2); 
    } //main 
} //class 
+1

어떤 문제가 있습니까? – Masudul

+3

SO에 게시하기 전에 코드를 정리하십시오. 너무 많은 공백이 있으며 탭이 응용 프로그램의 중첩 구조를 따르지 않습니다. –

+2

그리고 너무 많은 양의 코드가 있습니다. – Dukeling

답변

2

나는 당신의 문제가 averagehomework= 0.0이라고 생각하고, 당신이 그것을 계산하기 전에 averagehomework를 인쇄 때문입니다, 그래서 그것을 만들 이렇게 :

String name = ""; 

counterhomework은 초기화 필요 -1

+0

정말 고마워요! 프로그램이 잘 작동합니다! – user2814798

+0

당신은 환영 받았습니다 :) –

관련 문제