Proiecte POO

download Proiecte POO

of 7

description

programing

Transcript of Proiecte POO

  • Programare Orientat Obiect = Proiecte 2013-2014 =

    Formulare general:

    Realizarea unui proiect n care s fie implementat o ierarhie de clase ntr-o aplicaie consol. Vor putea fi create obiecte de tipurile specificate, printr-un mecanism de tip meniu care s permit specificarea tipului obiectului creat, cu parametrii specifici i, odat cu crearea, s se salveze coninutul lor ntr-un fiier. Suplimentar, n orice moment vor putea fi listate obiectele aflate n memorie. Scop general:

    Proiectul este conceput n scopul verificrii cunotinelor de programare dobndite i dezvoltrii capacitii individuale de a realiza o tem de complexitate medie. Proiectul se realizeaz individual. Scop specific:

    - nelegerea conceptelor de programare orientat obiect n special aspectele de derivare, polimorfism i lucru cu stream-uri;

    - implementare n limbaj C++ a unei ierarhii de clase, definirea i implementarea funcionalitilor necesare; scrierea unor programe cu o interfa n linie de comand cu un meniu de tip text (cu optiuni 1, 2, 3 );

    - deprinderea cu particularitatile lucrului n mediul de dezvoltare Visual C++ 6: lucrul cu proiecte, utilizare editor/compilator, depanarea aplicaiilor prin execuie pas cu pas, inspectarea variabilelor;

    - deprinderea cu utilizarea MSDN pentru regsirea informaiilor utile; Documentaie specific:

    - carte C/C++; recomandarea noastr H. Schildt, The complet reference C++, 3rd

    - Microsoft MSDN 6, 2CD sau web site;

    edition, ed. McGrow Hill, 1999, ISBN 0-07-882476-1;

    - lucrri de laborator la disciplinele PCLP 1 & 2 i POO, Fac. ETTI; Cerine: Proiectul se prezint att n format electronic, pe un CD-ROM sau memorie extern USB, eventual se poate veni cu laptop-ul propriu, ct i scris, ntr-o map coninnd:

    - tema de proiect; - scurta descriere a continutului proiectului i a fiierelor sursa; - continutul fiierelor sursa complet; - scurt descriere a programului de test; - programele de test realizate i mesajele afiate la consol.

    Notarea se face pe baza RULRII/TESTRII CODULUI PROIECTAT, apreciind

    soluia tehnic aleas, rezolvarea corect i complet a problemei, forma prezentarii scrise (claritate, corectitudine, argumentare), sustinerea oral a proiectului i capacitatea de a rspunde corect la ntrebri tehnice privitoare la proiect. Termen de predare i susinere: LA LABORATOR, N SPTAMNA a 14-a, N CONFORMITATE CU ORARUL. PREZENTAREA ULTERIOAR SE PENALIZEAZ CU 2 PUNCTE!

  • 1. Tema proiect nr. 1 S se defineasc adecvat o clas abstract cu numele Fruct, din care s se deriveze public clasele Mar i Para. Clasa Fruct va avea ca dat membru privat greutate (double), clasa Mar va avea data privat soi (ir), iar clasa Para va avea dat membru privat grosime_coaja (int). Tipul de date ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructor i o funcie care s permit scrierea unui mesaj de identificare a clasei intr-un fiier (cu nume constant). S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    2. Tema proiect nr. 2 S se defineasc adecvat o clas abstract cu numele Triunghi, din care s se deriveze public clasele Isoscel i Echilateral. Clasa Triunghi va avea ca date membru private Arie (int) i Perimetru (int), clasa Isoscel va avea data privat obligatorie unghi_baz (double), iar clasa Echilateral va avea dat membru privat raza_cerc_circumscris (double). In mod adecvat, pentru clasa de baz (dup caz) i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    3. Tema proiect nr. 3 S se defineasc adecvat o clas abstract cu numele Mobila, din care s se deriveze public clasele Bibiloteca i Birou. Clasa Mobila va avea ca dat membru privat producator (ir), clasa Bibiloteca va avea data privat nr_carti (int), iar clasa Birou va avea dat membru privat nr_sertare (int). Tipul de data ir va fi un tip utilizator (clas separat).

  • In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    4. Tema proiect nr. 4 S se defineasc adecvat o clas abstract cu numele Consumabil, din care s se deriveze public clasele Toner i Hartie. Clasa Consumabil va avea ca dat membru privat producator (ir), clasa Toner va avea data privat pret_cartus (int), iar clasa Hartie va avea date membru private pret_coala (int) i calitate (char). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    5. Tema proiect nr. 5 S se defineasc adecvat o clas abstract cu numele Tanar, din care s se deriveze public clasele Student i Sportiv. Clasa Tanar va avea ca date membru private scoli_absolvite (ir), clasa Student va avea data privat nume_institutie (ir), iar clasa Sportiv va avea dat membru privat nume_club (ir). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

  • 6. Tema proiect nr. 6 S se defineasc adecvat o clas abstract cu numele Carte, din care s se deriveze public clasele Proza i Versuri. Clasa Carte va avea ca date membru private nr_pagini (int) i autor (ir), clasa Proza va avea data privat nr_capitole , iar clasa Versuri va avea dat membru privat tip_rima (enum). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    7. Tema proiect nr. 7 S se defineasc adecvat o clas abstract cu numele Verificare, din care s se deriveze public clasele Grila i Proiect. Clasa Verificare va avea ca dat membru privat grad_dificultate (enum), clasa Grila va avea date private nr_intrebari (int) i timp in minute (int), iar clasa Proiect va avea dat membru privat titlu_proiect (ir). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    8. Tema proiect nr. 8 S se defineasc adecvat o clas abstract cu numele Animal_companie, din care s se deriveze public clasele Piica i Caine. Clasa Animal_companie va avea ca dat membru privat booleana de_rasa, clasa Piica va avea date membru private lungime_par (enum) i varsta (int), iar clasa Caine va avea dat membru privat rasa (ir). Tipul de data ir va fi un tip utilizator (clas separat).

  • In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    9. Tema proiect nr. 9 S se defineasc adecvat o clas abstract cu numele Telefonie, din care s se deriveze public clasele TelefonieClasica i TelefonieIP. Clasa Telefonie va avea ca dat membru privat furnizor (ir), clasa TelefonieClaica va avea dat membru privat latime_banda in Kb/s (int), iar clasa TelefonieIP va avea dat membru privat tip_transport (enum), de ex. TCP/IP, ADSL, HDSL, etc. Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    10. Tema proiect nr. 10 S se defineasc adecvat o clas abstract cu numele Functionar, din care s se deriveze public clasele Casier i Secretara. Clasa Functionar va avea ca dat membru privat un vector cu 3 atributii principale (ir), clasa Casier va avea dat membru privat valoare_lei (int), iar clasa Secretara va avea dat membru privat ora_audienta (int). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi

  • mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    11. Tema proiect nr. 11 S se defineasc adecvat o clas abstract cu numele Tablou, din care s se deriveze public clasele Vector i Matrice. Clasa Tablou va avea ca dat membru privat numele sau (ir), clasa Vector va avea dat membru privat nr_el (int), iar clasa Matrice va avea date membru private nr_lin i nr_col (int). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    12. Tema proiect nr. 12 S se defineasc adecvat o clas abstract cu numele Carte, din care s se deriveze public clasele Roman i Nuvela. Clasa Carte va avea ca date membru private editura (ir) i nr_pagini (int), clasa Roman va avea dat membru privat tip_roman (enum care cuprinde: AVENTURI, POLITIST, etc), iar clasa Nuvela va avea dat membru privat bibliografie_obligatorie (bool). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

  • 13. Tema proiect nr. 13 S se defineasc adecvat o clas abstract cu numele Mijloc_Transport, din care s se deriveze public clasele Tramvai i Maina. Clasa Mijloc_Transport va avea ca dat membru privat in_comun (bool), clasa Tramvai va avea dat membru privat nr_calatori, iar clasa Maina va avea dat membru privat cai_putere (int). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    14. Tema proiect nr. 14 S se defineasc adecvat o clas abstract cu numele Insecta, din care s se deriveze public clasele Future i Gandac. Clasa Insecta va avea ca dat membru private familia (ir), clasa Fluture va avea dat membru privat tzara_provenienta (ir), iar clasa Gandac va avea dat membru privat de_bucatarie (bool). Tipul de data ir va fi un tip utilizator (clas separat). In mod adecvat, pentru clasa de baz i clasele derivate se vor defini constructori, constructorul de copiere, supraincarcarea operatorilor de insertie i extractie, destructori. S se construiasc cele doua clase astfel nct s poat fi exploatat polimorfismul. Sa se scrie un program care s evidentieze comportamentul polimorfic, definind corespunztor un tablou cu elemente de tip adecvat, creat in funcie de opiunea utilizatorului. Sa se proiecteze i apeleze adecvat o funcie care are ca argument un obiect din ierahia de clase i, apeland la funcia de identificare, afieaz un mesaj privitor la clasa careia i aparine. Se va folosi mecanismul polimorfic astfel nct funcia s poat fi apelat pentru obiecte aparinnd ambelor clase.

    1. Tema proiect nr. 12. Tema proiect nr. 23. Tema proiect nr. 34. Tema proiect nr. 45. Tema proiect nr. 56. Tema proiect nr. 67. Tema proiect nr. 78. Tema proiect nr. 89. Tema proiect nr. 910. Tema proiect nr. 1011. Tema proiect nr. 1112. Tema proiect nr. 1213. Tema proiect nr. 1314. Tema proiect nr. 14