Sunteți pe pagina 1din 19

Programare orientata pe obiecte - Proiecte

Anul universitar 2015 - 2016

Structura proiectului
Dosarul proiectul la disciplina Programare orientata pe obiecte trebuie sa contina
urmatoarele elemente:

1.
2.
3.
4.
5.
6.
7.
8.
9.

Pagina de titlu
Descrierea temei, numarul temei.
Pagina de cuprins
Capitolul 1: Introducere
Capitolul 2: Analiza cerintelor
Capitolul 3: Proiectarea aplicatiei
Capitolul 4: Aspecte teoretice utilizate
Capitolul 5: Codul sursa si metoda de implementare
Capitolul 5: Testarea aplicatiei si studii asupra rezultatelor, tratarea erorilor, sugestii
modificare enunt.
10. Capitolul 6: Concluzii
11. Referinte bibliografice
Pagina de titlu Contine:
titlul Proiect la disciplina Programare orientata pe obiecte
Anul universitar 2015/2016
numele si grupa studentului- sectia
numele coordonatorului

Copierea proiectului in proportie mai mare de 30% conduce la anularea intregului punctaj
( proiect) de la seminar.
Conditii realizare proiect:

proiectul reprezinta o aplicatie executabila care testeaza conceptele C++ implementate;


proiectul trebuie sa ruleze si sa nu genereze exceptii de executie ;
codul sursa al proiectul trebuie sa fie scris fara erori de compilare;
proiectul este dezvoltat in medii de programare specifice;
proiectul se realizeaza individual;
NU se folosesc variabile globale sau functii globale;
toate entitatile folosite au asociata o clasa; NU exista clase generice ce definesc functii/metode
fara o legatura logica cu entitatea definita de clasa;
forma finala a proiectele se preda in ultima saptamana;
proiectul se realizeaza pe durata semestrului fiind stabilite la seminar conditii si termene
intermediare ce trebuie respectate; fiecare faza intermdiara este evaluata si reprezinta pondere
din nota finala a proiectului; predarea proiectului doar la final se evalueaza cu 40%;
la seminar coordonatorul poate stabili o alta tema insa conditiile generale raman valabile.

Cerinte proiect - faza 1

Termenele de predare sunt stabilite la laborator


Definirea a minim 3 clase care au legatura cu cerinta proiectului
In solutie trebuie sa existe minin o clasa ce defineste un camp static si minim o
clasa ce defineste un camp static
Toate atributele se definesc pe zona privata a clasei
Fiecare clasa contine minim 2 metode generice de prelucrare/afisare a atributelor

Cerinte proiect - faza 2

Extinderea claselor definite in fazele anterioare prin adaugarea de atribute noi


(necesare in aceasta faza) se face doar prin derivare si NU prin modificarea
claselor existente
Se implementeaza minim o derivare a unei clase existente

1. Automat bancar (1 persoana)


Automatele bancare sunt sisteme automate ce realizeaza servicii bancare catre populatie.
Acestea pot accepta tranzactii bancare pentru o anumita banca, posesoare a automatului.
Meniul 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:
a. extragerea unei sume de bani din contul curent;
b. afisarea soldului curent;
c. 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.
La selectarea meniului iesire, se va inchide sesiunea de lucru, iar automatul va elibera
cardul utilizatorului.
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;
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:
1. nume si prenume;
2. numar si serie carte de identitate;
3. adresa;
4. numar de telefon;
5. perioada de sejur dorita;
6. statiunea dorita;
Operatii care trebuie efectuate sunt:
1. introducere date;
2. afisare statiuni sortate dupa nume;
3. adaugare a unei noi statiuni cu perioadele aferente la data curenta;
4. adaugare a unei noi perioade la o statiune;
5. afisare statiuni care au bilete ntr-o anumita perioada sortate dupa nume (lista);

6. afisare perioade sejur pentru o anumita statiune sortate dupa ziua de ncepere a
perioadelor;
7. afisare clienti care doresc aceeasi perioada ntr-o statiune;
8. afisare clienti care doresc o statiune;
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

