Sunteți pe pagina 1din 22

Programare orientata pe obiecte - Proiecte

Anul universitar 2012 - 2013


1. Simulator automat bancar (1 persoana)
Un automat bancar poate accepta tranzactii bancare pentru o anumita banca,
posesoare a automatului. Interfata automatului trebuie sa permita principalele operatii
efectuate in timpul unei sesiuni de lucru:
 deschiderea unei sesiuni de lucru;
 inchiderea sesiunii de lucru;
 efectuarea principalelor tranzactii:
 extragerea unei sume de bani din contul curent;
 afisarea soldului curent;
 transferul unei sume de bani din contul curent intr-un alt cont al
clientului de la aceeasi banca.
Deschiderea unei sesiuni de lucru incepe prin introducerea unui card in automat si
verificarea validitatii informatiilor de pe card. Un card este emis de o anumita banca si este
asociat unui client al bancii si unui anumit cont al clientului deschis la banca respectiva. El
memoreaza informatiile aferente clientului:
 numele si prenumele clientului;
 pinul;
 codul contului asociat cardului.
Se va trata (permite) accesul concurect la baza de date a bancii, in sensul ca ATM-ul
va reprezenta un program care se va conecta la baza de date a bancii pentru a efectua
tranzactiile si se va permite conectarea simultana a mai multor ATM-uri la aceleasi date.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

2. Agentie de turism (1 persoana)


In cadrul unei agentii de turism, se cunosc urmatoarele informatii despre statiunile in
care se ofera sejururi:
 nume statiune;
 perioada de sejur, specificata prin data de nceput si sfrsit a sejurului;
Informatiile despre clienti sunt urmatoarele:
 nume si prenume;
 numar si serie carte de identitate;
 adresa;
 numar de telefon;
 perioada de sejur dorita;
 statiunea dorita
Operatii care trebuie efectuate sunt:
 introducere date;
 afisare statiuni sortate dupa nume;
 adaugare a unei noi statiuni cu perioadele aferente la data curenta;
 adaugare a unei noi perioade la o statiune;
 afisare statiuni care au bilete ntr-o anumita perioada sortate dupa
nume(lista);
 afisare perioade sejur pentru o anumita statiune sortate dupa ziua de
ncepere a perioadelor;
 afisare clienti care doresc aceeasi perioada ntr-o statiune;
 afisare clienti care doresc o statiune;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

3. Gestiune CD din biblioteca personala (1 persoana)


Se se dezvolte o aplicatie care tine evidenta cd-urilor unei persoane si tipareste tabele cu cd-
urile care satisfac anumite conditii sortate dupa diferite criterii. Informatiile care se cunosc
despre un cd sunt:
 identificator cd
 nume cd
 dimensiune cd (MB)
 viteza maxima de inscriptionare
 spatiu ocupat
 numarul de sesiuni
 tipul sesiunii
Aplicatia trebuie sa permita urmatoarele operatii:
 introducere date;
 afisare cd-uri sortate dupa nume;
 adaugare a unui nou cd;
 cautare cd dupa identificator cd;
 afisare cd-urilor care au spatiu liber mai mare decat o valoare data;
 ordonare cd-uri dupa dimensiune CD(MB);
 afisare cd-urilor ce au sesiuni deschise;
 clasarea cd-urilor dupa viteza de inscriptionare;
 clasarea cd-urilor dupa tip cd.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

4. Evidenta cartilor dintr-o biblioteca (1 persoana)


Sa se dezvolte o aplicatie care preia informatii despre cartile unei biblioteci si tipareste tabele
cu cartile care au o anumita caracteristica:
 scrise de un autor dat;
 caracterizate prin n cuvinte cheie;
 aparute ntre doi ani dati;
 apartin unui anumit domeniu;
 aparute la o anumita editura.
Aplicatia trebuie sa permita introducerea de noi carti, actualizarea cartilor.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

5. Analiza program C++ (1 persoana)


Sa se analizeze un fisier text ce contine un program sursa C++, pentru a obtine ca rezultate:
 numarul functiilor si lungimea lor;
 numarul liniilor de instructiuni;
 numarul de linii ce contin comentarii;
 numarul de linii goale;
 numarul identificatorilor si lungimea lor medie;
 numarul total de linii, caractere.
Se vor folosi ca structuri de date pentru memorarea informatiilor extrase, liste dublu
inlantuite .
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

6. Administrator asociatie de proprietari (1 persoana)


Se cunosc informatii despre persoanele ce apartin de o anumita asociatie de proprietari si
despre apartamentele in care locuiesc acestia. Se cere implementarea unui program care asista
administratorul asociatiei pentru repartizarea cheltuielilor lunare pe blocuri, scari de bloc,
respectiv apartamente si alte situatii curente(de exemplu consumul mediu de apa rece per
persoana).
Operatii care se pot efectua sunt urmatoarele:
 introducere date;
 afisare locatarilor sortati dupa nume;
 adaugare a unui nou locatar;
 cautare dupa numele unei persoane;
 afisare apartamentelor in care locuiesc mai mult de 5 persoane;
 afisarea tabelelor cu intretinerile pentru o anumita luna;
 afisare apartamentelor ce au restanta la plata intretinerii mai mare ca o suma
data;
 clasarea locatarilor in rai platnici, respectiv buni platnici.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

7. Cautare biblioteca electronica (1 persoana)


O biblioteca electronica contine mai multe lucrari fiecare nsemnand un fisier text, biblioteca
fiind precizata printr-un catalog ce contine numele acestor fisiere. Dandu-se n cuvinte cheie
(1 < n < 20);extrageti intr-un nou fisier toate lucrarile care:
 contin n textul lor cel putin un cuvnt cheie dintre cele n cuvinte precizate;
 contin toate cele n cuvinte cheie.
