Witam Mam problem z programem liczącym średnią ocen do którego miałem dodać obsługę wyjątków. Nie mogę wychwycić błędu - może Wam to się uda. Program nie wypisuje poprawnie wpisanych z klawiatury ocen i wyświetla zamiast nich wartość 0. Jako środowiska używam JCreatora.
import java.io.*;
public class zad7b {
private String imie;
private int iloscOcen;
private static int b;
private double oceny[];
public static void main(String[] args) {
int a = 1;
while(a > 0){
zad7b uczen = new zad7b();
System.out.println("Podaj imie:");
BufferedReader klaw = new BufferedReader(new InputStreamReader(System.in));
try {
uczen.imie = klaw.readLine();
} catch(IOException ex){
System.out.println("Błąd odczytu danych!");
}
System.out.println("Podaj ilosc ocen:");
BufferedReader klaw1 = new BufferedReader(new InputStreamReader(System.in));
try {
uczen.iloscOcen = Integer.parseInt(klaw1.readLine());
} catch(IOException ex) {
System.out.println("Błąd odczytu danych!");
}
uczen.oceny = new double[uczen.iloscOcen];
int z=1;
for (int i = 0; i < uczen.iloscOcen; i++) {
System.out.println("Podaj ocenę numer " + z);
BufferedReader klaw2 = new BufferedReader(new InputStreamReader(System.in));
try {
int oceny = Integer.parseInt(klaw2.readLine());
} catch(IOException ex) {
System.out.println("Błąd odczytu danych!");
}
z++;
}
System.out.println("Dodać kolejnego ucznia? (1/0)");
BufferedReader klaw3 = new BufferedReader(new InputStreamReader(System.in));
try {
uczen.b = Integer.parseInt(klaw3.readLine());
} catch(IOException ex) {
System.out.println("Błąd odczytu danych!");
}
if (b == 0)
{
a = a-1;
}
uczen.wyswietlDane(uczen.liczSrednia());
}
}
private double liczSrednia(){
double suma=0;
for(double x:oceny)
suma+=x;
return suma/iloscOcen;
}
private void wyswietlDane(double srednia){
System.out.println("Imię ucznia: "+imie);
System.out.println("Ilość ocen: " +iloscOcen);
System.out.println("Oceny: ");
for(double x:oceny)
System.out.print(x+", ");
System.out.println("Średnia: " + srednia);
}
}