Duvida com programinha basico

2 respostas
A

Galera, com fins academicos desenvolvi um programinha basico de quadro de notas.

Mas aconteçe que no metodo outputGrades() aconteçe um erro

java.util.MissingFormatArgumentException: Format specifier ‘d’

creio que este erro esteja aconteçendo por causa do metodo getNotes()

o metodo getNotes() deveria criar as var counter e grades2[], pedir ao usuario inserir um valor e atribui-lo a uma serie de no maximo 100 arrays do tipo int grades2, e incrementar counter, fazendo assim com que os valores sejam distribuidos entre os arrays.

logo depois ele confere o valor sentinela, define o tamanho do array grades, e atribui os valores a ele.

bom, espero que alguem me ajude.

import java.util.Scanner;

public class GradeBook{
    
    private String courseName;
    private int grades[];
    
    public GradeBook( String name ){
        
        courseName = name;
    }
    
    public void setCourseName(String name){
        courseName = name;
    }
    public String getCouseName(){
        
        return courseName;
    }
    
    public void displayMessage(){
        System.out.printf( "Welcome to the grade book for \n%s!\n\n", getCouseName());
    }
    public void processGardes(){
        
        outputGrades();
        
        System.out.printf( "\nClasse average is %.2f\n", getAverage());
        
        System.out.printf( "Lowest grade is %d\nHigest grade is %d\n", getMinimum(), getMaximum());
        
        
    }
    
    public int getMinimum(){
        
        int lowGrade = grades[0];
        
        for (int grade : grades){
            if (grade < lowGrade)
                lowGrade = grade;
        }
        return lowGrade;
    }
    public int getMaximum(){
        
        int maxGrade = grades[0];
        
        for (int grade : grades){
            if (grade < maxGrade)
                maxGrade = grade;
            
        }
        return maxGrade;
    }
    
    public double getAverage(){
        int total = 0;
        
        for (int grade : grades)
            total += grade;
        return (double)total / grades.length;
        
    }
    
    public void outPutBarChart(){
        
        System.out.println( "Grade Distribution:" );
        
        int frequency[] = new int[11];
        
        for( int count = 0; count < frequency.length; count++){
            
            if (count == 10)
                System.out.printf( "%5d:", 100 );
            else
                System.out.printf("%02d-%02d: ", count * 10, count * 10 + 9);
            
            for (int stars = 0; stars < frequency.length; stars++ )
                System.out.print("*");
        }
        
    }
    
    public void outputGrades(){
        System.out.println("The Grades are:");
        
        for (int student = 0; student < grades.length; student++ )
            System.out.printf( "Student %2d: %3d\n", student + 1, grades[student]);
    }
    
    public void getNotes(){
       
       Scanner in = new Scanner(System.in);
       int counter = 0;
       int grades2[] = new int[100];
       
       do{
       System.out.println("Enter the note or -1 to exit: ");
       grades2[counter] = in.nextInt();
       counter++;
       }
       while (grades2[counter -1 ] != -1 );
       
       grades = new int[ counter + 1 ];
       
       for( int cont = 0; cont < grades.length; cont++ ){
           
          grades[cont] = grades2[cont];   
           
       }
       
       
       
       
       
    }
    
}
public class GradeBookTest {
    
    public static void main( String args []){
        
        GradeBook myGrade = new GradeBook( "Java programer");
        
        myGrade.getNotes();
        myGrade.displayMessage();
        myGrade.processGardes();
    }
}

2 Respostas

T

Cara vi e num achei erro… executei aki e tb não rolou erro nenhum! ué?

maquiavelbona

Rodei, rodei, rodei e também não achei nenhum erro.

Até!

Criado 22 de junho de 2007
Ultima resposta 22 de jun. de 2007
Respostas 2
Participantes 3