De asemenea, depuneti intr-un fisier toate propozitiile unui fisier care contin un anumit
cuvnt w.
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

8. Salariati universitate (1 persoana)


Se cunosc informatii complete despre salariatii universitatii. Sa se implementeze o aplicatie
care sa poata furniza mai multe situatii:
 generarea fluturasilor cu venitul lunar;
 tabel cu salariatii ce au un salariu mai mic decat 4 milioane lei;
 tabel cu persoanele ce au implinit sau implinesc varsta pensionarii n anul
curent;
 tabel cu persoanele ce au de achitat rate lunare si suma totala;
 tabel cu cadrele didactice de la facultatea de automatica-calculatoare;
 tabel cu persoanele ce au plecat de la universitate in ultimii 5 ani.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

9. Depozit materiale (1 persoana)


Fisierul binar depozit.dat contine informatii despre materialele existente ntr-un depozit. Sa
se dezvolte un program care furnizeaza urmatoarele situatii:
 inventar complet;
 tabel cu materialele a caror cantitate este cel mult 4;
 tabel cu materialele epuizate;
 tabel cu materialele foarte scumpe (pretUnitar>10000).
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

10. Manager pentru un proiect informatic (2 persoane)


Un proiect informatic este caracterizat de o mulime de resurse umane alocate si o
mulime de faze. Un astfel de proiect este dezvoltat de o echipa( mulimea de resurse umane).
Membrii echipei trebuie sa conlucreze pentru mersul nainte al aplicaiei.
Sa se implementeze o aplicaie care sa asigure legarea tuturor surselor unui proiect
informatic, surse scrise de diferite persoane, cu verificarea corectitudinii numelor claselor si a
variabilelor folosite( in acelai proiect nu pot exista doua clase sau variabile cu acelai nume).
Presupunem ca sursele pot fi scrise doar in C++ si utilizeaza namespace-urile. O alta cerina
este de a asigura calitatea codului scris din punct de vedere al numrului de comentarii(la 3
linii de cod trebuie sa existe cel puin o linie de comentarii). Totodat se va scrie si un fiier
al proiectului rezultat (exemplu .dsp/.dsw pentru C++).
Se vor stoca diferite variante ale proiectului, corespunztoare tuturor fazelor.
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.
11. Admitere facultate (1 persoana)
Pentru fiecare concurent care se prezinta la admitere se cunosc urmatoarele informatii:
 nume;
 pentru fiecare din cele doua probe,trei note ale celor trei corectori;
Sa se implementeze urmatoarele operatii:
 sortare concurenti dupa nume;
 calcul nota la fiecare proba;
 sortare concurenti dupa medie;
 separarea n 2 liste (admisi, respinsi);
 calcul medie;
 determinarea numarului de studenti admisi si respinsi;
 rezolvarea contestatiilor:
- modificarea notelor la candidatii carora li s-au rezolvat contestatiile;
- trecerea studentilor cu o medie mai mare sau egala cu cea a ultimului admis
n
lista cu studentii admisi pe pozitia corespunzatoare;
- schimbarea pozitiei fiecarui student admis, caruia dupa contestatie i s-a
modificat media.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

12. Pacientii unui medic de familie (1 persoana)


Cunoscndu-se informatii despre pacientii unui medic, despre bolile diagnosticate de catre
acesta si medicamentele prescrise, sa se scrie un program care va ajuta medicul n
desfasurarea activitatii sale. Operatii cerute:
 introducerea unui nou pacient;
 afisarea tuturor pacientilor;
 clasarea pacientilor in pacientii varstnici, respectiv tineri;
 determinarea numarului de pacienti care sufera de o anumita boala;
 afisarea pacientilor carora li s-a prescris acelasi tratament;
 afisarea pacientilor cu un numar de retete/luna mai mare decat un numar dat;
 determinarea numarului de medicamente prescrise de un anumit tip dat;
 determinarea pacientilor care lucreaza intr-o anumit domeniu (ex.
inavatamant);
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

13. Factura pentru plata curent electric (1 persoana)


Se cunosc informatii despre abonatii la curent electric si consumul lunar;sa se dezvolte un
program
pentru evidenta, facturarea si alte situatii utile.
Sa se implementeze operatiile:
 introducerea unui nou abonat;
 actualizare abonati;
 afisarea tuturor abonatilor;
 clasarea abonatilor in abonatii restantieri, respectiv nerestantieri;
 afisarea facturii unei persoane care locuieste la o adresa data;
 afisarea abonatilor care au de paltit o suma mai mare decat o suma data;
 gruparea abonatilor dupa tipul de abonament avut;
 determinarea costului kw;
 generare factura pentru un abonat dat.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

14. Evaluare studenti (1 persoana)


Se cunosc informatii despre studentii unui an de studiu si notele acestora la sfarsitul unui an
de studiu. Sa se scrie o aplicatie care asista secretariatul decanatului in evidenta si activitatea
sa:
 afisarea tuturor studentilor;
 clasarea studentilor absolventi, respectiv repetentii;
 determinarea numarului de studenti care au media mai mare daca o medie
data;
 ordonarea studentilor dupa medie;
 afisarea studentilor bursieri;
 clasarea studentilor dupa numarul de restante;
 ordonarea studentilor dupa nota de la o anumita materie.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

15. Gestiunea unei firme de distributie telviziune prin cablu (2 persoane)


Se considera o firma de televiziune prin cablu care ofera un numar N de posturi.
Fiecare canal de televiziune are o anumita frecventa pe care este receptionat, anumite zile ale
saptamanii alocate unei eventuale revizii, un program pentru fiecare zi a saptamanii, fiecare
emisiune din cadrul programului fiind caracterizata prin :
 genul emisiunii (de exemplu divertisment, cultural etc.) ;
 publicul inta (tinerii sub 18 ani de exemplu) ;
 ora difuzrii ;
 durata ;
 tipul emisiunii (live sau nregistrata).
