Curs - Programare orientată pe obiecte - (POO) - C. Ștefan, s. 104 Duminică · 12:00 – 16:00
Evaluarea are patru componente:
evaluare pe parcurs 1 (scris) - 10% - dată estimată 26 martie
proiect laborator 1 - 20% - dată estimată 30.4.2023
proiect laborator 2 - 20% - dată estimată 28.5.2023
examen final (scris) - 50% - sesiunea de vară
OBSERVAȚII:
pentru evaluare proiectele vor fi susținute personal la laborator ȘI vor fi predate în format tipărit pentru arhivare la Departament; nu vor fi acceptate proiecte care nu au fost susținute sau nu sunt însoțite de materialul tipărit!
condiția de promovare este compilarea fără erori a codului dvs. (cu MinGW - CodeBlocks v17.12 32-bit)
se cere comentarea codului pentru a descrie funcționalitatea diverselor module (funcții, parametri etc.)
barem de notare: fiecare cerință este cotată cu un punct din nota proiectului
Proiect laborator 1 (20% din nota finală) - termen de predare - 30.4.2023
CERINȚE
se va implementa în C++ o clasă Persoana care va conține câmpuri private legate de evidența populației (e.g. CNP, nume, prenume, data nașterii, gen, domiciliu, înălțime, culoarea ochilor etc.)
vor fi definite metode publice care să permită citirea (setX) și afișarea (getX) fiecărui câmp
va fi definită o metodă de afișare pentru obiectele de tip Persoană
se vor implementa metode de comparare diverse (cel puțin două) - e.g pe baza datei de naștere și a genului
se cer cel puțin doi constructori (inițializare + copiere) cu cel puțin un parametru cu valoare predefinită; se cere și implementarea unui destructor (doar dacă va fi prezentat la curs până pe data de 28.4)
constructorii vor afișa mesaje corespunzătoare (e.g. "apel constructor cu param. x, y, z")
se va implementa cel puțin o metodă privată care va fi apelată de o metodă publică
se vor face validări pentru datele preluate de metodele set, returnând informații despre succesul operației
programul principal va prelucra un șir de obiecte (cel puțin 3), la fiecare fiind efectuate diverse operații (comparații, cel puțin o sortare, afișări înainte și după modificări de câmpuri etc.)
Proiect laborator 2 (20% din nota finală) - termen de predare - 28.5.2023
CERINȚE
se va implementa în C++ o ierarhie de minim trei clase derivate, la libera alegere (e.g. Persoana - Student - StudentSalariat)
cel puțin două dintre acestea vor implementa moștenirea, iar cel puțin una moștenirea multiplă
clasele vor avea în interfață constructori - cel puțin doi cu signatură diferită (inițializare, copiere etc.), destructor și metode de afișare (afișările se vor face în fișier text)
câmpurile claselor vor fi private și vor fi definite metode get/set publice pentru accesarea lor
metoda de afișare va avea același nume în toate clasele, dar va avea comportament diferit, fiind virtuală
fiecare clasă va avea cel puțin o funcție Friend cu funcționalitate minimală (e.g. calcul simplu, afișare etc.)
o clasă va avea cel puțin un operator supraîncărcat (e.g. suma salariilor studenților salariați sau similar)
se va defini o clasă abstractă, ce va fi utilizată de cel puțin o clasă instanțiabilă (poate avea doar o metodă)
se vor defini cel puțin două excepții în codul implementat, ce vor fi prinse și tratate
se va face numărarea instanțelor pentru clasa de bază a ierarhiei și se va afișa acest număr la final
Preluarea (chiar parțială) a codului de la colegi sau din diverse surse online este FERM DESCURAJATĂ!!