Documente Academic
Documente Profesional
Documente Cultură
Descriere Proiecte
Descriere Proiecte
1 - String
S se construiasc clasa String, coninnd: un pointer la irul stocat n memorie dinamic (i eventual lungimea irului) - constructori de clas i de copiere - destructor - suprancrcri pentru operatorii: ! test de ir vid + concatenare cu obinerea unui ir nou , pornind de la dou iruri, ir cu char, ir cu char [ ], char [ ] cu ir ( funcie friend!); += concatenare (cu un ir existent), concatenare de ir cu char sau de ir cu char [ ] ; [ ] pentru referirea unui caracter din ir sub forma s[3] = 'a' sau c = s[3]; == i != pentru comparaii ntre iruri; << i >> pentru intrri - ieiri la nivel de ir de pe fiiere standard i de pe fisier pe disc (char)String, cast ctre char, prin furnizarea primului caracter din ir funcia membr abrev( ) pentru obinerea unei prescurtri standard a irului, prin cutare ntr-o tabel de prescurtri posibile, structurat pe clase.
BILET NR . 5 - Polinom
S se construiasc clasa Polinom coninnd: lista n memorie dinamic, a termenilor, sub forma coeficient-grad, sortat descresctor dup grad - constructori de clas pentru obinerea unui obiect dintr-un numr variabil de perechi (coeficient, grad), folosind funcii cu numr variabil de argumente prin introducerea datelor de la terminal - destructor - suprancrcri pentru operatorii -- pentru derivare formal i ++ pentru integrare formal operator(double) pentru calculul valorii polinomului ntr-un punct + ,-,* ,/ i % pentru adunare, scdere, nmulire, mprire i restul mpririi a dou polinoame + = pentru adugarea unui nou termen i -= pentru eliminarea unui termen << i >> pentru operaii de intrare - ieire la nivel de obiect ! test de polinom nul; - funciile: integ(double,double) - integrare numeric, pe un interval folosind operatorii ++ i () deriv(double) - evaluarea derivatei ntr-un punct, folosind operatorii -- i () cmMdc() i cmmmc() a dou polinoame folosind operatorii / i * rad(double,double) - determinarea unei rdcini dintr-un interval dat
BILET NR . 6 - BigInt
Clasa BigInt pentru operaii cu numere ntregi mari, cu semn, conine: - numrul memorat ca text (literele aferente cifrelor numrului), n memoria dinamic sau sub forma signed char cifra[NR_MAX_CIFRE], adic fiecare cifr e memorat pe un ntreg mic (bait) - constructori de clas pentru obinerea unui obiect dintr-un numr ntreg obinuit sau dintr-un ir de caractere prin introducere de la terminal - destructor - suprancrcri pentru operatorii: +,-,*, /, %, -- i ++ cu semnificaiile cunoscute, dar opernd ntre obiecte BigInt, ntre BigInt cu int sau int cu BigInt (operanzii unari onoreaz diferit pre sau postfixarea) << i >> pentru operaii de intrare - ieire la nivel de obiect <,<=,>,>=,!=,== pentru comparaii ntre BigInt, sau BigInt cu int, sau int cu BigInt ! test de zero Se va testa viteza de execuie a calculelor pentru cele dou tipuri de reprezentri, alegndu-se cea mai performant.
BILET NR . 7 - Matrice
Clasa Matrice pentru operaii matriceale conine: - Nr . de linii i de coloane - elementele memorate pe linie i un vector de pointeri la linii - constructori de clas pentru obinerea unui obiect iniializat cu zero: Matrice( int, int) prelund datele dintr-un fiier: Matrice( char *) prin introducere de la terminal: Matrice() - destructor - Suprancrcri de operatori: [ ] pentru a permite adresarea unui element sub forma m[i][j] +,-,*, / pentru operaii dintre matrici, sau de matrici cu numere << i >> pentru operaii de intrare - ieire la nivel de obiect (double)Matrice, cast prin obinerea determinantului - funciile: unu() i zero() pentru generarea matricelor unitate i zero transpunere, inversare determinare valorilor proprii rezolvarea matriceal a sistemelor de ecuaii liniare
BILET NR . 9 - Student-Lista
Clasa Lista, pentru evidena activitilor cu studenii, este o list de obiecte Student. Adugarea i tergerea din list se fac cu operatorii + i -, iar lista este recunoscut de operatorii de intrare-ieire << i >>. Clasa Student conine la rndul ei: nume_stud, nr_matricol, an_studiu, note. - constructorii de clas Student asigur obinerea unui obiect: din date elementare prin introducere de la terminal prin citirea datelor dintr-un fiier, nr_matricol fiind cheia de regsire - destructorul asigur salvarea obiectelor n fiier, exceptnd obiectele create temporar, pentru necesiti de programare - suprancrcri n clasa Student pentru operatorii: ++ promovarea n anul de studiu urmtor << i >> pentru operaii de intrare - ieire la nivel de student s<<n adugarea notei n studentului s (float)s cast pentru calculul mediei unui student; (char*)s cast pentru extragerea numelui unui student Se va elabora funcia clasificare() care ordoneaz studenii pe ani de studii, descresctor dup media notelor.
Folosii clasa de mai sus pentru a numra cuvintele distincte dintr-un text.
BILET NR . 14 - Data
S se defineasc o clas Data pentru gestiunea unor operaii privind data calendaristic, coninnd: trei ntregi: zi, luna, an - funcii de afiare sub diverse formate ( ex. 12/01/99, 31/12/2001, miercuri 5 noiembrie 1988, etc.) - constructori: pornind de la trei ntregi, validnd ncadrarea n intervalele posibile (1-28/29/30/31 pentru zi, 1-12 pentru lun, 19002100 pentru an) pornind de la data furnizat de sistem - suprancrcri pentru operatorii: +, - pentru avansare/dat napoi data cu un numr de zile +, - pentru avansare/dat napoi data cu un numr de zile lucrtoare(eventual dat ca float) ++d, d++ pentru pre-/postincrementare; --d, d-- pentru pre-/postdecrementare; << i >> pentru operaii de intrare - ieire Data d1- d2, pentru determinarea numrului de zile cuprinse ntre dou date - funciile (n majoritate folosite i de suprancrcrile de operatori): isAnBisect(), ( an%400==0 || an%100!=0 && an%4==0 ) isSfirsitLuna(),isInceputLuna()test dac o zi este ultima / prima din lun isSarbatoare(), test de srbtoare legal ( smbt, duminic, 1 mai, 1, 25 i 26 decembrie) Testai clasa pentru a afla data ntoarcerii din concediu (dat n zile lucrtoare), data bonificrii lunare a unei dobnzi ( prima zi lucrtoare dup trecerea lunii)
BILET NR . 17 - Multime
Clasa template Multime, ca mulime generic de elemente de tip generic Element i care conine: cardinalul mulimii; pointer la primul Element funcie de sortare, adaptabil de la un tip de element la altul, presupunnd c fiecare Element recunoate operatori relaionali specifici. suprancrcri pentru operatorii: +,-, * pentru reuniune, diferen simetric, intersecie ( cnd opereaz ntre dou mulimi) | & sau || && sunt folosii ca alternativ pentru reuniune, respectiv intersecie de mulimi +,-, * ntre Multime i Element, cu semnificaia de adugare/extragere element din mulime, respectiv test de apartenen a unui element la mulime << i >> pentru operaii de intrare - ieire la nivel de obiect m1 < m2, dac m1 este inclus n m2
Testai clasa pentru o mulime de numere. Particularizai pentru o mulime de persoane. La ierarhizarea persoanelor se alege vrsta pentru persoanele ntre 18 - 35 ani i salariu, n rest.
BILET NR . 18 - Fractie
Clasa Fracieconinnd: doi ntregi (nr -numrtor i nm -numitor), cu semn doar la numrtor i test de numitor nenul (fracia devine MAX_INT/1, dac se furnizeaz constructorului numitor 0) - Constructori: pornind de la doi ntregi, cu semnul pus la oricare; pornind de la un ntreg, cruia i pune numitorul 1 pornind de la un float sau double, pe care l scrie ca fracie (ex. 0.125 devine 1/8) constructor implicit, genernd fracia 0/1 - suprancrcri pentru operatorii: +,-,/,* reflectnd operaiile uzuale cu fracii i folosind cmMdc(a,b) i cmmmc(a,b) << i >> pentru operaiile de intrare ( citire doi ntregi) i ieire (afiare sub forma -a/b) la nivel de obiect <,<=,>,>=,!=,== pentru comparaii ntre fracii cast pentru conversii de fracii n int i n float sau double; - funciile: simplifica(), amplifica(), reduce() ca simplificare cu cmMdc(a,b)
BILET NR . 19 - Timp
S se defineasc o clas Timp pentru gestiunea unor operaii privind timpul, coninnd: trei ntregi: ora, min, sec - funcii de afiare sub diverse formate ( ex. 15/01/59, 10:12:20 PM, 07:12:20 AM et c.) a timpului local sau a celui din principalele orae (zone) ale lumii - constructori: pornind de la trei ntregi, validnd ncadrarea n intervalele posibile (0-60 pentru min i sec, 0-24 pentru or pornind de la timpul furnizat de sistem - suprancrcri pentru operatorii: +, - pentru avansare/dat napoi ceasul cu un numr de minute +, - pentru avansare/dat napoi ceasul cu un numr de ore : min : sec ++d, d++ pentru pre-/postincrementare cu un minut; --d, d-- pentru pre-/postdecrementare cu un minut; << i >> pentru operaii de intrare - ieire Timp t1- t2, pentru determinarea numrului de minute cuprinse ntre dou momente - funciile (n majoritate folosite i de suprancrcrile de operatori): decalaj() pentru decalaj orar ntre dou orae, de pe fuse orare diferite fuse() pentru afiarea principalelor fuse orare, relativ la GMT ( vezi ComboBox din Windows) Testai clasa pentru a studia durata execuiei unor poriuni din program, folosind cronometre, care prin destructor afieaz durata lor de via.
BILET NR . 20 - Complex
S se defineasc o clas Complex pentru operaii cu numere complexe, coninnd: double Re, double Im -partea real i cea imaginar; bool Format (0 n format algebric, 1 n format trigonometric) - constructori: cu doi parametri ( implicii 0), ntregi, sau float, sau double; cu trei parametri: formatul, partea real i partea imaginar. - suprancrcri pentru operatorii: +, -, *,/ cu semnificaiile lor uzuale cast spre double, pentru furnizarea modulului numrului complex; ~z - conjugatul numrului complex; ! z - modulul numrului complex; << i >> pentru operaii de intrare - ieire Complex n format algebric - funciile (folosite i de suprancrcrile de operatori): abs(z) pentru determinarea modulului numrului complex; arg(z) pentru determinarea argumentului numrului complex; trig(z) pentru conversia n format trigonometric; alg(z) pentru conversia n format algebric. print(z) pentru afiare n format trigonometric: r(cos t + i sin t) Testai clasa pentru a rezolva ecuaii de gradul II, n mulimea numerelor complexe.
BILET NR . 23 - Colectie
S se defineasc o clas de tip Colectie peste care s opereze un obiect Iterator, avnd suprancrcai operator++ i operator-> pentru facilitarea traversrii coleciei . Clasa Colectie implementeaz funciile Add() i Remove(), avnd ca alternative operator+= , respectiv operator-= . Testai funcionalitatea pe o colecie de materiale i pe colecii de tipuri elementare. Transformai clasele Colectie i Iterator n clase template i refacei testrile n noile condiii.
BILET NR . 29 - Restaurant
Definii obiecte i clase pentru a modela activitatea dintr-un restaurant, avnd n vedere urmtoarele aspecte: - un osptar deservete mai multe mese; - mesele pot fi rezervate pe diverse intervale orare; - meniurile au pre fix, cunoscut; Se cere situaia ncasrilor zilnice pe fiecare mas i pe un osptar.
BILET NR . 31 - Cub
S se defineasc clasa Cub pentru lucru cu masive tridimensionale, coninnd: - numrul de matrici din componena cubului ; - elementele memorate n matrici i un vector de pointeri la matrici; - constructori de clas pentru obinerea unui obiect iniializat cu zero: Cub( int, int, int) prelund datele dintr-un masiv tridimensional clasic ( ex. double x[3][2][4] ); - destructor - Suprancrcri de operatori: [ ] pentru a permite adresarea unui element sub forma m[i][j][k]; +,-,*, / pentru operaii dintre cuburi cu dimensiuni adecvate, sau dintre cuburi i numere; << i >> pentru operaii de intrare - ieire la nivel de obiect; - funciile: unu() pentru umplerea unui cub cu toate elementele 1. max() pentru determinarea elementului maxim dintr-un cub.
BILET NR . 32 - Produs
S se construiasc clasa Produs cu urmtoarele cmpuri private: codProdus: ir de caractere de lungime fix; denumire: ir de caractere de lungime fix; pre: numr cu zecimale; cantitate: numr ntreg Pentru clasa Produs s se defineasc: un constructor cu parametri care s permit iniializarea tuturor cmpurilor clasei; functii de acces (citire / scriere) pentru cmpurile clasei
BILET NR . 33 - Student
S se construiasc clasa Student cu urmtoarele cmpuri private: matricolStudent: ir de caractere de lungime fix; nume: ir de caractere de lungime fix; medie: numr cu zecimale; an: numr ntreg. Pentru clasa Student s se defineasc: un constructor cu parametri care s permit iniializarea tuturor cmpurilor clasei; funcii de acces (citire / scriere) pentru cmpurile clasei operator << pentru afiarea la consol. S se testeze clasa Student printr-un program principal n care se declar un vector de 3 studen i i s se afi eze la consol elementele vectorului folosind operator <<. S se adauge n clasa Student cmpul Competente ( ir de caractere de lungime variabil, alocat dinamic) i s se implementeze toate modificrile necesare n interiorul clasei i s se testeze cu o secven de forma: Student s7; { Student s8 = s7, s9; s9 = s7; } cout << s7; S se scrie i s se testeze func ia SalvareStudent(Student s, char* numeFi ier) care s realizeze salvarea cte unui obiect Student, prin adugare ntr -un fi ier text. S se defineasc clasa Grupa care s con in: cmpul studenti (vector de dimensiune fix); cmpul numarStudenti (ntreg) reprezentnd numrul de studeni ncrcai n vector; funcie membru Medie() care s returneze media general a grupei; operator+ pentru adugarea unui student n grup. S se testeze clasa Grupa n programul principal. S se implementeze o clas Vector care s permit stocarea i afi area unui numr variabil de studen i (alocare dinamic). S se modifice clasa Grupa pentru a utiliza clasa Vector pentru stocarea obiectelor Student. S se transforme clasa Vector ntr -o clas template. S se testeze clasa n programul principal pentru tipurile Student i Persoana (int Cod, char Nume[50]).
S se construiasc clasa Document cu urmtoarele cmpuri private: codDocument: ir de caractere de lungime fix; titlu: ir de caractere de lungime fix; numarPagini: numr ntreg. Pentru clasa Document s se defineasc: un constructor cu parametri care s permit iniializarea tuturor cmpurilor clasei; funcii de acces (citire / scriere) pentru cmpurile clasei operator<< pentru afiarea la consol. S se testeze clasa Document printr-un program principal n care se declar un vector de 3 obiecte document i s se afi eze la consol elementele vectorului folosind operator<<. S se adauge n clasa Document cmpul descriere ( ir de caractere de lungime variabil, alocat dinamic), s se implementeze toate modificrile necesare n interiorul clasei i s se testeze printr-o secven de forma: Document d7; { Document d8 = d7, d9; d9 = d7; } cout << d7; S se scrie i s se testeze func ia SalvareDocument(Document d, char* numeFi ier) care s realizeze salvarea cte unui obiect Document, prin adugare ntr -un fi ier text. S se defineasc clasa Dosar care s con in: cmpul documente (vector de dimensiune fix); cmpul numarDocumente (ntreg) reprezentnd numrul de documente ncrcate n vector; funcie membru TotalPagini() care s returneze numrul total de pagini din dosar; operator+ pentru adugarea unui document n dosar. S se testeze clasa Dosar n programul principal. S se implementeze o clas Vector care s permit stocarea i afi area unui numr variabil de documente (alocare dinamic). S se modifice clasa Dosar pentru a utiliza clasa Vector pentru stocarea obiectelor Document. S se transforme clasa Vector ntr -o clas template. S se testeze clasa n programul principal pentru tipurile Document i Declaratie(int Cod, char Denumire[50]).
BILET NR . 34 - Document
BILET NR . 35 - Angajat
S se construiasc clasa Angajat cu urmtoarele cmpuri private: codAngajat: ir de caractere de lungime fix; nume: ir de caractere de lungime fix; salariu: numr cu zecimale; Pentru clasa Angajat s se defineasc: un constructor cu parametri care s permit iniializarea tuturor cmpurilor clasei; funcii de acces (citire / scriere) pentru cmpurile clasei S se testeze clasa Angajat printr-un program principal n care se declare un vector de 3 obiecte angajat i s se afi eze la consol elementele vectorului folosind operatorul << . S se adauge n clasa Angajat cmpul descriere ( ir de caractere de lungime variabil, alocat dinamic), s se implementeze toate modificrile necesare n interiorul clasei i s se testeze adugnd o secven de forma: Angajat a7; { Angajat a8 = a7, a9; a9 = a7; } cout << a7; S se scrie i s se testeze func ia SalvareAngajat(Angajat s, char* numeFiier) care s realizeze salvarea cte unui obiect Angajat, prin adugare ntr -un fi ier text. S se defineasc clasa Echipa care s con in: cmpul angajati (vector de dimensiune fix); cmpul numarAngajati (ntreg) reprezentnd numrul de studeni ncrcai n vector; funcie membru FondSalarii() care s returneze suma salariilor angajailor din echip; operator+ pentru adugarea unui angajat n echip. S se testeze clasa Echipa n programul principal. S se implementeze o clas Vector care s permit stocarea i afi area unui numr variabil de angaja i (alocare dinamic). S se modifice clasa Echipa pentru a utiliza clasa Vector pentru stocarea obiectelor Angajat. S se transforme clasa Vector ntr -o clas template. S se testeze clasa n programul principal pentru tipurile Angajat i Persoana (int Cod, char Nume[50]).