3. Gestiune CD din biblioteca personala (1 persoana)


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

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:
1. Sunt scrise de un autor cerut;
2. Sunt caracterizate prin o anumita descriere;
3. Sunt aparute n o perioada de timp data;
4. Se incadreaza in un anumit domeniu;
5. Sunt tiparite de 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;

5. 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:
1. Introducere date noi ;
2. Sortarea locatarilor dupa nume;
3. Adaugare a unui nou locatar;
4. Cautare unei persoane;
5. Afisare apartamentelor in care locuiesc mai mult de 5 persoane;
6. Afisarea tabelelor cu intretinerile pentru o anumita luna;
7. Afisare apartamentelor ce au restanta la plata intretinerii mai mare ca o suma data;
8. Clasarea locatarilor in rai platnici, respectiv buni platnici.
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

6. Salariati universitate (1 persoana)


Se cunosc informatii complete despre salariatii universitatii. Sa se implementeze o aplicatie
care sa poata furniza mai multe situatii:
1. Generarea fluturasilor cu venitul lunar;
2. Tabel cu salariatii ce au un salariu mai mic decat 4 milioane lei;
3. Tabel cu persoanele ce au implinit sau implinesc varsta pensionarii n anul curent;
4. Tabel cu persoanele ce au de achitat rate lunare si suma totala;
5. Tabel cu cadrele didactice de la facultatea de automatica-calculatoare;
6. 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;

7. 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.
8. Admitere facultate (1 persoana)
Pentru fiecare concurent care se prezinta la admitere se cunosc urmatoarele informatii:
Nume, prenume, data nasterii, nota examen Bacalaureat;Fiecare concurent sustine doua
probe, pentru fiecare din cele doua probe,se acorda trei note ale celor trei corectori;
Sa se implementeze urmatoarele operatii:
1. calcul nota la fiecare proba;
2. sortare concurenti dupa nume;
3. sortare concurenti dupa medie;
4. separarea n 2 liste (admisi, respinsi);
5. calcul medie;
6. determinarea numarului de studenti admisi si respinsi;
7. rezolvarea contestatiilor:
8. modificarea notelor la candidatii carora li s-au rezolvat contestatiile;
9. trecerea studentilor cu o medie mai mare sau egala cu cea a ultimului admis n lista
cu studentii admisi pe pozitia corespunzatoare;
10. 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;
.
9. 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:
1. introducerea unui nou pacient;
2. afisarea tuturor pacientilor;
3. clasarea pacientilor in pacientii varstnici, respectiv tineri;
4. determinarea numarului de pacienti care sufera de o anumita boala;
5. afisarea pacientilor carora li s-a prescris acelasi tratament;
6. afisarea pacientilor cu un numar de retete/luna mai mare decat un numar dat;
7. determinarea numarului de medicamente prescrise de un anumit tip dat;
8. determinarea pacientilor in functie de domeniul de activitate.
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

10. 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:
1. afisarea tuturor studentilor;
2. clasarea studentilor absolventi, respectiv repetentii;
3. determinarea numarului de studenti care au media mai mare daca o medie data;
4. ordonarea studentilor dupa medie;
5. afisarea studentilor bursieri;
6. clasarea studentilor dupa numarul de restante;
7. 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;