Sa se realizeze o aplicatie care studiaza programul fiecarui canal in parte si determina in
cadrul unei saptamanii de emisie:
 tipul acestui (de exemplu cultural daca majoritatea emisiunilor au un astfel de
caracter) ;
 durata medie a emisiunilor ;
 numarul de emisiuni live, respectiv numarul de emisiuni inregistrate ;
 publicul tinta al respectivului post de televiziune ;
 determinarea orei preponderente pentru un anumit gen de emisiune.
Pe baza acestui studiu realizat la nivelul fiecarui post de televiziune, aplicatia va
genera o situatie globala privind tipul celor N canale difuzate de respective firma de cablu,
acoperirea publicului privit prin perspectiva publicului declarat ca tinta.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

16. Agenda personala (1 persoana)


Se cere un program care asista o persoana n memorarea unor informatii despre persoanele
cunoscute si activitatile zilnice si semnalarea zilnica a acestor activitati si a unor statistici
periodice. Program de gestiune a evenimentelor personale (intalniri, discutii, sedinte,
onomastici, date limita pentru diverse actiuni). Programul va permite inregistrarea datei si
orei unui anumit eveniment care va avea loc in viitor, cat si a unei descrieri a sa. La cererea
utilizatorului, acesta va fi informat de evenimentele care sunt planficate in ziua curenta sau in
saptamana curenta. Utilizatorul are posibilitatea de a actualiza sau sterge un anumit
eveniment. Evenimentele trecute sunt salvate intr-un fisier istoric.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

17. Joc de puzzle (1 persoana)


Sa se realizeze un program pentru jocul puzzle.
Descrierea jocului: Intr-o matrice de NxN celule (unde N = 2k+1) sint asezate
aleator numerele 1, 2, ..., (N*N-1). Una din celulele matricii nu va contine nici un numar.
Aceasta se va considera ca fiind nemarcata. Asupra acestei structuri (matrici) nu se poate
realiza decit o operatie de interschimbare intre celula nemarcata si una din celulele sale
vecine (definim relatia de vecinatate in mod uzual: doua celule sunt vecine daca au o latura
comuna). Sa se gaseasca un algoritm de ordonare a celulelor din matrice in ordinea
crescatoare a numarului memorat prin interschimbari repetate. Sa se simuleze mutarile
realizate. Aplicatia trebuie sa permita salvarea/restaurarea a unei anumite stari a jocului.
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

18. Evidenta autovehicule (1 persoana)


Sa se realizeze un proiect pentru evidenta autovehiculelor inmatriculate in circulatie. Pentru
fiecare autoturism se considera urmatoarele informatii:
 tipul autovehiculului;
 marca;
 datele tehnice (cilindree, etc.);
 alte caracteristici (culoare, etc.);
 numarul de inmatriculare;
 data inmatricularii;
 proprietarul;
 data ultimei revizii tehnice;
Operatii cerute:
 actualizare autoturisme;
 inmatricularea unui nou autoturism;
 modificare caracteristici autoturism inmatriculat;
 cautare autoturism dupa numarul de inmatriculare;
 cautare autoturism dupa nume proprietar;
 revizie autoturism;
 radiere autoturism;
 afisarea autoturismelor inmatriculate dupa o anumita data;
 afisarea autoturismelor a caror ultima revizie este inainte de o anumita data
introdusa de la tastatura;
 sortarea autoturismelor dupa tipul autovehiculului;
 alocarea unui numar de inmatriculare astfel incat sa nu avem doua autoturisme
cu numere identice;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

19. Evidenta angajati (1 persoana)


Se cere realizarea unui program pentru evidenta angajatilor unei institutii: numele
angajatului, datele personale, data angajarii, postul ocupat, si calculul salariului pe baza
informatiilor despre salarizare:
 salariul de baza;
 sporul de vechime (in functie de vechimea in munca) si sporurile de periculozitate, de
stress, s.a. (anumite procente din salariul de baza);
 salariul brut (salariul de baza plus sporurile);
 impozitul (trepte de impozitare);
 contributia pentru asigurarile de sanatate, cea pentru ajutor somaj si cea pentru fondul
de pensii (anumite procente din salariul brut), cotizatia la sindicat, etc.;
 salariul net (calculat scazind din salariul brut impozitul si celelalte contributii).
Programul va permite efectuarea de operatii de actualizare a acestor date: noi angajari,
concedieri, mariri/micsorari de salarii, modificarea procentelor pentru diversele
sporuri si contributii, precum si bilanturi totale de sfirsit de luna: total salarii brut/net,
total impozite, etc.
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

20. Curse aeriene (1 persoana)


Se cere realizarea unui proiect pentru o firma care face rezervari de locuri pentru curse
aeriene.
Pentru fiecare rezervare se considera informatiile:
 numele persoanei ce face rezervarea;
 locul decolarii;
 data rezervarii;
 destinatia;
 posibile escale;
 numele firmei aeriene la care se face rezervarea;
 pretul biletului;
 tipul de bilet (dus-intors sau numai dus);
 clasa la care se face rezervarea (locuri la clasa I si cea turist);
Sa se implementeze urmatoarele operatii:
 actualizare rezervari;
 cautarea dupa un anumit client ce are rezervare;
 modificare rezervare pentru un anumit client;
 alcatuirii unui itinerar (schimbare de avion pentru a ajunge la destinatia
dorita);
 afisarea tuturor rezervarilor la o anumita companie aeriana;
 afisarea tuturor rezervarilor la o anumita cursa (cursa se va specifica prin locul
de plecare si data);
 afisarea tuturor rezervarilor pe numele unei anumite persoane;
 stergerea unei anumite rezervarii identificata prin numele persoanei si prin
