Materiałów z zajęć nie mam, wszystko co robiliśmy to kalkulator i to było jeszcze na zasadzie znacie inne języki wiecie co to zmienna co to tablica itd.. no fajnie to w javie jest tak samo to teraz napiszcie tak samo to i strzelił polecenie koleś i główkuje jak je rozwiązać bo wątpie, żę nawet idąc do niego dostane odpowiedź, niektórzy ludzie już tacy są..
ale do rzeczy ..
- OK ! Nie będę nic modyfikował w twoim modelu klas. Chodź to trudniejsze niż myślałem. Kompilator ciągle narzuca te static'ki
- Problem z pisaniem kodu na zasadzie
a{
..
}
czy
a
{
..
}
wynika z tego, że jeden koleś mówił, żę trzeba wyrobić swój "styl" no fajnie .. nigdy tak nie pisałem jak teraz bo kod jest brzydki i cieżki. ale po jego zajęciach on sugerował, żeby pisać właśnie tak dlatego sory ale poprawie się :)
co do np
dodajUsera();
DodajUsera();
to z php mi się udzielilo - kiedys pytalem o formu nazewnictwa plikow i ponoc tam wypada pisac z duzych liter dlatego tak, ale ok będę zmienial, trzeba się przystosować do javy ;)
-
No właśnie zauważyłem, że albo static albo czerwony kod. Teraz też mam z tym problem o czym za chwile.
-
Staram się zastosować do rad, żęby "coś" wyszło.
-
W sumie jak zmienilem na dodawnie po jednym nawet szybciej sie obsluguje wiec rzeczywiscie +.
TERAZ PROBLEMY :P :
- W klasie menu ktora proponowales stworzyc powinny byc chyba tylko metody wybierajace tak?
Nie potrafie z tego kodu sklicic metody:
System.out.println("Dodaj uczniow");
System.out.println("Podaj imie i nazwisko: ");
String x = sc.nextLine();
Uczen u = new Uczen(x);
dziennik.uczniowie.add(u);
if (dziennik.przedmioty.get(0).nazwa.equals("Matematyka")) {
for (int k = 0; k < 3; k++) {
int a = 2 + dziennik.rand.nextInt(4);
Ocena o = new Ocena(a,p1,u);
dziennik.oceny.add(o);
}
}
if (dziennik.przedmioty.get(1).nazwa.equals("Polski")) {
for (int k = 0; k < 3; k++) {
int a = 2 + dziennik.rand.nextInt(4);
Ocena o = new Ocena(a,p2,u);
dziennik.oceny.add(o);
}
}
if (dziennik.przedmioty.get(2).nazwa.equals("Angielski")) {
for (int k = 0; k < 3; k++) {
int a = 2 + dziennik.rand.nextInt(4);
Ocena o = new Ocena(a,p3,u);
dziennik.oceny.add(o);
}
}
Dlaczego? a no dlatego, ze gdy tworze np. metode o nazwie dodajUcznia to potrzebuje ona dostepu do p1/p2/p3
czyli:
Przedmiot p1 = new Przedmiot("Matematyka");
dziennik.przedmioty.add(p1);
Przedmiot p2 = new Przedmiot("Polski");
dziennik.przedmioty.add(p2);
Przedmiot p3 = new Przedmiot("Angielski");
dziennik.przedmioty.add(p3);
a nie moge za kazdym razem tworzyc nowych przedmiotow, z kazdym nowym uczniem nowych przedmiotow
chce by metoda dodajUcznia przypisywala mu Od razu oceny wiec stosujac sie do konstruktora zawrtego w stworzonej przez ciebie klasie ocena nie wiem jak w metocie odwolac sie do obiektu z poza metody(to chyba tak w uproszczeniu)
- wlasnie skoro nie wiem takiej rzeczy to nie potrafie albo nie jestem swiadom jak to zrobic.. odwolac sie w klasie dziennik do metod srednia() z klas Uczen i klas Przedmiot
probuje tak:
public void sredniaUczen() {
Uczen.srednia();
}
ale w ten sposob chce zebym zmienil metode srednia na static czego mam nie robic , wiec ten rodzaj odwolania jest zly..
Wiem ze musze dla kogos ta srednia liczyc wiec zrobilem tak:
private Uczen wybierzUcznia(){
int nr;
System.out.println("Kogo chcesz wybrac?");
nr = sc.nextInt();
sc.nextLine();
if(dziennik.uczniowie.isEmpty()){
System.out.println("Pusta lista...");
}
else{
System.out.println("Wybrales: " + dziennik.uczniowie.get(nr).dane + "-id:"+dziennik.uczniowie.get(nr).id);
dziennik.uczniowie.get(nr).srednia();
}
return null;
}
czyli liczenie wrzucilem do wyboru ucznia/przedmiotu.. znow powtarza sie ze nie wiem jak wybrany nr w metodzie wybierzUcznia mial bym przeniesc i wykorzystac np w nowej metodzie liczSrednia(tu chyba jakis nr?)?
WYJSCIE DLA 2 UCZNIOW:
Lista ocen z przedmiotu
Uczen:janek - 0
Ocena: 4.0----Matematyka=janek
Ocena: 2.0----Matematyka=janek
Ocena: 5.0----Matematyka=janek
Ocena: 4.0----Polski=janek
Ocena: 5.0----Polski=janek
Ocena: 5.0----Polski=janek
Ocena: 5.0----Angielski=janek
Ocena: 2.0----Angielski=janek
Ocena: 3.0----Angielski=janek
Ocena: 2.0----Matematyka=marek
Ocena: 2.0----Matematyka=marek
Ocena: 4.0----Matematyka=marek
Ocena: 4.0----Polski=marek
Ocena: 5.0----Polski=marek
Ocena: 2.0----Polski=marek
Ocena: 5.0----Angielski=marek
Ocena: 4.0----Angielski=marek
Ocena: 4.0----Angielski=marek
Uczen:marek - 1
Ocena: 4.0----Matematyka=janek
Ocena: 2.0----Matematyka=janek
Ocena: 5.0----Matematyka=janek
Ocena: 4.0----Polski=janek
Ocena: 5.0----Polski=janek
Ocena: 5.0----Polski=janek
Ocena: 5.0----Angielski=janek
Ocena: 2.0----Angielski=janek
Ocena: 3.0----Angielski=janek
Ocena: 2.0----Matematyka=marek
Ocena: 2.0----Matematyka=marek
Ocena: 4.0----Matematyka=marek
Ocena: 4.0----Polski=marek
Ocena: 5.0----Polski=marek
Ocena: 2.0----Polski=marek
Ocena: 5.0----Angielski=marek
Ocena: 4.0----Angielski=marek
Ocena: 4.0----Angielski=marek
Nie powinno byc tak ze dodajac drugiego uzytkownika znow dodawane sa oceny pierwszemu, a drugi dostaje oceny pierwszego. Wszyscy dodaja kolejna petle ocen tak naprwde.. ale co zmienic? ten problem meczy od poczatku i to co mowiles kazdy indywidualne oceny chyba dalej cos nie tak ale chyba przez to ze dodawanie jest bez metody i jakos tak po chinsku bo nie wiem jak powiazac obiekty przedmiot - uczen -ocena (ich tworzenie)
Coz na czasie mi nie zalezy, ale ogolnie problem stworzenia tego programu chce rozwiazac do konca chodzby to mialo być kroczek po kroczku. Bardzo dziękuję za pomoc, jest ona nieoceniona! Do głowy wbija mi się więcej niż na tych zajęciach :)