11. Gestiunea grila programe televiziune (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 :
1. genul emisiunii (de exemplu divertisment, cultural etc.) ;
2. publicul inta (tinerii sub 18 ani de exemplu) ;
3. ora difuzrii ;
4. durata ;
5. 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:
1. tipul acestuia (de exemplu cultural daca majoritatea emisiunilor au un astfel de
caracter) ;
2. durata medie a emisiunilor ;
3. numarul de emisiuni live, respectiv numarul de emisiuni inregistrate ;
4. publicul tinta al respectivului post de televiziune ;
5. 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


Posibilitatea de stocare si restaurare a datelor;

listelor;

12. 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;

13. Evidenta autovehicule (1 persoana)


Sa se realizeze un proiect pentru evidenta autovehiculelor inmatriculate in circulatie. Pentru
fiecare autoturism se considera urmatoarele informatii:
1. tipul autovehiculului;
2. marca;
3. datele tehnice (cilindree, etc.); alte caracteristici (culoare, etc.);
4. numarul de inmatriculare; data inmatricularii; proprietarul;
5. data ultimei revizii tehnice;
Operatii cerute:
1. actualizare autoturisme;
2. inmatricularea unui nou autoturism;
3. modificare caracteristici autoturism inmatriculat;
4. cautare autoturism dupa numarul de inmatriculare;
5. cautare autoturism dupa nume proprietar;
6. revizie autoturism; radiere autoturism;
7. afisarea autoturismelor inmatriculate dupa o anumita data;
8. afisarea autoturismelor a caror ultima revizie este inainte de o anumita data
9. introdusa de la tastatura;
10. sortarea autoturismelor dupa tipul autovehiculului;
11. 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;

14. 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:
1. salariul de baza;
2. sporul de vechime (in functie de vechimea in munca) si sporurile de periculozitate,
de stress, s.a. (anumite procente din salariul de baza);
3. salariul brut (salariul de baza plus sporurile);
4. impozitul (trepte de impozitare);
5. contributia pentru asigurarile de sanatate, cea pentru ajutor somaj si cea pentru
fondul de pensii (anumite procente din salariul brut), cotizatia la sindicat, etc.;
6. 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;

15. 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:
1. numele persoanei ce face rezervarea;
2. locul decolarii;
3. data rezervarii;
4. destinatia;
5. posibile escale;
6. numele firmei
7. aeriene la care se
8. face rezervarea;
9. pretul biletului;
10. tipul de bilet (dus-intors sau numai dus);
11. clasa la care se face rezervarea (locuri la clasa I si cea turist);
Sa se implementeze urmatoarele operatii:
1. actualizare rezervari;

2.
3.
4.
5.
6.

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);
7. afisarea tuturor rezervarilor pe numele unei anumite persoane;
8. stergerea unei anumite rezervarii identificata prin numele persoanei si prin data
rezervarii;
9. 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;
.

16. 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:
1. inchiriere -> introducere de noi date;
2. modificare -> modificarea datelor din fisier pentru o anumita camera;
3. stergere -> stergerea unei inregistrari datorata eliberarii unei camere;
4. listare -> afisarea datelor existente;
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

17. 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:
1. numele echipei;
2. numele antrenorului;
3. numele jucatorilor;
4. valoarea fiecarui jucator;

5.
6.
7.
8.

numar de jocuri sustinute;


numar de victorii; numar de infrangerii;
numar de goluri primite;
numar de goluri inscrise;

Operatii:
1. adaugarea unui nou jucator;
2. stergerea unui jucator;
3. schimbarea valorii unui anumit jucator;
4. afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de numarul de
puncte;
5. determinarea locului ocupat de o anumita echipa;
6. realizarea unui clasament luand in calcul valorile intrinseci ale jucatorilor echipelor;
7. compararea intre clasamentul determinat la punctul anterior si cel real, si generarea
unui raport;
8. determinarea echipelor ce au primit un numar de goluri mai mare decat un intreg
pozitiv introdus de la tastatura;
9. determinarea echipelor ce au marcat un numar de goluri mai mare decat un intreg
pozitiv introdus de la tastatura;
10. 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;

18. 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:
1. starea civila a unei anumite persoane la o anumita data;
2. descendentii unei persoane specificate;

3. 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);
4. construirea arborelui genealogic pentru o anumit persoana.
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

19. 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;

20. 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.

21. 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;
furnizorului; persoana de contact; telefon;

adresa

Operatii cerute:
1. actualizare lista furnizorii;
2. adaugarea unui nou furnizor;
3. stergere furnizor dupa denumire;
4. cautare furnizor dupa cod fiscal;
5. adaugare produs sau produse oferite de un anumit furnizor;
6. stergere produs sau produse oferite de un anumit furnizor;
7. sortare furnizori dupa denumire;
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

