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();
}
}