data rezervarii;
 posibilitatea alcatuirii unui traseu (schimbare de avion pentru a ajunge la
destinatia dorita), curse aeriene cu avioane apartinind la firme aeriene diferite,
si cu preturi diferite.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

21. HTML tool (2 persoane)


Se cere realizarea unui program care, primind la intrare numele unui fisier html, va parcurge
acest fisier si toate fisierele referite de acesta (pina la nivelul specificat), executand
urmatoarele operatii pentru fiecare fisier html:
 identificarea referintelor din acel fisier, atit interne (imagini inline, imagini
background, foi de stiluri CSS, taguri A NAME), cit si externe (taguri A
HREF) si a URL-ului relativ/absolut a acestor referinte, si salvarea acestor
informatii intr-un log;
 verificarea existentei fisierelor specificate ca referinte (vezi pct. anterior) si
raportarea "dead link-urilor" (aceasta, evident doar pentru referintele locale,
nu pentru cele care refera alte site-uri pe Internet);
 conversia URL-urilor absolute in URL-uri relative pentru toate referintele din
fisierele html, in cazul cind se solicita conversia printr-o optiune data la
intrarea programului;
 identificarea prezentei scripturilor (JavaScript, VBScript) in fisierele html, si
salvarea acestor informatii intr-un log, in cazul cind se solicita aceasta operatie
printr-o optiune data la intrarea programului.
Programul trebuie proiectat astfel incit sa permita adaugarea ulterioara a unor noi tipuri de
referinte, precum si a unor operatii noi in genul celor de mai sus (adica, care implica
parcurgerea ierarhiei de fisiere si executia unei anumite operatii pe fisierele html).
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.
22. Browser pe surse C++ (2 persoane)
Se cere realizarea unui program care, primind la intrare o lista de fisiere C++, este capabil sa
genereze intr-o maniera lizibila un arbore continind ierarhia claselor definite in fisierele de la
intrare. Acest arbore va putea fi salvat intr-un fisier ca documentatie pentru a fi folosit
ulterior; formatul utilizat pentru salvare trebuie sa pastreze lizibilitatea arborelui (se
recomanda salvarea in format HTML/XML). De asemenea, programul va permite
utilizatorului introducerea de la tastatura a unui nume de clasa, sau alegerea unei clase din
arborele ierarhiei prin parcurgerea acestuia, si, in cazul in care clasa are definitie in unul din
fisierele de la intrare, va afisa definitia clasei cu informatii despre fisierul si linia in fisier la
care se gaseste aceasta. Analog, pentru definitia clasei, se va permite interactiv parcurgerea
metodelor si afisarea definitiei metodei selectate.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

23. Identarea surselor C/C++ (1 persoana)


Se cere construirea unui program care primind la intrare un fisier sursa C sau C++ genereaza
un fisier sursa identat. Se presupune ca fisierul este corect sintactic. De exemplu, daca fisierul
de la intrare are urmatorul continut:
class C : public F { public:
C(int x ):F( x, 100) { }
C func(double* = 0); };
C C::func( double*x) { if (x)
{}
}
fisierul de la iesire va contine:
class C : public F
{
public:
C(int x) : F(x, 100)
{
}
C func(double* = 0);
};

C C::func(double* x)
{
if (x)
{
}
}
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.
24. Tipuri abstracte de date persistente (1 persoana)
Se cere implementarea urmatoarelor structuri de date: tablouri cu alocare dinamica, liste
simplu si dublu inlantuite, stive si cozi. Implementarea va contine nu numai operatiile uzuale
de adaugare, inserare, stergere etc. a elementelor,specifice pentru fiecare structura de date,
dar si operatii de scriere a elementelor in fisiere binare si de citire a lor din fisiere (cu alte
cuvinte, obiectele vor fi persistente).
Obs.:este indicata folosirea template-urilor pentru tipul elementelor.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

25. Evidenta locuri cazare (1 persoana)


Sa se realizeze un program care sa puna in evidenta administrarea locurilor intr-un hotel.
Despre un hotel se cunosc urmatoarele informatii:
 numarul de camere;
 pentru fiecare camera numarul de paturi;
 numarul de apartamente;
 numele persoanei care locuieste intr-o anumita camera sau are rezervare;
 perioada pe care este ocupata o camera;
Operatii cerute:
 inchiriere -> introducere de noi date;
 modificare -> modificarea datelor din fisier pentru o anumita camera;
 stergere -> stergerea unei inregistrari datorata eliberarii unei camere;
 listare -> afisarea datelor existente;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

26. Campionat de fotbal (1 persoana)


Sa se dezvolte o aplicatie care sa simuleze desfasurarea unui campionat de fotbal. Se cunosc
urmatoarele informatii:
 numele campionatului;
 numarul de echipe inscrise in campionat;
 numarul de etape jucate;
Pentru fiecare echipa inscrisa se cunosc:
 numele echipei;
 numele antrenorului;
 numele jucatorilor;
 valoarea fiecarui jucator;
 numar de jocuri sustinute;
 numar de victorii;
 numar de infrangerii;
 numar de goluri primite;
 numar de goluri inscrise;
Operatii:
 adaugarea unui nou jucator;
 stergerea unui jucator;
 schimbarea valorii unui anumit jucator;
 afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de
numarul de puncte;
 determinarea locului ocupat de o anumita echipa;
 realizarea unui clasament luand in calcul valorile intrinseci ale jucatorilor
echipelor;
 compararea intre clasamentul determinat la punctul anterior si cel real, si
generarea unui raport;
 determinarea echipelor ce au primit un numar de goluri mai mare decat un
