Problem z prostym programem

0

Witam. Mam problem z zadaniem:
Napisz program, który pyta użytkownika o nazwisko i oceny tak długo, aż użytkownik poda prawidłowe wartości (pomiędzy 1 a 6), tworzy na ich podstawie obiekt klasy Uczeń i wyświetla jego średnią (metoda Średnia). Należy obsłużyć wyjątki przy czytaniu wartości podanych przez użytkownika i przy konwersji Stringa do float: metoda Float.parseFloat.
Program również powinien pytać ile ocen będzie podanych. Po podaniu danych jednego ucznia powinno być pytanie czy będą podane dane kolejnego ucznia czy nie (również obsługa wyjątków). Na koniec program powinien wyświetlić wprowadzone dane.

Poniżej treść programu co udało mi się zrobić do tej pory. Jest masa błędów, bo marny ze mnie programista. Dodatkowo proszę by ktoś pomógł jakimiś "prostymi metodami" coś podobnego jak jest w kodzie:

package zadanko;
import java.io.*;
import java.util.ArrayList;
class uczen
{
    String nazwisko;
    float ocena;
    int il_ocen;
    float tab[];
    public uczen(String nazwisko, float ocena,int il_ocen, float tab[])
    {
        this.nazwisko=nazwisko;
        this.ocena=ocena;
        this.il_ocen=il_ocen;
        this.tab=tab;
    }
    public void srednia(float suma)
    {
        float srednia=suma/3;
    }
}
public class Zadanko {
public static void main(String[] args) throws Exception {
    //char znak=0;
    String znak="t";
    //while (znak!='n')
        while (znak!="n")
    {
        BufferedReader in= new BufferedReader (new InputStreamReader(System.in));
        //BufferedReader in= new BufferedReader (new InputStreamReader (ArrayList<Float> list= new ArrayList<Float>()));
        float n;
        float ocena=1;
        float tab[]= new float['n'];
        System.out.println("Podaj nazwisko ucznia");
        String nazwisko= in.readLine();
        
        System.out.println("Podaj liczbe ocen");
        n= Float.parseFloat (in.readLine());
        System.out.println("Teraz podaj swoje oceny");
        int i=1;
        while(ocena>=1 && ocena<=6 && i<=n)
        {
            ocena= Float.parseFloat(in.readLine());
            //i=0;
            tab[i]=ocena;
            float suma=0;
            suma=suma+tab[i];
            i++;
        }
        System.out.println(tab[i]);
        while(ocena>=1 && ocena<=6 && i<=n)
        {
            i=1;
            System.out.println(tab[i]);
            i++;
        }
        
        System.out.println("Czy chcesz podac nastepnego ucznia: t/n");
        //znak= char.parseString(in.readLine());
        znak= in.readLine();
        //if(znak=='n')
        /*if(znak!="n" && znak!="t")
        {
                    System.out.println("Bledny znak");
        }*/
        //else if (znak!='n' || znak !='t')
            if (znak=="n")
            {
                    System.out.println("Koniec wprowadzania uczniow");
                    break;
            }
                else if (znak=="t")
                {
                    System.out.println("Nastapi wprowadzanie kolejnego ucznia");
                    continue;
                }   
}
    
}
}

Także if nie działa jak należy ,kombinowałem na różne sposoby ,ale ciągle źle wychodzi. Z góry dziękuję za pomoc.

1

Napisy w Javie porównuj metodą equals, a nie za pomocą == i !=

1 użytkowników online, w tym zalogowanych: 0, gości: 1