Sunteți pe pagina 1din 7

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++, 3
rd
- 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.

S-ar putea să vă placă și