intreg pozitiv introdus de la tastatura;
 determinarea echipelor ce au marcat un numar de goluri mai mare decat un
intreg pozitiv introdus de la tastatura;
 determinarea echipelor ce au un numar de puncte mai mic decat un intreg
pozitiv introdus de la tastatura;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

27. Oficiul starii civile (1 persoana)


Se considera cunoscute urmatoarele informatii din arhiva seviciului de stare civila a primariei
unei localitati:
despre nasteri:
 nume si prenume mama;
 nume si prenume tata;
 nume si prenume copil;
 data nasterii;
despre casatorii:
 nume si prenume sot;
 nume si prenume sotie;
 data casatoriei;
despre divorturi:
 nume si prenume sot;
 nume si prenume sotie;
 data divortului.
Se presupune ca n cazul casatoriilor si al divorturilor, sotii nu si modifica numele avute
nainte, iar in cazul nasterilor, copii vor primi numele tatalui.
Sa se scrie un program care sa permita introducerea datelor persoanelor, memorarea lor pe un
suport persistent si care sa poata raspunde la urmatoarele ntrebari:
 starea civila a unei anumite persoane la o anumita data;
 descendentii unei persoane specificate;
 daca ntre doua persoane specificate exista un grad de rudenie, iar n caz
afirmativ, care este acela(se vor considera doar urma toarele grade de rudenie:
parinte, fiu, frate, bunic, nepot, var primar, cumnat, frate vitreg,parinte vitreg);
 construirea arborelui genealogic pentru o anumit persoana.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

28. Mos Craciun modern (1 persoana)


Sa se dezvolte o aplicatie care va asista un mos Craciun modern la distribuirea cadourilor
pentru fiecare copil din oras. Pentru fiecare copil se cunosc urmatoarele informatii: nume,
prenume, varsta, adresa, grad de cumintenie, lista de jucarii dorite.Se cunosc de asemenea
informatii despre cadourile din sacul mosului: nume cadou, numar bucati, varsta minima
necesara pentru a putea folosi jucaria.
Operatii ce vor fi implementate:
 sa se realizeze operatia de "golire a sacului de cadouri";se vor respecta pe cat
posibil dorintele copiilor in functie de gradul de cumintenie;
 sa se afiseze toti copiii sub o anumita varsta;
 sa se afiseze toti copiii care locuiesc pe o anumita strada;
 sa se determine toti copii nemultumiti;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

29. Agent imobiliar (1 persoana)


Sa se dezvolte o aplicatie pentru o agentie imobiliara. Agentia poate sa fie intermediara in
cazul unei tranzactii, pentru aceasta percepand un anumit comision in procente din nivelul
tranzactiei sau poate cumpara ea insasi un imobil sau un teren in scopul revalorificarii.
Tranzactia poate fi realizata intre doua persoane juridice si atunci comisionul creste cu 10%,
intre doua persoane fizice sau intre o persoana fizica si una juridica. Prin tranzactie intelegem
o operatiune de vanzare-cumparare sau de nchiriere. Totodata agentia imobiliara poate
realiza pentru un client atat o operatie de vanzare, cat si una de cumparare in acelasi timp (de
exemplu daca clientul doreste un up-grade al casei) ; in acest caz clientul beneficiaza de o
reducere de 30%.
Pentru clientii fideli (cei care au mai apelat cel putin odata la serviciile agentii) se face o
reducere de 50%. Programul va mai permite introducerea de cereri/oferte (de exemplu
vanzarea sau inchirierea unui apartament cu un anumit numar de camere si aflat intr-o
anumita zona). Pentru cereri se da un pret maxim si pentru oferte se da un pret minim. O alta
cerinta este mperecherea cererilor si ofertelor.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

30. Cautare in cartea de telefon (1 persoana)


Despre abonatii telefonici se cunosc urmatoarele informatii:
 nume abonat;
 numar telefon;
 adresa (strada, bloc,...).
Se cere realizarea urmatoarelor operatii:
 creare;
 listare;
 modificare;
 stergere;
 gasirea unui numelui unui abonat dupa telefon si invers.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

31. Vizita la gradina zoologica (1 persoana)


Sa se scrie o aplicatie care sa simuleze organizarea unei gradini zoologice. O gradina
zoologica poate fi asimilata cu o matrice de "custi" in care pot fi introduse urmatoarele
animale (fiecare cu caracteristicile respective):
 leu : nume, data aducerii, hrana preferata (trei tipuri), cantitate de hrana pe
zi, temperatura minima suportata, tara de provenienta;
 iepure: nume, data aducerii, hrana preferata, cantitate pe zi, suprafata minima
pe care poate trai;
 vulpe: nume, data aducerii, hrana preferata, cantitate pe zi, temperatura
maxima de trai, tip (polara, indigena);
 sarpe: nume, data aducerii, hrana preferata, cantitate pe zi, lungime,
temperatura minima suportata
Fiecare animal se "manifesta" in mod specific. Se implementeaza urmatoarele operatii:
 popularea gradinii prin aducere animal la gradina zoologica, dar fara a se
introduce in custi (se pastreaza intr-o "lista" de asteptare);
 alocarea unei anumite custi pentru un animal;
 scoatere animal din cusca;
 determinarea numarului de animale din fiecare categorie
(leu,iepure,vulpe,sarpe);
 "vizitare" gradina zoologica prin afisarea animalelor din fiecare cusca;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

32. Evidenta furnizori societate comerciala (1 persoana)


Despre un furnizor al unei societati comerciale se cunosc urmatoarele informatii:
 denumire furnizor; cod fiscal;
 lista produselor oferite de acel furnizor;
 adresa furnizorului;
 persoana de contact;
 telefon;