22. 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:
1. alocarea masinilor astfel incat sa se realizeze in mod optim toate cursele;
2. realizarea unei revizii pentru fiecare masina dupa parcurgerea unui numar de
kilometri;
3. modificare treaseului pentru fiecare cursa astfel incat sa se minimize numarul
4. de curse;
5. cautare autoturism dupa numarul de inmatriculare;
6. cautare autoturism dupa numele soferului;

7. afisarea autoturismelor cu un numar de kilometri mai mare decat o valoare


specificata;
8. sortarea autoturismelor dupa tipul autovehiculului;
9. alocarea soferilor astfel incat sa nu avem doua autoturisme cu acelasi sofer;

Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea
Posibilitatea de stocare si restaurare a datelor;

listelor;

23. 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:
1. introducerea datelor;
2. afisare firmelor sortate dupa nume;
3. semnarea unei nou contract;
4. rezilierea unui contract existent;
5. afisare firmelor care au mai mult de 5 angajati;
6. afisarea tabelelor cu cheltuielile pentru o anumita luna;
7. afisare firmelor ce au restanta la plata cheltuielilor mai mare ca o suma data;
8. clasarea firmelor in rau platnice, respectiv buni platnici.
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea listelor;
Posibilitatea de stocare si restaurare a datelor;

24. 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.

25. 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.
26. 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:
1. adaugarea unui nou campionat;
2. retrogradarea unei echipe; promovarea unei echipe;
3. afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de numarul de
puncte;
4. determinarea locului ocupat de o anumita echipa;
5. realizarea unui clasament luand in calcul valorile estimate ale echipelor;
6. 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;

27. 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:

1. numele echipei;
2. valoarea estimata a echipei;
3. numar de victorii, de egaluri si de infrangerii;
Operatii:
1. adaugarea unui nou campionat;
2. retrogradarea unei echipe;
3. promovarea unei echipe;
4. afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de
5. numarul de puncte;
6. determinarea locului ocupat de o anumita echipa;
7. realizarea unui clasament luand in calcul valorile estimate ale echipelor;
8. 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;

28. 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:
1. nume si prenume;
2. numar si serie carte de identitate;
3. adresa;
4. numar de telefon;
5. functia in cadrul societatii;
Operatii cerute sunt:
1. introducere date;
2. afisare locatiilor sortate dupa nume;
3. adaugare a unei noi locatii impreuna cu toate datele aferente persoanelor care
utilizeaza noua locatie;
4. afisare locatiilor care au sediul intr-un anumit perimetru (de exemplu toate locatiile
din cartierul 1 Mai);
5. afisare persoanelor care au avut acces, in timp, la datele corespunzatoare unei
locatii;
6. simularea unei actiuni la o locatie specificata cu determinarea timpilor de reactie;
7. 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;

29. 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:
1. rezervarea -> introducere de noi date;
2. modificare -> modificarea datelor din fisier pentru o anumita rezervare;
3. anulare -> anularea unei rezervari;
4. alocare-> alocarea unei camere libere conform cu dorintele clientului;
5. listare -> afisarea datelor existente.
Cerinte de implementare:
Utilizarea claselor iterator pentru parcurgerea
Posibilitatea de stocare si restaurare a datelor;

listelor;

30. Agenda telefonica


S se realizeze un program care s asigure gestiunea unei cri cu abonaii telefonici ai unei
instituii structurat pe faculti i birouri. Pentru fiecare abonat se vor defini urmtoarele
cmpuri: nume, prenume, adresa, nr_telefon, nr_birou, adr_mail. Abonaii vor fi structurai
pe faculti i birouri la care sunt angajai.
La pornirea aplicaiei va fi afiat urmtorul meniu:
1. Adugare abonat nou.
2. tergere abonat.
3. Cutare abonat dup nume sau nr_telefon ntr-un anumit birou sau de la o
anumit facultate.
4. Sortare abonai pe birouri / faculti dup nume.
5. Mutare abonat de la o facultate la alta sau dintr-un birou n altul.
6. Schimbare numr de telefon la un anumit abonat.
7. Afiarea abonailor dintr-o facultate sau dintr-un birou.
8. Salvare carte de telefoane n fiier.
9. Ieire
Aplicaia va fi implementat folosind clase ablon.

