Titlu: Gestionare scolara
Tema: Gestiunea scolaritatii
Clase:
1.Clasa student:
-Clasa "principala" a programului;
-Clasa are scopul de a gestiona atributele unui student: numele(variabila de tip char*), precum si doua atribute obiecte ale altor clase: ob_proiect (obiect din
clasa proiect), care cuprinde proiectul unui student si nota luata pe acesta, si ob_activitate (obiect din clasa activitate), care cuprinde notele pentru activitate ale unui student si numarul acestora; -Contine un constructor fara parametru, un destructor, un constructor cu parametri (prin care sunt definite ob_proiect si ob_activitate prin lista de initializare), un constructor de copiere, metode de get si set atat pentru clasa student, cat si pt proiect si activitate, metoda operator= (seteaza inclusiv op_proiect si ob_activitate, prin apeluri catre set-eri din cadrul respectivelor clase), o supraincarcare pt cout si una pt cin;
2.Clasa proiect:
-Are doua atribute: char* nume_proiect (denumirea proiectului) si double nota_proiect;
-Contine metode set, get, constructori cu si fara parametri si un destructor;
3.Clasa activitate:
-Are doua atribute double* nota_activitate (vector de elemente double cu notele pentru activitate) si int numar_note;
-Contine metode set, get, constructori cu si fara parametri, un destructor, dar si o metoda prin care calculeaza media aritmetica notelor pentru activitate;
4.Clasa media_finala:
-Are doua atribute de tip double: nota_activitate (media notelor) si nota_proiect, dar si un al treilea atribut apartinand clasei pondere (pondere p);
-Are constructori cu parametru si fara;
-Are doua metode set prin care defineste variabila p din clasa pondere (acestea sunt prin supraincarcare in functie de ce tip de pondere alegem: int, intre 0-100 sau
double, intre 0-1)
-Are o metoda prin care calculeaza media ponderata dintre nota_activitate si nota_proiect;
5.Clasa pondere:
-Are doua atribute de tip double: pr(proiect) si ac(activitate), reprezentand ponderile celor doua note pt care se calculeaza media finala;
-Are un constructor fara parametri;
-Are doua metode de tip set (cu supra incarcare in functie de tipul de pondere: daca set primeste variabile intregi le transforma in reale si le imparte la 100 pt
a obtine pondere intre 0-1) si doua de tip get;
Functionalitati:
-Se pot adauga studenti; Odata cu citirea numelui unui student trebuie sa ii atribui si note, numarul de note, numele proiectului realizate de acesta, nota pentru proiect; -Se pot afisa studenti; -Se poate calcula media pentru notele pentru activitate ale studentului; -Se poate calcula media finala; -Se pot copia datele unui student; -Se pot lasa ponderele default de 50-50 sau se pot adauga altele;
Programul contine si un meniu interactiv cu urmatoarele functii:
-Adaugare student (citirea numelui acestuia intrucat se creaza un vector de obiecte tip student la inceput); -Afisare student (cu toate datele lor); -Calculare medie finala; -Afisare lista studenti introdusi; -Afisare lista proiecte realizate (titlu proiect + cine l-a realizat); -Adaugare student prin copierea datelor altuia (creaza student nou); -Copiere a datelor unui student pentru altul (pot fi copiate pt un student deja existent); -Lista medii studenti; -Afisare studenti admisi (cine are media finala peste 5);
Doi studenti sunt introdusi by default, pentru a nu trebui sa incepi de fiecare data programul cu 0 studenti;