Operatii cerute:
 actualizare lista furnizorii;
 adaugarea unui nou furnizor;
 stergere furnizor dupa denumire;
 cautare furnizor dupa cod fiscal;
 adaugare produs sau produse oferite de un anumit furnizor;
 stergere produs sau produse oferite de un anumit furnizor;
 sortare furnizori dupa denumire;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

33. Calculator analitic (2 persoane)


Se doreste realizarea unui calculator analitic, care poate efectua operatia de derivare analitica
a functiilor de o singura variabila. Se considera faptul ca expresia analitica a unei functii
poate contine paranteze, ca operanzi doar variabile x si constante (intregi sau reale), iar ca
operatori:
 Operatiile aritmetice uzuale: +, -, *, / si ** (ridicare la patrat);
 Urmatoarele functii algebrice elementare: sin, cos, ln, exp (functia exponentiala);
De exemplu, pentru functia:
f(x) = 2*x+x*(x+1)+ ln(x**2)
derivata ei este:
f(x) = 2+x+1+x+2*x/(x**2)
Operatii cerute:
 citirea expresiei functiei dintr-un fisier text;
 derivarea analitica si afisarea (sub forma de text) a expresiei derivate;
 calculul si afisarea valorii functiei initiale intr-un punct dat;
 calculul si afisarea functiei derivate in acelasi punct;
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

34. Obiecte muzicale (2 persoane)


Se doreste realizarea unei aplicatii, care sa permita, atat specificarea unei partituri muzicale,
cat si interpretarea ei. O partitura muzicala se specifica folosind urmatoarele notatii:
obiect_muzical = nota
| pauza
| obiect_muzical :+: obiect_muzical
| obiect_muzical :=: obiect_muzical
Unde:
 Nota este o pereche formata din inatltimea notei (un intreg) si durata sa (un real);
 Pauza are doar o durata (un real)
 Operatorul :+: inseamna ca cele doua secvente (de note si pauze) se canta simultan;
 Operatorul :=: inseamna ca cele doua secvente se canta secvential (una dupa alta)
Aplicatia trebuie sa permita citirea unei partituri muzicale, dintr-un fisier text si trebuie sa
genereze o secventa de evenimente muzicale spre un player MIDI, fiecare eveniment muzical
specificand o inaltime a notei care se canta, volumul ei (in cazul in care sunt mai multe note
cantate simultan), precum si durata.
Operatii cerute:
 citirea partiturii dintr-un fisier text;
 generarea secventei de evenimente muzicale pe ecran;
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

35. Garbage Collector (3 persoane)


Se considera un limbaj simplu, in care exista doar doua clase predefinite, Int si Real (ca in
Java), alocate pe 4, respectiv 8 octeti, precum si:
 Declaratii de obiecte, de forma:
Int a, b;
Real x;
 Doar instructiunile de atribuire (de exemplu x = y), precum si de return (de exemplu
return x;)
 Definirea unor functii, asemanatoare limbajului C, la care pasarea parametrilor se face
prin valoare, iar returnarea valorii in functia apelanta, se face tot prin valoare. In plus,
exista o singura functie main, fara parametri si fara valoare de intoarcere.
Se cere sa se realizeze operatie de garbage collection, in sensul urmator:
 La declararea unui obiect, i se aloca memorie, dintr-o zona de memorie aferenta
alocarii dinamice, de o dimensiune corespunzatoare si la o adresa libera; contorul de
referinte al obiectului se initializeaza la 1;
 La fiecare operatie de atribuire, se incrementeaza contorul de referinte al obiectului
respectiv. Acelasi lucru se intampla, la pasarea parametrilor actuali in functii, precum
si la intructiunea return;
 De fiecare data cand de termina corpul functiei in care exista o declaratie a unui
obiect, se decrementeaza contorul de referinte.
 Cand contorul de referinte a unui obiect a ajuns la 0, se elibereaza zona respectiva de
memorie.
Operatii cerute
 citirea programului dintr-un fisier text;
 afisarea pe ecran a tuturor modificarilor contoarelor de referinte, specificand
linia din program care este responsabila de respectiva modificare, precum si
adresa zonei de memorie si numarul de referinte active, sau specificarea zonei
de memorie in cazul in care un obiect nu mai este activ;
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

36. Simulator de intersectie (2 persoane)