31. Gestiune posta electronica


S se realizeze un program care s asigure gestiunea unor adrese de mail dintr-o
firm. Firma este structurat pe departamente, iar n fiecare departament adresele vor
conine urmtoarele cmpuri: nume, prenume, adr_mail, parola, domeniu, funcie, tip_cont,
activa, ultima_accesare.

La pornirea aplicaiei va fi afiat urmtorul meniu:


1. ncrcare din fiier a adreselor de mail ale firmei, din toate departamentele.
2. Adugare adres mail pentru un nou angajat.
3. Inactivare adrese nefolosite de mai mult de 3 luni.
4. tergere adrese mail inactive.
5. Sortare adrese mail dup nume i prenume angajat de la un anumit departament.
6. Modificare parol la o anumit adres de mail.
7. Adugare departament nou.
8. Salvare adrese de mail n fiier, pe departamente.
9. Ieire
Aplicaia va fi implementat folosind clase ablon.
32. Magazin componente PC
S se realizeze un program care s asigure gestiunea unui magazin de componente PC
(procesoare, plci de baz, memorii, hdd-uri etc.). Fiecare component conine urmtoarele
cmpuri: cod_produs, pre, marca, an_fabricaie, garanie, productor, ar_provenien,
stoc (0 dac nu se afl n stoc, >0 cte sunt n stoc).
La pornirea aplicaiei va fi afiat urmtorul meniu:
1. ncrcare din fiier a componentelor din magazin.
2. Adugare produs nou la o anumit component introdus de la tastatur.
3. Vnzare produs (stoc = stoc - 1).
4. tergere anumit produs dup cod_produs.
5. ncrcare stoc (refacerea stocului la un anumit produs, cutat n prealabil dup
cod).
6. S se calculeze totalul n lei pentru o anumit categorie (suma produselor
stoc*pre de la o anumit component).
7. Afiare pre pentru anumite produse cutate dup marc.
8. Salvare componente n fiier.
9. Ieire
Aplicaia va fi implementat folosind clase ablon.
33. Gestiunea angajatilor unei firme
S se realizeze un program care s asigure gestionarea angajailor unei firme. Pentru un
angajat se cunosc urmtoarele cmpuri: nume, prenume, vrst, adres, departament,
funcie, salariu, zile_concediu.
La pornirea aplicaiei se vor ncrca din fiier datele despre angajai, iar la fiecare
angajat n parte luna, salarul i zilele de concediu rmase.
Se va afia urmtorul meniu:
1. Adugare angajat nou.
2. tergere angajat cu toate informaiile corespunztoare acestuia.
3. Adugare salariu i zile de concediu rmase ntr-o anumit lun citit de la
tastatur, la un angajat citit.
4. Afiare angajai ordonai:
a. dup nume
b. dup media salariului de pe toate lunile

5. Afiare angajai cu zile de concediu rmase din cadrul unui departament.


6. Ieire
Aplicaia va fi implementat folosind clase ablon.
34. Gestiunea unui supermarket
S se realizeze un program care s asigure gestionarea unui supermarket cu diferite produse
(alimentare, cosmetice, buturi).
La pornirea aplicaiei se vor ncrca din fiier datele despre produse, iar la fiecare produs se
cunosc urmtoarele cmpuri: cod_produs, furnizor, unitate_msur, pre_furnizor, adaos,
cantitate, termen_valabilitate.
. Se va afia urmtorul meniu:
1. Adugare produs.
2. Cutare produs de la un anumit furnizor.
3. tergere produse cu termen de valabilitate expirat.
4. Vnzare produs (cantitate = cantitate 1)
5. Calculare pre de vnzare pentru anumite produse (alimentare, cosmetice etc.).
6. Ieire
Aplicaia va fi implementat folosind clase ablon.