Veja o seguindo código:
//GradeBook.java
//Classe GradeBook utiliza instrução switch para contas as nota A, B, C, D, E, F.
import java.util.Scanner; //importa a classe Scanner
public class GradeBook {
private String courseName; //nome do curso que essa GradeBook representa
private int total; //soma das notas
private int gradeCounter; //número de notas inseridas
private int aCount; //contagem de notas A
private int bCount; //contagem de notas B
private int cCount; //contagem de notas C
private int dCount; //contagem de notas D
private int fCount; //contagem de notas F
//construtor inicializa courseName
public GradeBook(String name)
{
courseName = name;
}
//método para configurar o nome do curso
public void setCourseName(String name)
{
courseName = name;
}
//método para recuperar o nome do curso
public String getCourseName()
{
return courseName;
}
//exibe uma mensagem de boas-vindas para o usuário GradeBook
public void displayMessage()
{
System.out.printf("Bem vindo(a) a classe GradeBook! %s\n",getCourseName());
}
//insere número arbitrário de notas do usuário
public void inputGrades()
{
//cria Scanner para obter dados a partir da janela de comando
Scanner input = new Scanner(System.in);
int grade; //nota inserida pelo usuário
System.out.printf("Digite a nota ou <ctrl> d para sair.\n");
//faz o loop até o usuário inserir o indicador de fim do arquivo
while(input.hasNext())
{
grade = input.nextInt(); //lê a nota
total += grade; //adciona grade a total
++gradeCounter; //incrementa o número de notas
//chama o método para incrementar o contador adequado
incrementLetterGradeCounter(grade);
}
}
//adciona 1 ao contador adequado da nota especificada
public void incrementLetterGradeCounter(int grade)
{
//determina a nota que foi inserida
switch(grade / 10)
{
case 9: //nota estava entre 90
case 10: //e 100
++aCount; //incrementa aCount
break; //necessário para sair do switch
case 8: //nota estava entre 80 e 89
++bCount; //incrementa bCount
break; //sair do switch
case 7: //nota estava entre 70 e 79
++cCount; //incrementa cCount
break; //sai do switch
case 6: //nota estava entre 60 e 69
++dCount;
break;
default: //nota era menor que 60
++fCount;
break;
}
}
public void displayGradeReport()
{
System.out.println("\nVotação de relatório: ");
//se o usuário inseriu pelo menos uma nota
if(gradeCounter != 0)
{
double average = (double) total / gradeCounter;
System.out.printf("Total %d e graus: %d",gradeCounter, total);
System.out.printf("Classe média: %.2f\n",average);
System.out.printf("%s\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n",
"Número de alunos que receberam cada grau: \n",
"A: ",aCount,
"B: ",bCount,
"C: ",cCount,
"D: ",dCount,
"F: ",fCount);
}
else
System.out.println("Nenhuma nota foi inserida");
}
}
Poderiam me explicar como funciona o método inputGrades e ncrementLetterGradeCounter ?
Obrigado!