maria-tudor / proiect-pao1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

proiect-pao1

In acest proiect am inclus clasele Facultate, Person, Student, Professor, Subject si Mark.

Clasa Person este o clasa abstracta care contine 3 atribute protected: Name, Age si Sex si metode de get si set pentru fiecare dintre ele, dar si metoda abstracta display, creata pentru afisarea claselor care o mostenesc. Clasa Student mosteneste clasa Person si are in plus 2 atribute private: major si year, dar si 2 array-uri, una cu note (clasa Mark), ordonata descrescator, si cealalta cu materii (clasa Subject). Metodele acestei clase includ get pentru fiecare atribut si, in loc de set, pentru year am creat o functie care creste cu 1 acest atribut, deoarece cred ca aceasta ar fi cea mai uzuala modificare a acestui atribut. Metoda display afiseaza toate datele unui student, metoda worstGradeInSubject afiseaza cea mai slaba nota a unui student la o anumita materie si metoda averageInSubject afiseaza media notelor unui student de la o anumita materie. De asemenea, metoda showMarks afiseaza toate notele unui student, indiferent de materie.De asemenea, se regasesc si metode pentru adaugare/stergere materii si note. Clasa Professor mosteneste clasa Person si are in plus 2 atribut private: position si years_of_experience, dar si 2 array-uri, unul de materii predate (clasa Subject) si unul de studenti (clasa Student). Metodele acestei clase includ get pentru fiecare atribut, set pentru position si increaseYearsOfExperience, care creste ce-l de-al doilea atribut cu 1. De asemenea, se regasesc si metode pentru adaugare/stergere studenti si materii pentru profesori. Clasa Subject contine atributele name, semesters si field, dintre care ultimul este final si un array de profesori(clasa Professor). Aceasta clasa contine metode de get si set pentru toate atributele unde era necesar si metode pentru adaugare/stergere profesori in cazul in care nu mai predau respectiva materie. Clasa Mark contine atributele student de tipul Student, profesor de tipul Professor, materie de tipul Subject, data si value. In constructorul cu parametrii din aceasta clasa am inclus si un apel al functiei addNew, care adauga in toate array-urile corespunzatoare studentilor, profesorilor si materiilor legaturile noi. De asemenea, pe langa metodele de set si get, am inclus si MarkValueComparator, metoda prin care am orodnat lista de note din clasa Student. Clasa Facltate are 4 array-uri, unul din fiecare tip de clasa creat precedent, si metode de adaugare in aceste liste, pentru a putea avea liste complete cu toate cele 4 tipuri de obiecte. In main am instantiat obiecte din fiecare tip si am apelat toate functiile create. Am inclus si un meniu, insa acesta este comentat deoarece am descoperit niste probleme cu acesta ulterior.

About


Languages

Language:Java 100.0%