2014-10-11 4 views
-2

Я пишу программу для класса и что она делает, она спрашивает у пользователя, сколько учеников в классе и сколько экзаменов они взяли. Затем, используя цикл for, он запрашивает имя и баллы экзаменов каждого отдельного ученика на основе того, что вы ввели ранее, после того, как вы ввели это, он дает вам среднюю оценку теста и несколько других вещей. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу понять, как вы принимаете среднее значение теста. Я не могу заставить свою программу читать тестовые оценки, введенные пользователем, а затем принимать среднее значение. Спасибо за любую помощь заранее.Добавление чисел из строки, разделенных пробелом

import java.util.Scanner; 

public class GradeCalculator { 
    public static void main(String[] args){ 
     //Define Variables 
     int Students; 
     int Exams; 
     int Sum = 0; 
     int ExamAverage = 0; 
     String ExamScores; 
     String StudentName; 



     //Create Scanner 
     Scanner s = new Scanner(System.in); 

     //Print the First Block 
     System.out.println("Welcome to GradeCalculator!"); 
     System.out.println(""); 
     System.out.println("Please enter the number of students: "); 
     Students = s.nextInt(); 
     System.out.println("Please enter the number of exams: "); 
     Exams = s.nextInt(); 
     s.nextLine(); 
     System.out.println("- - - - - - - - - - - - - - - - - - - -"); 

     //For Loop 
     for (int i = 1; i<=Students; i++){ 
      System.out.println("Enter Student " + i + "'s name: "); 
      StudentName = s.nextLine(); 
      System.out.println("Enter exam scores: "); 
      ExamScores = s.nextLine(); 
      Sum+=Integer.parseInt(ExamScores); 
      ExamAverage = Sum/Exams; 
      System.out.println("Grade Statistics for " + StudentName); 
      System.out.println("\t Average: " + ExamAverage); 
      System.out.println("\t Letter Grade: "); 
      System.out.println("\t"+ StudentName + " gets a "); 
      System.out.println("- - - - - - - - - - - - - - - - - - - -"); 
     } 

     //Print the Last Block 
     System.out.println("Class Statistics:"); 
     System.out.println("\t Average: "); 
     System.out.println("\t Lowest: "); 
     System.out.println("\t Highest: "); 
     System.out.println(""); 
     System.out.println("Done, Good Bye!"); 


    } 

} 
+3

Первый шаг: разбить проблему вниз. Разложите проблему на свои составляющие шаги, а затем попытайтесь решить каждый шаг по одному. –

+0

move ExamAcer вне цикла. Кроме того, вы не увеличиваете количество экзаменов. – OldProgrammer

ответ

0

Добавление номера из строки, разделенные пробелом:

String allNumbers = "12 34 67 34 56 78"; 
int total = 0; 
for(String str : allNumbers.split("\\s")){ 
    total+=Integer.parseInt(str); 
} 
+0

Как вы делаете эту работу для всех студентов? Например, если вы наберете то, что есть 3 ученика, тогда программа попросит вас получить информацию о трех учениках, но средний работает только для первого ученика, он не работает через два других. – bearmod

Смежные вопросы