Se doreste simularea unei intersectii cu sens giratoriu, aflata la intersectia perpendiculaara a
doua strazi cu doua sensuri si cu doua benzi pe sens. Pentru aceasta, se adauga la cate un
interval de timp aleator, intre 10 si 30 de secunde, cate o masina, in mod aleator, pe un sens,
spre intersectie. Masina care intra in sensul giratoriu va iesi pe un alt sens, tot aleator,
ocupand sensul giratoriu k*10 secunde (k este intre 1 si 4 si reprezinta sensul de iesire din
giratoriu. Altfel spus, unei masini ii trebuie 10 secunde sa parcurga un arc de cer de 90 din
sensul giratoriu. Simularea se presupune ca se face la intervale de tim de o secunda.
Operatii cerute:
 citirea intervalului de timp in care se face simularea;
 citirea dintr-un fisier text a configuratiei initiale a intersectiei;
 la pornirea simularii, afisarea la fiecare secunda a masinilor care asteapta pe
fiecare sens si a masinilor care sunt in sensul giratorie;
Cerinte de implementare:
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

37. Cadouri de la Mos Nicolae (1 persoana)


Sa se dezvolte o aplicatie care il va asista pe mos Nicolae la realizarea unui recesamant al
copiilor cuminti. Pentru fiecare copil se cunosc urmatoarele informatii: nume, prenume,
adresa si lista de persoane de la care se pot obtine caracterizari pentru copii (parinti, bunici,
educatoare, invatatoare, vecini si prieteni). Pentru fiecare dintre aceste persoane se cunoaste
tipul de legatura dintre persoana si copilul pentru care realizeaza caracterizarea.
Caracterizarea se realiza prin atribuirea de calificative pentru urmatoarele tipuri de activitati:
petrecerea timpului in familie, comportamentul la locul de joaca, realizarile la invatatura,
comportamentul fata de oamenii din comunitate. Fiecare dintre aceste calificative vor avea
ponderi diferite in functie de persoana care realizeaza caracterizarea.
Operatii ce vor fi implementate:
 sa se realizeze operatia de achizitie a calificativelor;
 sa se afiseze toti copiii a caror caracterizare nu este buna (copii care nu au fost
cuminti);
 sa se afiseze toti copiii care locuiesc pe o anumita strada;
 sa se determine toti copiii care au fost cuminti;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

38. Gestiunea parcului de masini si a curselor pentru o firma de distributie (1 persoana)


Sa se realizeze un proiect pentru gestiunea parcului de masini si a curselor pentru o firma de
distributie. Pentru fiecare autovehicul se cunosc urmatoarele informatii:
 tipul autovehiculului;
 numarul de inmatriculare;
 numarul de kilometri parcursi;
 numele soferului/soferilor;
Pentru fiecare cursa realizata se cunosc informatiile care se refera la masina cu care
aceasta cursa a fost sau va fi realizata, cantitatea de combustibil consumata si traseul
corespunzator cursei.
Operatii cerute:
 alocarea masinilor astfel incat sa se realizeze in mod optim toate cursele;
 realizarea unei revizii pentru fiecare masina dupa parcurgerea unui numar de
kilometri;
 modificare treaseului pentru fiecare cursa astfel incat sa se minimize numarul
de curse;
 cautare autoturism dupa numarul de inmatriculare;
 cautare autoturism dupa numele soferului;
 afisarea autoturismelor cu un numar de kilometri mai mare decat o valoare
specificata;
 sortarea autoturismelor dupa tipul autovehiculului;
 alocarea soferilor astfel incat sa nu avem doua autoturisme cu acelasi sofer;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

39. Administrator cladire de birouri (1 persoana)


Se cunosc informatii despre firmele care au inchiriate birourile din cadrul unei cladiri de
birouri si despre tipul de contracte existente intre aceste firme si proprietarul cladirii. Se cere
implementarea unui program care asista administratorul cladirii pentru repartizarea
cheltuielilor lunare pentru fiecare firma in functie de suprafata biroului ocupat de fiecare
firma si in functie de numarul de angajati ai acesteia.
Operatii care se pot efectua sunt urmatoarele:
 introducerea datelor;
 afisare firmelor sortate dupa nume;
 semnarea unei nou contract;
 rezilierea unui contract existent;
 afisare firmelor care au mai mult de 5 angajati;
 afisarea tabelelor cu cheltuielile pentru o anumita luna;
 afisare firmelor ce au restanta la plata cheltuielilor mai mare ca o suma data;
 clasarea firmelor in rau platnice, respectiv buni platnici.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

40. Gestiunea livrarilor la domiciliu pentru un depozit materiale (1 persoana)


Fisierul binar comenzi.dat contine informatii despre comenzile realizate pentru un depozit
de materiale de constructie. Sa se dezvolte un program care sa permita livrarile la domiciliu a
materialelor comandate:
 alocarea masinilor astfel incat sa se realizeze in mod optim toate livrarile;
 modificare treaseului pentru fiecare cursa astfel incat sa se minimize numarul
de curse necesare pentru a livra toate materialele;
 cautare unei comenzi dupa adresa de livrare;
 cautare unui material in cadrul tuturor comenzilor;
 afisarea comenzilor a caror valoare este mai mare decat o valoare specificata;
 sortarea comenzilor dupa valoarea acestora;
 realizarea cu prioritate a livrarilor catre clientii fideli;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

41. Gestiunea unui spital din Romania (2 persoane)


Cunoscndu-se informatii despre pacientii unui spital, despre sectiile spitalului, personalul
acestuia (medici, asistenti si personal auxiliar), sa se scrie un program care va ajuta un
manager sa gestioneze din punct de vedere medical si financiar resursele spitalului. Se vor
implementa urmatoarele module:
 modul de administrare
 modul pacient
 modul staionar
 modulul pentru tratarea ambulatorie a pacientilor
 modul de facturare
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

42. Campionate de handbal (1 persoana)


Sa se dezvolte o aplicatie care sa gestioneze desfasurarea tuturor campionatelor de handbal
din Romania (masculin, feminin, seniori si juniori Liga Nationala si Divizia A). Pentru
informatii suplimentare puteti consulta site-ul Federatiei Romane de Handbal
(http://www.frh.ro/frh/). Pentru fiecare campionat se cunosc urmatoarele informatii:
 numele campionatului;
 numarul de echipe inscrise in campionat;
 numarul de etape jucate;
Pentru fiecare echipa inscrisa se cunosc:
 numele echipei;
 valoarea estimata a echipei;
 numar de victorii, de egaluri si de infrangerii;
Operatii:
 adaugarea unui nou campionat;
 retrogradarea unei echipe;
 promovarea unei echipe;
 afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de
numarul de puncte;
 determinarea locului ocupat de o anumita echipa;
 realizarea unui clasament luand in calcul valorile estimate ale echipelor;
 compararea intre clasamentul determinat la punctul anterior si cel real, si
generarea unui raport;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

43. Campionate de baschet (1 persoana)


Sa se dezvolte o aplicatie care sa gestioneze desfasurarea tuturor campionatelor de baschet
din Romania (masculin, feminin, seniori si juniori Liga Nationala de Baschet (LNB) si Liga
I). Pentru informatii suplimentare puteti consulta site-ul Federatiei Romane de Baschet
(http://www.frbaschet.ro/). Pentru fiecare campionat se cunosc urmatoarele informatii:
 numele campionatului;
 numarul de echipe inscrise in campionat;
 numarul de etape jucate;
Pentru fiecare echipa inscrisa se cunosc:
 numele echipei;
 valoarea estimata a echipei;
 numar de victorii, de egaluri si de infrangerii;
Operatii:
 adaugarea unui nou campionat;
 retrogradarea unei echipe;
 promovarea unei echipe;
 afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de
numarul de puncte;
 determinarea locului ocupat de o anumita echipa;
 realizarea unui clasament luand in calcul valorile estimate ale echipelor;
 compararea intre clasamentul determinat la punctul anterior si cel real, si
generarea unui raport;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

44. Campionatul de hochei (1 persoana)


Sa se dezvolte o aplicatie care sa simuleze desfasurarea campionatului de hochei din
Romania. Se va lua in considerare modul specific de organizare a campionatului de hochei cu
sezon regulat si modul de determinare a campioanei. Pentru informatii suplimentare puteti
consulta site-ul Federatiei Romane de Hochei (http://www.rohockey.ro/). Pentru fiecare
campionat se cunosc urmatoarele informatii:
 numele campionatului;
 numarul de echipe inscrise in campionat;
 numarul de etape jucate;
Pentru fiecare echipa inscrisa se cunosc:
 numele echipei;
 valoarea estimata a echipei;
 numar de victorii, de egaluri si de infrangerii;
Operatii:
 adaugarea unui nou jucator;
 stergerea unui jucator;
 schimbarea valorii unui anumit jucator;
 afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de
numarul de puncte;
 determinarea locului ocupat de o anumita echipa;
 realizarea unui clasament luand in calcul valorile intrinseci ale jucatorilor
echipelor;
 compararea intre clasamentul determinat la punctul anterior si cel real, si
generarea unui raport;
 determinarea echipelor ce au primit un numar de goluri mai mare decat un
intreg pozitiv introdus de la tastatura;
 determinarea echipelor ce au marcat un numar de goluri mai mare decat un
intreg pozitiv introdus de la tastatura;
 determinarea echipelor ce au un numar de puncte mai mic decat un intreg
pozitiv introdus de la tastatura
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

45. Campionatul de snooker (1 persoana)


Sa se dezvolte o aplicatie care sa simuleze desfasurarea unui campionat de snooker. Se va lua
in considerare modul specific de organizare a unui campionat de snooker. Pentru fiecare
campionat se cunosc urmatoarele informatii:
 numele campionatului;
 numarul de jucatori inscrisi in campionat;
 numarul de etape derulate;
Pentru fiecare jucator inscrisa se cunosc:
 numele jucatorului;
 valoarea estimata a a jucatorului;
 numar de victorii si de infrangerii;
Operatii:
 adaugarea unui nou jucator;
 stergerea unui jucator;
 schimbarea valorii unui anumit jucator;
 afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de
numarul de puncte;
 determinarea locului ocupat de un anumita jucator;
 realizarea unui clasament luand in calcul valorile intrinseci ale jucatorilor;
 compararea intre clasamentul determinat la punctul anterior si cel real, si
generarea unui raport;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

46. Firma de protectie si paza (1 persoana)


In cadrul unei agentii de protectie si paza, se cunosc urmatoarele informatii despre
locatiile, respective persoanele pentru care se ofera servicii de paza si protectie:
 nume societate;
 adresa competa;
 persoanele cu parola si cod pentru operatiile de armare/dezarmare;
 tipul de contract;
 distanta pana la cea mai apropiata celula;
 istoricul interventiilor la respectiva adresa
Informatiile despre clienti sunt urmatoarele:
 nume si prenume;
 numar si serie carte de identitate;
 adresa;
 numar de telefon;
 functia in cadrul societatii;
Operatii cerute sunt:
 introducere date;
 afisare locatiilor sortate dupa nume;
 adaugare a unei noi locatii impreuna cu toate datele aferente
persoanelor care utilizeaza noua locatie;
 afisare locatiilor care au sediul intr-un anumit perimetru (de exemplu
toate locatiile din cartierul 1 Mai);
 afisare persoanelor care au avut acces, in timp, la datele
corespunzatoare unei locatii;
 simularea unei actiuni la o locatie specificata cu determinarea timpilor
de reactie;
 simularea unei actiuni la fiecare din locatiile protejate cu determinarea
timpilor de reactie;
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

47. Gestiunea rezervarilor pentru un hotel (1 persoana)


Sa se realizeze un program care sa permita gestiunea rezervarilor pentru un hotel. Despre
hotel se cunosc urmatoarele informatii:
 nume hotel;
 categoria;
 numarul de camere;
 pentru fiecare camera numarul de paturi;
 numarul de apartamente;
 pretul pentru fiecare tip de camera (sigle, double sau apartament).
Despre o persoana care doreste sa rezerva o camera se cunosc:
 numele persoanei care doreste o rezervare;
 perioada pentru care doreste rezervarea;
 tipul rezervarii.
Operatii cerute:
 rezervarea -> introducere de noi date;
 modificare -> modificarea datelor din fisier pentru o anumita rezervare;
 anulare -> anularea unei rezervari;
 alocare-> alocarea unei camere libere conform cu dorintele clientului;
 listare -> afisarea datelor existente.
Cerinte de implementare:
 Utilizarea claselor iterator pentru parcurgerea listelor;
 Posibilitatea de stocare si restaurare a datelor;
 Tratarea exceptiilor;
 Dialogul cu utilizatorul prin intermediul unei interfete grafice.

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