Ćwiczenia początkującego - tablice, zmienne i kilka plików

0

Hej, dopiero uczę się Javy więc proszę o wyrozumiałość.
Mój problem polega na tym że muszę wypełnić klasę obsługującą uczniów, w sensie mam plik "Student.java" i "TestStudent.java";

Student jest plikiem jakby gdzie są wszystkie funkcje np. obliczSrednia() bądź liczbaNiezaliczonych().
TestStudent jest gotowym plikiem, który jak nazwa wskazuje testuje.

Wracając do problemu, mam taki kawałek kodu:

TestStudent.java:

	// test1 : student z 4 ocenami:
		double[] tableTestee = {10,12,14,16};
		student = new Student(1,tableTestee);
		srednia= student.obliczSrednia();

Student.java:

	public double obliczSrednia(){
		
		// WYPELNIJ
		return 0;
	}
	

Test 1 ma ucznia z 4 ocenami, ale test dwa już ma ich 5, rozumiem że do funkcji trzeba dopisać parametr z ilością ocen? ( w moim przypadku być może int tableTestee.length ? )

Do tego bardzo nie rozumiem jak odbywa się przejście z jednego pliku do drugiego, jak ktoś mógłby trochę o tym opowiedzieć byłoby miło :)

0

Test 1 ma ucznia z 4 ocenami, ale test dwa już ma ich 5, rozumiem że do funkcji trzeba dopisać parametr z ilością ocen?

Po co?

Do tego bardzo nie rozumiem jak odbywa się przejście z jednego pliku do drugiego,

???

0

Mówię że mam plik "Student.java" i plik "TestStudent.java"
i w pliku Student mam funkcję, a w pliku TestStudent je wywołuje.

np jeśli w Student mam funkcję obliczSrednia() to w TestStudent mam: student.obliczSrednia();

0

W czym tkwi problem? W pliku TestStudent.java piszesz

Student student = new Student(...);
student.obliczSrednia();
0

Plik TestStudent:

package teststudent;

public class TestStudent {

    public static void main(String[] args) {
        Student st1 = new Student("Jas", "Kowalski", 1, 3, 4, 2);
        Student st2 = new Student("Sebix", "Bania", 1, 3, 4, 2, 5, 2, 3, 4, 5);
        System.out.println("Średnia studenta nr1 wynosi: " + st1.obliczSrednia());
        System.out.println("Średnia studenta nr2 wynosi: " + st2.obliczSrednia());
    }
}

Plik Student:

package teststudent;

public class Student {
    String imie;
    String nazwisko;
    int[] oceny;
    
    Student(){
        
    }
    Student(String imie, String nazwisko, int ... oceny){
        this.imie = imie;
        this.nazwisko = nazwisko;
        this.oceny = oceny;
    }
    
    public double obliczSrednia(){
        double temp = 0;
        for(int i : oceny){
            temp+=i;
        }
        return temp/oceny.length;
    }
}

Tutaj jak widać możemy tworzyć obiekty o zmiennej liczbie argumentów, które dodawane są do zmiennej oceny[].

W konstruktorze klasy student zastosowałem operator "...", który można stosować do konstruowania obiektów o zmiennej liczbie argumentów (w taki sam sposób można używać go w przypadku metod).

W tym co napisałem wyżej na pewno jest parę rzeczy do dopisania (np. coś do sprawdzania czy przypadkiem ktoś nie chce podać oceny z zakresu poniżej 1 lub powyżej 6), ale mam nadzieję, że o to chodziło bo nie do końca zrozumiałem co chcesz zrobić.

Na pewno by pomogło gdybyś sam wrzucał to co próbowałeś zrobić, wtedy czasami można zobaczyć co próbujesz zrobić i łatwiej jest ci wskazać, w którym miejscu popełniasz błąd.

0

Dzięki za pomoc!

Trochę to objaśniło mi wizję działania programu. Swojego kodu tu nie wrzucę bo tak jakby go nie mam.
Dostałem dwa pliki Student i TestStudent i mam je wypełnić, dlatego też kod nie jest mój, a poza tym jest on w innym języku więc tłumaczę to wszystko :)

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