You are on page 1of 15

PROBLEME PROPUSE

Aplicatii consol (cu intrri-iesiri n mod text)


1. S se defineasc o clas "Complex" pentru numere complexe cu metode pentru
operatii aritmetice si cu metode din clasa !O"#ect$ redefinite% e&uals toStrin'.
Constructori cu si fr ar'umente. Pro'ram pentru calculul (alorii unui polinom de
(aria"il complex cu coeficienti complecsi.
). S se defineasc o clas !SList$ pentru o list simplu *nlntuit de o"iecte fr
a mai defini o clas auxiliar pentru un nod de list. Metode pentru adu'are si
ster'ere de elemente plus metoda !toStrin'$.
+. S se defineasc o clas ",mic" care contine numele si numerele de telefon al
unei persoane -".ome""office""'sm"/. Pro'ram pentru crearea afisarea unui (ector
de o"iecte ",mic" si sal(are *ntr0un fisier text -cu c1te o linie pentru fiecare
persoan/. Metode impuse% "e&uals" "toStrin'". Pro'ram pentru citire si afisare fisier
cu numere de telefon.

2. S se defineasc o clas !M3ime$ pentru momente de timp memorate su"
forma a trei *ntre'i% or minut secund. Constructor cu ) si cu + ar'umente *ntre'i
-numrul de secunde se consider implict 4ero la constructorul cu ) ar'umente/.
Metode% e&uals toStrin' 'et5ours 'etMinutes 'etSeconds. Metoda !toStrin'$
creea4 un sir de forma 55%MM%SS -556ora MM6minut SS6secund/.
7. S se defineasc o clas !8nput$ cu metode pentru citirea de la consol a unor
siruri de caractere si numere de diferite tipuri separate *ntre ele prin spatii al"e.
Metode% nextStrin' next8nt next9loat s.a. Pro'ram pentru citirea unor numere de la
tastatur si afisarea lor pe ecran. Clasa (a contine (aria"ile de tip DataInputStream
StringTokenizer si String. Con(ersia de la sir la numr "inar se face cu metode ca
!8nte'er.parse8nt$ !9loat.parse9loat$ s.a.
:. S se defineasc o clas !9ile3o;eni4er$ cu aceleasi metode ca si clasa
StringTokenizer dar cu efect diferit. Metoda !next3o;en$ are ca re4ultat urmtorul
cu(1nt din fisier iar metoda !.asMore3o;ens$ are re4ultat !false$ la sf1rsit de fisier.
Clasa (a contine (aria"ile de tip RandomAccessFile si StringTokenizer. Constructor
cu ar'ument numele fisierului anali4at -de tip String/.
<. S se defineasc o clas pentru un ar"ore "inar de cutare cu metode pentru
adu'are sir la ar"ore -!add$/ pentru cutarea unui sir dat *n ar"ore cu re4ultat
"oolean -!contains$/ si pentru transformarea sirurilor din nodurile ar"orelui *ntr0un
sin'ur sir -!toStrin'$/ prin parcur'ere prefixat -rdcin st1n'a dreapta/. Pro'ram
pentru crearea si afisarea unui ar"ore ordonat de siruri. Se poate defini o clas
auxiliar pentru un nod de ar"ore "inar cu + (aria"ile si un constructor.
=. S se defineasc o clas "Matrix" pentru operatii u4uale cu matrice de numere
reale% adunare *nmultire "toStrin'". Pro'ram pentru ridicarea la o putere *ntrea' a
unei matrice ptratice.
>. S se defineasc o clas "?rap." pentru 'rafuri orientate cu noduri numerotate
de la 1. @ate -de tip "pri(ate"/% numr de noduri si matrice de adiacente - matrice
ptratica cu componente de tip ""oolean"/. Metode% "si4e" - numrul de noduri din
'raf/ "add,rc" -adau' un arc la 'raf/ "is,rc" -(erific dac exist arc *ntre dou
noduri date/ "toStrin'" -lista de arce din 'raf/. Pro'ram pentru creare 'raf prin
adu'ari succesi(e de arce -pe "a4a unor perec.i de numere citite de la consol/
afisare arce si afisare 'rad interior si exterior ptr fiecare nod -nr. de arce *n si din nod/
1A. S se defineasc o clas !3imer$ pentru msurarea unor inter(ale de timp.
Clasa contine dou (aria"ile de tip !lon'$ pentru momentul de *nceput si de sf1rsit al
inter(alului msurat exprimate *n milisecunde. 8nter(alul msurat *ncepe la
construirea o"iectului sau la apelul metodei !start$B metoda !stop$ retine momentul
final. Metoda !'etMillis$ are ca re4ultat -lon'/ inter(alul scurs *ntre momentul initial
si momentul final. Pentru a citi timpul curent din sistem -*n milisecunde/ a(em dou
posi"ilitti%
SCstem.current3imeMillies-/
neD @ate-/.'et3ime-/
11. S se defineasc o clas pentru o list simplu *nlntuit ordonat ca su"clas
a clasei !SList$ cu redefinirea metodei de adu'are a unui o"iect la list.
1). S se defineasc o clas pentru o sti( *nlntuit ca su"clas a clasei !SList$
cu metode "pus." "pop" "isEmptC" si redefinirea metodelor inter4ise pentru o sti(.
1+. S se defineasc o clas "SortedEector" deri(at din clasa Vector pentru un
(ector ordonat de o"iecte compara"ile. Se (or redefini metodele%
int indexOf-O"#ect/ FF indice o"iect cautat in (ector
(oid addElement -O"#ect/ FF adau'a un nou o"iect la (ector
Se poate folosi metoda "insertElement,t -O"#ectint/" din clasa Vector si metoda
""inarCSearc. -EectorO"#ect/" din clasa Collections.
12. S se defineasc o clas "8O9ile" deri(at din RandomAccessFile care s
contin *n plus dou metode % "eof" cu re4ultat "true" dac s0a a#uns la sf1rsit de
fisier si "DriteLine" cu parametru de tip String pentru scrierea unei linii *n fisier -cu
adu'are terminator de linie/. Se (a folosi metoda "DriteBCtes-Strin'/". S se
utili4e4e clasa !8O9ile$ *ntr0un pro'ram de copiere fisiere text.
17. S se defineasc o clas !9ileEector$ deri(at din clasa Vector *n care
constructorul are ca ar'ument -Strin'/ un nume de fisier text si populea4 (ectorul
construit cu date din fisier astfel% fiecare element din (ector este un o"iect Vector care
contine cu(intele dintr0o linie a fisierului text. S se (erifice prin afisarea cu metoda
!toStrin'$ a o"iectului 9ileEector creat.
1:. S se scrie o functie static cu ar'ument de tip Enumeration si re4ultat de tip
double pentru calculul sumei elementelor unei colectii de o"iecte numerice -de tip
Double/. S se (erifice pentru un (ector -o"iect Vector/ si apoi pentru un ta"el de
dispersie -o"iect de tip Hashtable/ *n care s0au introdus o"iecte de tip Double.
1<. S se defineasc o clas "9ileComp" pentru comparare de fisiere dup
criteriul indicat printr0o liter la construirea o"iectului comparator% -G6nume 36 tip
S6 dimensiune fisier @6 data ultimei modificri/.
9ileComp-Strin' order/B FForder poate fi "G""3""S""@"
S se defineasc o clas "9ileEnum" compati"il interfata cu Enumeration, pentru
enumerarea fisierelor dintr0un director dat ordonate dup criteriul indicat la
construirea o"iectului enumerator si filtrate conform unui o"iect filtru primit
-e(entual/ de comparator. Ordonarea se (a face *n doua feluri%
0 folosind metoda ",rraCs.sort"
0 prin crearea unei multimi ordonate TreeSet.
Constructori%
FileEnum (File path, String order,FileFilter filter) // cu ordonare, fara filtru
FileEnum (File path, String order) // cu ordonare, fara filtru
FileEnum (File path, FileFilter filter) // fara ordonare, cu filtru
FileEnum (File path) // implicit ordonare dupa data, fara filtru
FileEnum (String order) // implicit directorul curent
FileEnum () // implicit directorul curent
1=. S se defineasc o clas "Scanner" pentru un anali4or lexical de siruri.
Constructor cu ar'ument sirul anali4at -Strin'/. Metoda suplimentara "int 'et3Cpe-/"
are ca re4ultat tipul ultimului sim"ol extras din fisier -1 6 nume sim"olic ) 6
numar + 6 operator -caracter special/. 8ntre atomii lexicali pot exista sau nu spatii
al"e. Eariante% a/ deri(at din clasa StringTokenizer, "/ fr a folosi clasa
StringTokenizer
1>. S se defineasc o clas !E(aluator$ pentru un interpretor de instructiuni de
atri"uire simple care foloseste un dictionar Hashtable pentru ta"ela de sim"oluri
-nume si (alori (aria"ile/. Metoda e(al-Strin'/ interpretea4 o instructiune si
actuali4ea4a ta"ela de sim"oluri -dictionarul/. Clasa E(aluator are un constructor cu
numele unui fisier text si foloseste un o"iect !Scanner$. Metoda !toStrin'$ produce
un sir cu numele si (alorile (aria"ilelor folosit la afisarea re4ultatelor e(alurii.
8nstructiunile pot a(ea forma (6op H0 op H0 op ... unde% op 6I(cJ
( este un nume de (aria"il c este o constant *ntrea' fr semn.
9iecare instructiune se afla pe o linie separata.
)A. S se defineasc o clas "5Set" pentru o multime reali4at ca ta"el de
dispersie cu metodele% add contains toStrin' si4e. Clasa "5Set" (a fi deri(at din
clasa Hashtable *n care c.eia si (aloarea asociat (or fi e'ale -c.eile sunt elementele
multimii/. Pro'ram pentru adu'area unor siruri la multime si afisarea multimii. S se
foloseasc si metoda "elements" pentru afisarea elementelor multimii.
)1. S se defineasc o clas ",rraCSet" pentru o multime de o"iecte reali4at ca
(ector neordonat cu elemente distincte *n dou (ariante% clasa ",rraCSet" deri(at
din clasa Vector si clasa ,rraCSet contine un o"iect de tip Vector. Metode din clasa
Vector si din ,rraCSet% "oolean add-O"#ect/ "oolean remo(e-O"#ect/ "oolean
contains-O"#ect/ Strin' toStrin'-/. Re4ultatul metodelor "add" si "remo(e" este
"true" dac operatia cerut a reusit -dac s0a modificat multimea pentru care se
execut/. Pro'ram pentru crearea unei multimi de siruri prin adu'ari succesi(e
eliminarea unor elemente si afisare dup fiecare operatie.
)). S se defineasc o clas L5Set pentru o multime de o"iecte reali4at ca ta"el
de dispersie cu mentinerea ordinii de introducere *n multime. 3a"elul de dispersie este
un (ector de liste de coli4iuni. Clasa L5Set contine un (ector intrinsec de o"iecte de
tip "Gode" unde "Gode" este o clas cu o (aria"il de tip O"#ect si dou (aria"ile de
tip Gode% le'atur la urmtorul nod din lista de coli4iuni si le'tur la urmtorul
element din lista care mentine ordinea de adu'are la multime. Clasa L5Set extinde
clasa ,"stractSet si defineste metodele "add" "si4e" "contains" si "iterator".
8teratorul asociat clasei L5Set foloseste lista tuturor elementelor din multime -face o
enumerare *n ordinea de adu'are la multime/. Metoda "remo(e" nu (a fi
implementat -arunc exceptia UnsupportedOperationException/.
)+. S se defineasc o clas "SortedEector" pentru un (ector ordonat dup orice
criteriu specificat de utili4ator la construirea unui o"iect "SortedEector". Clasa (a
contine o (aria"il de tip Comparator initiali4at de un constructor cu ar'ument de
tip Comparator si folosit de metoda ""inarCSearc.". Pro'ram pentru afisarea
cu(intelor distincte dintr0un text *n ordine descresctoare.
)2. S se defineasc o clas filtru dup lun'imea fisierelor si s se foloseasc
pentru afisarea numelor fisierelor cu lun'ime mai mare dec1t o (aloare dat *n linia
de comand. Clasa filtru (a implementa interfata FilenameFilter si (a fi folosit de
metoda !list$ din clasa File.
)7. S se defineasc o clas filtru pentru selectie fisiere dup o list de extensii
-tipuri de fisiere/. Clasa implementea4 una din interfatele FileFilter sau
FilenameFilter si contine un (ector cu tipurile de fisiere acceptate. Pro'ram pentru
afisarea fisierelor le'ate de Ka(a -"#a(a" "class" "#ar"/.
):. S se defineasc o clas filtru pentru selectie fisiere dup o masc ce poate
contine caractere LML si LNL. Eariante% clasa implementea4 interfata FileFilter sau
interfata FilenameFilter. Pro'ram pentru (erificarea clasei.
)<. S se scrie o metod static !select$ pentru filtrarea unei colectii. 9unctia are
un ar'ument de tip Collection si un ar'ument de tipul FileFilter sau FilenameFilter
si re4ultat de tip !ist Se (a defini o clas filtru dup un su"sir continut de sirurile
o"tinute din o"iectele colectiei. Pro'ram pentru crearea unei multimi de siruri pe "a4a
cu(intelor dintr0un fisier extra'erea si afisarea cu(intelor care contin un su"sir dat.
)=. S se defineasc o clas a"stract !Collection9ilter$ pentru filtrarea oricrei
colectii de o"iecte cu urmtoarele metode pu"lice%
a"stract "oolean accept -O"#ect o"#/B FF daca o"# este accepta"il sau nu
List select -Collection c/B FF retin in lista o"iectele accepta"ile
S se defineasc o clas deri(at din clasa precedent pentru selectarea o"iectelor
care transformate *n siruri -cu metoda toStrin'/ contin un sir dat -*n constructorul
clasei/. S se (erifice clasa prin afisarea listei produse de metoda select.
)>. S se defineasc o clas ",rraCSet" pentru o multime de o"iecte reali4at ca
(ector -Arra"!ist/ care pstrea4 ordinea de introducere *n (ector si care s poat
*nlocui o clas TreeSet sau HashSet -s implemente4e interfata Set/. Eariante%
a# clasa extinde pe Arra"!ist si implementea4 interfata SetB
b# clasa extinde pe AbstractSet si contine un o"iect Arra"!ist
+A. S se defineasc o clas "Sorted,rraCSet" pentru o multime ordonat de
o"iecte cu posi"ilitate de ordonare dup metoda "compare3o" sau dup metoda
"compare". S se foloseasc *n pro'ramul pentru afisarea cu(intelor distincte dintr0un
text *n ordine cresctoare si descresctoare. Eariant% clasa implementea4 interfata
SortedSet.
+1. S se defineasc o clas pentru o sti( list *nlntuit folosind clasa existent
!inked!ist. Se (or defini aceleasi metode ca cele din clasa Stack.
+). S se defineasc o clas !5Set$ pentru o multime de o"iecte reali4at ca ta"el
de dispersie *n care (ectorul principal s contin referinte la o"iecte !inked!ist
-sinonimele se memorea4 *n liste *nlntuite/. S se (erifice metodele clasei. Clasa (a
fi o (ariant simplificat a clasei HashSet -dar nu se (a folosi HashSet/.
++. S se defineasc o clas ",rraCMap" pentru un dictionar reali4at din doi
(ectori % un (ector de c.ei si un (ector de (alori asociate si care s implemente4e
interfata $ap. Se (or defini metodele% toStrin' put 'et ;eCSet (alues. S se
foloseasc *n pro'ramul de afisare a numrului de aparitii al cu(intelor *ntr0un text.
+2. S se defineasc o clas ",rraCMap" pentru un dictionar reali4at din doi
(ectori% un (ector de c.ei si un (ector de (alori asociate care s extind clasa
Abstract$ap. Metoda !entrCSet$ nu (a folosi o clas multime existent -HashSet sau
TreeSet/ ci (a folosi o clas ce extinde pe AbstractSet cu un iterator care parcur'e cei
doi (ectori din clasa ,rraCMap -asi'ur o !ima'ine$ de multime de perec.i asupra
celor doi (ectori/.
+7. S se defineasc o clas "Lin;edSet" pentru o multime reali4at ca list
*nlntuit de elemente distincte. Clasa (a implementa interfata Set. Se (or examina
(ariantele%
0 "Lin;Set" este deri(at din clasa !inked!ist
0 "Lin;Set" este deri(at din clasa AbstractSet si contine un o"iect !inked!ist.
Pro'ram pentru crearea unei liste de o"iecte Integer si afisarea ei.
9olosind un o"iect iterator sa se afise4e codul ".as." pentru toate elementele
multimii -re4ultatul functiei ".as.Code"/.
+:. S se defineasc o clas Lin;edMap deri(at din clasa Abstract$ap, care
contine un o"iect de tip Lin;edSet. Se (or defini metodele !put$ si !entrCSet$. Se (a
defini si folosi o clas MEntrC care implementea4 interfata $apEntr" pentru o
perec.e de o"iecte c.eie0(aloare. Pro'ram pentru crearea si afisarea unui dictionar cu
(alorile (aria"ilelor *nt1lnite *n instrucutiuni de atri"uire simple de forma (6c sau
(6( unde OcP este un numr *ntre' -o constant/ iar ( este un nume de (aria"il.
Exemplu%
x6+ F C6x F 4 6< F x6 4 F Re4ultat% Qx%< C%+ 4%<R
+<. Pro'ram pentru afisarea unei liste de referinte *ncrucisate cu fiecare cu(1nt
distinct dintr0un fisier text *mpreun cu numerele liniilor de text *n care apare acel
cu(1nt. Se (a folosi un o"iect Tree$ap *n care se (or introduce ca (alori asociate
cu(intelor liste de numere -o"iecte de tip !inked!ist sau "Lin;edSet" cu elemente de
tip Integer/. Pentru afisare se (or redefini metodele "toStrin'" si ";eCSet". 9iecare
cu(1nt (a *ncepe pe o linie nou si (a fi urmat de lista liniilor *n care apare.
+=. S se defineasc o clas "MultiMap" pentru un dictionar cu (alori multiple -o
c.eie are asociat o multime de (alori/ ca o clas deri(at din Abstract$ap si care
contine o (aria"il de tip Abstract$ap. Metode impuse% O"#ect put -O"#ect ;eC
O"#ect (alue/ % pune perec.e c.eie0(aloare *n dictionar O"#ect 'et -O"#ect ;eC/ %
scoate multimea de (alori asociate unei c.ei.
Constructorul clasei "MultiMap" are un parametru de tip $ap iar *n pro'ram se
(a folosi un parametru efecti( de tip ",rraCMap" sau Tree$ap sau Hashmap.
Pro'ram pentru crearea unui ta"el de referinte *ncrucisate folosind un o"iect
"MultiMap" *n care c.eia este un cu(1nt iar multimea de (alori asociate este lista
numerelor de linii *n care se afl cu(1ntul respecti(.
+>. S se defineasc o clas !SortedLin;edSet$ pentru multimi de o"iecte reali4ate
ca liste *nlntuite ordonate si care contine o (aria"il de tip Comparator. Unul din
constructori are ar'ument de tip Comparator pentru initiali4area (aria"ilei din clas.
Se (or examina dou (ariante% -a/ Clasa extinde pe AbstractSet implementea4
SortedSet si contine o (aria"il !inked!ist& -"/ Clasa extinde pe !inked!ist si
implementea4 pe SortedSet.
2A. S se defineasc o clas "Lin;edSueue" deri(at din AbstractCollection si
care contine dou (aria"ile de tip "Gode" pentru adresa primului si a ultimului
element din coad. Clasa "Gode" este o clas inclus si corespunde unui nod de list
simplu *nlntuit. Pro'ram pentru introducerea si extra'erea de siruri *ntr0o coad cu
afisare continut coad dup fiecare operatie.
21. S se defineasc o clas pentru un nod de ar"ore "inar ca o clas interioar
clasei pentru ar"ori "inari. Clasa ar"ore contine c1te(a metode strict necesare % !add$
!toStrin'$. Ca alternati( la metoda !toStrin'$ se pot defini metode pentru (i4itare *n
lr'ime si *n ad1ncime -prefixat infixat si postfixat/ cu re4ultat String.
2). S se defineasc clase iterator incluse pentru ar"orele "inar din pro"lema
anterioar pentru cele 2 moduri de (i4itare a nodurilor. Clasa ar"ore (a contine si 2
metode cu re4ultat Iterator care instantia4 aceste clase.
2+. S se defineasc o clas "3a"le" pentru o matrice de o"iecte cu metodele%
"toStrin'" si "sort-col/". Metoda "sort" ordonea4 matricea dup (alorile dintr0o
coloan dat "col" si apelea4 metoda ",rraCs.sort" cu un al doilea parametru de tip
Comparator. Clasa comparator de linii se (a defini mai *nt1i ca o clas cu nume
inclus *n clasa "3a"le" si apoi ca o clas anonim inclus *n metoda "sort". O matrice
este un (ector de (ectori-de linii/ iar metoda "compare" compar dou linii dup
(alorile dintr0o coloan dat. Se presupune c o"iectele din matrice sunt dintr0o clas
compati"il cu Comparable si deci suport metoda "compare3o". Pro'ram pentru
reordonarea unui o"iect "3a"le" dup toate coloanele posi"ile cu afisare dup fiecare
ordonare. O"iectul "3a"le" poate fi creat pe "a4a urmatoarei matrice de siruri%
Strin' aQRQR6 II"7"")""+"JI"2""1"":"JI"1""<""A"JI"1""1""1"JJB
22. Un fisier text contine linii formate din mai multe cu(inte separate prin spatii
al"e. S se defineasc o clas "LineList" pentru o list de linii creat pe "a4a unui
fisier -constructor cu numele fisierului/. Clasa contine o metoda "sort" de ordonare a
listei de linii dup un cu(1nt dat din linie -prin numrul su *n cadrul liniei *ncep1nd
cu 1/. Pro'ramul pentru (erificarea clasei primeste *n linia de comand numele
fisierului si numrul cu(1ntului dup care se ordonea4. Liniile ordonate se afisea4
pe ecran. Pentru ordonare se apelea4a functia ",rraCs.sort" cu parametru de tip
Comparator. Clasa comparator este definit ca o clas inclus *n clasa "LineList" si
apoi ca o clas inclus *n "locul metodei "sort" -anonim/. Se consider c fisierul
poate fi citit inte'ral *n memoria intern.
27. S se defineasc o clas "ReaderTriter" pentru fisiere cu operatii pe caractere
si care suport at1t operatii de citire c1t si operatii de scriere. Clasa preia metode de la
clasele File'riter -prin mostenire/ si de la FileReader -prin dele'are/. Metode din
clasa "ReaderTriter"% read Drite close reset -repo4itionare pe *nceput de fisier/.
Pro'ram pentru crearea unui fisier urmat de citirea lui folosind clasa ReaderTriter.
2:. Pro'ram pentru crearea unui fisier comprimat -format !'4ip$/ dintr0un fisier
text si decomprimarea pentru afisarea fisierului folosind o"iecte ()I*+utputStream
si ()I*InputStream construite pe "a4a unor o"iecte File+utputStream si respecti(
FileInputStream. Se (or folosi metode de citireFscriere octet !read$ si !Drite$.
2<. S se defineasc o clas pentru citire cu con(ersie dintr0un fisier text -dintr0un
flux/ paralel cu clasa *rintStream. Metode% !readStrin'$ !read8nt$ !read9loat$.
Se i'nor spatiile al"e dintre siruri la citire. Clasa poate extinde fie clasa Reader fie
clasa FilterInputStream si foloseste o (aria"il StringTokenizer. Clasa are un
constructor fr ar'umente pentru citire de la consol si un constructor cu ar'ument
String pentru citire dintr0un fisier. Se poate utili4a si clasa StreamTokenizer.
2=. S se defineasc o clas 3Gode pentru un nod de ar"ore multici care
implementea4 interfata Tree,ode din pac.etul !#a(ax.sDin'.tree$ plus metodele%
insert remo(e add setParent -din Muta"le3reeGode/
'etUserO"#ect toStrin'
Clasa contine o (aria"il de tip +b-ect -pentru datele memorate *n nod/ o
(aria"il de tip Vector pentru referinte la succesori -la nodurile fii/ si o (aria"il
Tree,ode pentru nodul printe. S se foloseasc clasa 3Gode pentru crearea si
afisarea unui ar"ore cu marca#ele dintr0un fisier UML.
2>. S se defineasc o clas adaptor de la interfata Iterator la interfata
Enumeration. S se defineasc o clas 3Gode care implementea4 interfata
Tree,ode plus metodele urmtoare %
insert remo(e add setParent -din Muta"le3reeGode/
'etUserO"#ect toStrin'
Clasa 3Gode contine o list *nlntuit !inked!ist de noduri fii. S se foloseasc
clasa 3Gode pentru crearea si afisarea -prefixat cu indentare/ a unui ar"ore cu
numele fisierelor dintr0un director dat si din toate su"directoarele sale -recursi(/.
Aplicatii cu interfat grafic (cu clase JFC)
1. S se defineasc o clas "M9rame" deri(at din .Frame cu 2 constructori
0 un constructor fr ar'umente
0 un constructor cu parametru "Strin'" care repre4int titlul ferestrei
0 un constructor cu doi parametri "int" ce repre4int dimensiunile ferestrei.
0 un constructor cu patru parametri "int"% dimensiuni si po4itie fereastr.
Pentru sta"ilirea coordonatelor coltului din st1n'a sus se poate folosi metoda%
setLocation -int x int C/B
S se includ si metoda "setEisi"le" *n constructorii clasei "M9rame".
8n functia "main" se (or crea dou ferestre dispuse una su" alta -afisate automat/.
). Pro'ram pentru afisarea unei etic.ete .!abel si a unui c1mp text .Te/tField
nemodifica"il -setEdita"le-false// pentru afisarea numelui si (alorii unei proprietti
-de ex. numele "Color" *n etic.eta si (aloarea "T.ite" *n c1mpul text. Se (a folosi
ase4area Flo0!a"out. Se (or adu'a apoi%
0 "ordura la c1mpul text - setBorder-neD Etc.edBorder-//
0 culoare al" la c1mpul text -setBac;'round -Color.D.ite//
0 dimensiune dorit la c1mpul text -setPreferredSi4e-1=A)A//
S se extind pro'ramul pentru afisarea ta"elei de proprietti sistem Ka(a.
Exemplu de afisare a ta"elei de proprietti *n mod text%
Properties prop = System.getProperties();
Enumeration e = prop.propertyNames();
hile (e.has!oreElements()) "
String pname = (String) (e.ne#tElement());
System.out.println ( pname$%&%$ prop.getProperty(pname)) ;
'
+. Pro'ram pentru afisarea unui mic formular de introducere a datelor -fr
tratarea e(enimentelor/. 9ormularul (a contine + ru"rici fiecare ru"ric este un c1mp
text precedat *n st1n'a de o etic.et. Ce mod de ase4are si c1te panouri tre"uie
folosite pentru a mentine etic.etele *n partea st1n' a ferestrei si c1mpurile text *n
partea dreapt indiferent de dimensiunile ferestrei principale ale etic.etelor si
c1mpurilor N
2. Pro'ram pentru afisarea unei ferestre asemntoare celei afisate de comanda
!Run$ din sistemul TindoDs% un c1mp text cu o etic.et -!Open$/ *n st1n'a lui si +
"utoane% OVCancel BroDse. Se (a *nlocui apoi c1mpul text cu un o"iect de tip
.Combo1o/ -pentru selectia unui text dintr0o list/.
7. Pro'ram pentru afisarea unui nume de director -primit *n linia de comand/ *ntr0
un c1mp text si a numelor fisierelor din acest director *ntr0o list .!ist. S se
foloseasc apoi o 4on text .Te/tArea *n locul listei .!ist. Se pot adu'a etic.ete
c1mpului text si 4onei text -!@irectorC$ si !9iles$/.
:. S se defineasc o clas care implementea4 interfata $ouse!istener prin
redefinirea metodei "mousePressed" cu efectul de producere semnal sonor. Se (a
folosi metoda 3ool;it.'et@efault3ool;it-/."eep-/B
S se scrie un pro'ram care reactionea4 sonor la orice clic pe mouse pe suprafata
ferestrei principale - de tip Frame sau .Frame/.
S se 'enere4e semnal sonor si *n metodele "mouseEntered" "mouseExited" si s se
o"ser(e efectul la deplasare mouse *n interiorul si in afara ferestrei.
S se mute semnalul sonor din "mousePressed" *n "mouseClic;ed" si s se o"ser(e
efectul -si atunci cand durea4a mult intre apasare si eli"erare "uton/.
S se rescrie pro'ramul anterior prin modificarea clasei receptor astfel ca ea s
extind clasa a"stract $ouseAdapter *n loc s implemente4e interfata
$ouse!istener.
<. S se defineasc o clas care implementea4 interfata 2e"!istener cu metoda
";eCPressed" definit pentru afisare *ntr0un c1mp text a codului tastei apasate -o"tinut
cu metoda ";eCCode" din clasa 2e"E3ent/. S se scrie un pro'ram cu dou c1mpuri
text -.Te/tField/% unul pentru introducere si unul pentru afisare coduri taste apsate.
Examinati toate posi"ilitatile de definire a clasei asculttor.
Metoda ";eCPressed" este apelat la apsarea oricrei taste -inclusi( S.ift Ctrl
,lt/. Metoda ";eC3Cped" este apelat numai la actionarea unei taste ce corespunde
unui caracter Unicode -,scii/. Modificati pro'ramul pentru afisare *n c1mpul text a
mesa#ului "VeC3Cped" sau "VeCPressed".
=. S se modifice pro'ramul anterior prin redefinirea clasei asculttor ca o clas ce
extinde clasa 2e"Adapter -*n loc s implemente4e 2e"!istener/. Examinati toate
posi"ilittile de definire a clasei asculttor.
>. Pro'ram pentru afisarea unui "uton cu inscriptia "Clic; Me" si afisarea unei
casete de dialo' cu titlul "E(ent 9ired" la fiecare clic pe "uton -cu mouse/. ,fisarea
casetei de dialo' se face astfel%
KOptionPane.s.oDMessa'e@ialo'-neD K9rame-/"""E(ent 9ired W"
KOptionPane.PL,8GXMESS,?E/B
Se (or examina pe r1nd urmtoarele (ariante de definire a clasei ascultator la
e(enimente 'enerate de "uton%
a/ Cu trei clase separate% clasa asculttor clasa deri(at din .Frame care contine si
un "uton clasa cu "main" -care afisea4 fereastra/.
"/ Cu dou clase% clasa asculttor si clasa deri(at din .Frame si care contine metoda
"main".
c/ Cu o sin'ur clas% clasa asculttor cu nume inclus *n clasa ce contine metoda
"main" -clasa inclus este si static/
d/ Cu o sin'ura clas % clasa asculttor anonim inclus *ntr0un "loc -metoda
"add,ctionListener"/ din clasa ce contine metoda "main".
e/ Cu dou clase% O su"clas a clasei .1utton care contine si metoda
"actionPerformed" si clasa care contine metoda "main".
f/ Cu dou clase % clasa asculttor inclus *ntr0o su"clas a clasei .Frame -separat
de clasa ce contine metoda "main"/
'/ O sin'ur clas care extinde pe .Frame si implementea4 Action!istener -clasa
este si 'enerator si asculttor la e(enimente/.
1A. Pro'ram pentru afisarea a doua c1mpuri text -nemodifica"ile/ si a trei "utoane
radio -KRadioButton/ notate cu ,BC si 'rupate *ntr0un 'rup de "utoane
-"Button?roup"/. 8n primul c1mp se afisea4 o *ntre"are -"Ce ale'eti"/. @up
apsarea unui "uton se afisea4a *n al doilea c1mp numele selectat -,BC/. 3oate cele
+ "utoane radio au un sin'ur o"iect ascultator de tip Action!istener care modific
continutul c1mpului re4ultat -cu rspunsul la *ntre"are/. Pro'ramul corespunde unei
*ntre"ri cu un sin'ur rspuns posi"il dintr0un test 'ril.
11. Modificati pro'ramul anterior pentru afisarea unor casete cu "ifare .Check1o/
si afisarea numelor casetelor selectate *n c1mpul text. Pro'ramul corespunde unei
*ntre"ri cu mai multe rspunsuri posi"ile dintr0un test 'ril. Cum se poate inter4ice
"ifarea repetat a unor casete N 3oate cele + casete au un sin'ur ascultator de tip
Item!istener cu o metod "itemStateC.an'ed" si cu ar'ument de tip ItemE3ent.
Metoda "'etSource" apelat pentru un o"iect e(eniment are ca re4ultat numele casetei
care a 'enerat e(enimentul -care difer de textul afisat l1n' caset si transmis la
construirea o"iectului .Check1o/.
1). S se defineasc o clas "Lin;ListModel" pentru un model de list care
foloseste o list *nlntuit *n loc de (ector. Eariante% Clasa extinde Abstractlist$odel
si contine o (aria"il !inked!ist sau clasa extinde !inked!ist si este compati"il cu
interfata !ist$odel.
1+. Pro'ram care simulea4 un calculator cu operatii de adunare si scdere.
9ereastra aplicatiei contine dou c1mpuri text% unul pentru numrul introdus si altul
pentru re4ultatul operatiilor anterioare -am"ele de lun'ime )A/. 9ereastra mai contine
trei "utoane% pentru adunare-H/ pentru scadere-0/ si pentru ster'ere c1mpuri
-"Clear"/. @imensiunile ferestrei sunt -)2A12A/. Gumerele se introduc prin taste si
sunt aliniate la dreapta *n c1mpurile text - tf.set5ori4ontal,li'nment -tf.R8?53/ /.
@up orice operatie -H0Clear/ controlul re(ine c1mpului de introducere -prin
"re&uest9ocus"/. Cum se pot e(ita introducerile 'resite -caractere inter4ise *n numere/
N
12. S se modifice pro'ramul anterior pentru un calculator cu numere introduse
numai prin "utoane -cu cifre de la A la >/. Gu se pot introduce direct de la tastatur
caractere *n campurile text - setEdita"le-false/ /.Se (or folosi trei panouri% un panou
cu cele dou c1mpuri text un panou cu cele 1A "utoane pentru cifre si un panou cu
cele trei "utoane pentru operatii. @ispunerea *n fiecare panou poate fi "?ridLaCout".
@imensiunea su'erat pentru fereastra aplicatiei -+AA1:A/. Cele 1A "utoane (or fi
create si adu'ate *ntr0un cicluB toate (or a(ea un sin'ur o"iect asculttor care
determin sursa e(enimentului si deci cifra introdus%
Strin' cifra6 --KButton/ -e(.'etSource-// /.'et,ctionCommand-/
17. Pro'ram pentru afisarea unui formular folosit la *nre'istrarea unor clienti.
9ormularul contine trei componente .Te/tField *n care se introduc numele anul
nasterii si adresa de e0mail si un "uton de sal(are a datelor intr0un fisier -"Sa(e"/.
Pro'ramul nu permite memorarea *n fisier dec1t dac s0au introdus toate datele prin
producerea de e(enimente ",ctionE(ent" la fiecare c1mp. S se adau'e apoi un "uton
de anulare a datelor introduse p1n la un moment dat -"Cancel"/ cu ster'ere c1mpuri
text. @up sal(are se ster'e tot ce s0a introdus anterior. C1mpurile text sunt precedate
de c1te un text explicati( -reali4at ca etic.et .!abel/. Etic.etele sunt plasate *ntr0un
panou -cu ase4are ?ridLaCout-A1// iar c1mpurile text *ntr0un alt panou -cu aceeasi
ase4are/. Panoul cu etic.ete se plasea4 *n st1n'a panoului cu c1mpuri text -"Center"
"East" *ntr0o ase4are "BorderlaCout" *n panoul principal/. 8n ca4 de eroare -date
incomplete la sal(are / se (a afisa o caset de dialo' si se emite un semnal sonor.
Sa se adau'e (alidarea datelor introduse cu semnalarea erorilor posi"ile. Eariante%
a/ C1mpurile pot fi completate *n orice ordine
"/ C1mpurile tre"uie completate *n ordinea nume an email.
1:. Pro'ram cu interfat 'rafic pentru (i4uali4area e(olutiei unei sti(e dup
operatii !pus.$ si !pop$. Componente o"li'atorii%
0 .!ist ptr continutul sti(ei
0 .Te/tField ptr introducere cu(inte -cu actionare tastei Enter dup fiecare cu(ant/ si
pentru afisare cu(inte scoase din sti(a
0 .1utton pentru operatia "pus."
0 .1utton pentru operatia "pop"
1<. Pro'ram care permite introducerea unui nume de director *ntr0un c1mp text si
afisea4a lista fisierelor din director *ntr0o list de selectie .!ist Lista de selectie este
reinitiali4at la fiecare modificare a c1mpului text -nu se prelun'este cu alte nume de
fisiere/. Se (a adu'a pro'ramului anterior *nc un c1mp text *n care se (a afisa
numele fisierului selectat de utili4ator -prin clic pe mouse/ din lista de selectie -cu
toate fisierele din director/. 9iecare c1mp text este *nsotit de o etic.et -"@irectorC"
"Selected"/. Cele dou c1mpuri si cele dou etic.ete se plasea4 *ntr0un panou separat
-cu ase4are "?ridLCout"/. ,se4area *n fereastra principal este "9loDLaCout".
1=. Se (a modifica pro'ramul anterior prin inlocuirea campului text pentru fisierul
selectat cu o alta lista .!ist la care se adau' fisierele selectate din prima list. Pentru
a e(ita afisarea repetat a fisierelor selectate -la apsare si ridicare "uton mouse/ se (a
introduce *n metoda !(alueC.an'ed" sec(enta %
if ( e.get(alue)s*d+usting()) return; // ,istSelectionE-ent e
1>. Pro'ram pentru afisarea numelor fisierelor dintr0un director *ntr0o list .!ist
cu un "uton de ster'ere a fisierelor selectate din list astfel ca *n lista afisat s
rm1n numai fisierele dorite. Se (a actuali4a si un c1mp text cu numrul fisierelor
rmase -cele afisate *n list/. 9isierele selectate nu (or fi sterse efecti( de pe disc ci
numai din lista afisat.
)A. Pro'ram pentru "na(i'are" prin sistemul de fisiere% la selectarea unui
su"director din lista afisat se mut numele acestuia *n c1mpul text -cu nume director
curent/ si se afisea4a *n .!ist continutul su. Pentru re(enire la directorul printe se
afisea4 *n .!ist si numele acestuia su" forma "..".
)1. Pro'ram care citeste cu(inte dintr0un fisier text le adau' la un dictionar
ordonat de cu(inte si numr de aparitii si afisea4 dictionarul *n dou liste .!ist% o
list de cu(inte si o list cu numere de aparitii. Pentru a urmri e(olutia listelor
citirea unui nou cu(1nt din fisier se face numai la actionarea unui "uton -sau a unei
taste/. Cu(1ntul citit din fisier este afisat si *ntr0un c1mp text .Te/tField.
)). Pro'ram cu interfat 'rafic pentru afisarea metodelor unei clase *ntr0o list
.!ist.
Gumele clasei se introduce *ntr0un c1mp text. S se adau'e un "uton pentru afisarea
metodelor mostenite de la superclasa sa direct.
)+. S se defineasc%
0 o clas 9inder pentru cutarea *ntr0un director dat a fisierele care contin un sir dat si
crearea unui dictionar cu c.ei nume de fisiere si cu (alori numrul de linii din fisier
care contin sirul.Constructor cu ar'ument numele directorului. Metoda !find$ creea4
un dictionar si primeste un nume de director% Map find -Strin'/
0 o clas MapKList pentru afisarea unui dictionar intr0un o"iect .!ist. Clasa extinde
pe .!ist. Constructori cu ar'ument $ap si fara ar'ument. Metoda setMap-Map/
transmite un dictionar la o"iectul .!ist ptr afisare.
0 o clasa ?U89ind cu interfata 'rafica pentru 'asirea fisierelor dintr0un director dat
care contin un sir dat si afisarea lor in. Se (a folosi un o"iect 9inder. La selectarea
unui fisier se afisea4 *ntr0o 4on text .Te/tArea continutul fisierului selectat.
Componente% .!ist cu numele fisierelor 'asite si prima linie care contine sirulB
.Te/tField cu numele directoruluiB .Te/tField pentru introducerea sirului cutatB
.Te/tArea pentru afisare continut fisier selectat din list B .1utton "9ind" pentru
cutare fisiere si afisare pe ecran.
)2. S se defineasc o clas 3Gode pentru un nod de ar"ore "inar cu date de tip
+b-ect. S se defineasc o clasa 3ree pentru un ar"ore "inar de cautare cu )
constructori% fara ar' si cu ar'um de tip Comparator. Metode%
contains add si4e
toStrin' -sir ptr su"ar"orele cu radacina in acest nod prefixat si cu indentare /
Eector to,rraC-/ FF o"tinut din sirul produs de "toStrin'" -un elem6 o linie/
Strin' toSa(e-/ FF sir cu (alorile din noduri in ordine infixata -SR@/
Strin' 'etPat. -O"#ectx / FF calea de la radacina la nodul cu (aloarea x
Sa se defineasca o clasa 3reeEieD pentru (i4uali4area unui ar"ore 3ree folosind un
o"iect KList si un camp text pentru adau'area de noi siruri la ar"orele existent. 8n alt
camp text se afisea4a calea de la radacina la nodul selectat. La selectia unui nod din
ar"ore se afisea4a intr0un al doilea camp text calea de la radacina la nodul selectat.
Butonul "Sa(e" are ca efect sal(area sirurilor din ar"ore intr0un fisier text cu numele
"3ree.txt" ordonate alfa"etic si separate prin spatii al"e.
)7. S se defineasc o clas 3reeList pentru afisarea de ar"ori *ntr0un o"iect .!ist
cu posi"ilitatea de expandareFcontractie noduri interne prin selectia nodului -clic pe
mouse/. ,fisarea se face cu indentare diferit la fiecare ni(el din ar"ore asemntor
cu cea din .Tree. Clasa Tree!ist este deri(ata din .!ist si implementea4 interfata
!istSelection!istener. La selectarea unui nod din lista afisat se modifica starea sa
-expandatFneexpandat/. S se utili4e4e un o"iect din clasa 3reeList pentru afisarea
ar"orelui de fisiere dintr0un director cu nume introdus *ntr0un c1mp text -initial
nodurile interne nu sunt expandate/.
):. S se defineasc o clas "9older" cu o functie "tCpes" pentru extra'erea
tipurilor de fisiere dintr0un director dat -ca ar'ument in constructor/ *ntr0un o"iect
MMap cu fiecare tip -extensie/ *mpreun cu lista numelor fisierelor de acel tip - tipul
poate apare cu litere mari sau mici/. 9isierele fr tip apar *ntr0o list separat cu
c.eia "GULL" -dac exist fisiere care nu contin un punct *n numele lor/. S se scrie
un pro'ram cu interfat 'rafic pentru afisarea tipurilor -extensiilor/ de fisiere din
o"iectul MMap creat *ntr0un .!ist si afisarea *ntr0o a doua list .!ist a numelor
fisierelor de tipul selectat de operator. Butonul "Sa(e" sal(ea4 numele complet al
fisierelor de un anumit tip *ntr0un fisier cu numele tipului si extensia "dir" -din lista a
doua/.
)<. S se defineasc o clas MapList deri(at din .!ist pentru afisarea
continutului unui dictionar *ntr0un o"iect .!ist . Constructor cu ar'ument de tip $ap.
Metode% "setMap -Map/" !Strin' toStrin'$. Pro'ram pentru crearea si afisarea unui
dictionar cu numrul de fisiere din fiecare tip dintr0un director dat folosind un o"iect
MapList. Gumele directorului se introduce *ntr0un c1mp text. 8nitial se foloseste
continutul directorului curent. Un "uton !Sa(e$ permite sal(area datelor afisate *ntr0
un fisier text cu numele directorului si extensia !dir$.
)=. S se defineasc o clas Map3a"le deri(at din .Table si care implementea4
interfata !istSelection!istener folosit pentru afisarea continutului unui dictionar
*ntr0un ta"el cu dou coloane cu ordonarea dictionarului dup coloana selectat.
Constructor cu ar'ument de tip $ap. Metode% "setMap -Map/" care creea4a model
de ta"el si *l transmite la ta"elB "sort -int c/" pentru sortare ta"el dup o coloan dat
OcP -folosind metoda ,rraCs.sort sau Collections.sort/. Pro'ram pentru crearea si
afisarea unui dictionar cu numrul de fisiere din fiecare tip dintr0un director dat
folosind un o"iect Map3a"le. Gumele directorului se introduce *ntr0un c1mp text.
8nitial se foloseste continutul directorului curent.
)>. S se defineasc o clas 3a"leCalc pentru un ta"el de calcul *n care celulele
pot contine text numere sau formule simple -sume pe linii sau pe coloane/. 9ormulele
se recalculea4 automat la modificarea numerelor din celulele continute *n formule.
La selectarea unei celule se afisea4 continutul sau (aloarea celulei *ntr0un c1mp text
situat deasupra ta"elului. 8n celula din ta"el se afisea4 re4ultatul formulei iar
formula se introduce se afisea4 si se editea4 *n acelasi c1mp text. Eariante% a/ clasa
3a"leCalc ca su"clas a clasei .TableB "/ 3a"leCalc ca su"clas a clasei .*anel.
+A. Pro'ram cu interfat 'rafic SDin' pentru crearea interacti( si afisarea unui
ar"ore *ntr0un o"iect .Tree. Godul rdcin este creat *nainte de afisare si contine de
exemplu sirul !doc$. ,du'area unui nod nou de ctre utili4ator se face astfel% este
selectat un nod din ar"ore si apoi se introduce *ntr0un c1mp text un sirB cu acest sir se
crea4 un nod nou adu'at ca fiu nodului selectat -considerat ca nod printe/. S se
adau'e apoi pro'ramului un "uton pentru eliminarea unui nod selectat din ar"ore.
+1. S se defineasc%
0 O clasa 3Gode deri(at din De4ault$utableTree,ode cu o (aria"il
suplimentara ""oolean expanded" si metode de modificare si de acces la aceasta
(aria"il -care arat dac acest nod este expandat/.
0 O clasa 3reeList deri(at din .!ist si care implementea4 interfata
!istSelection!istener cu un constructor ce are un ar'ument de tip 3Gode -rdcina
ar"ore/ si care permite afisarea unui ar"ore *ntr0un o"iect .!ist. Clasa permite
expandarea si contractia nodurilor selectate prin mouse -care nu sunt frun4e/.
0 O clas deri(at din .Frame care contine un c1mp text si un o"iect 3reeList pentru
afisarea unui ar"ore de fisiere si su"directoare pentru directorul al crui nume s0a
introdus *n c1mpul text. 8nitial se afisea4 continutul directorului curent.
+). S se scrie un pro'ram cu interfat 'rafic care permite afisarea fisierelor
dintr0un director dat si afisarea atri"utelor unui fisier selectat. Componente
o"li'atorii%
0 .!ist pentru lista de fisiere
0 .Te/tField ptr nume director
0 .Te/tField ptr masca de filtrare -foloseste numai caracterul special N/
0 .Te/tField ptr atri"ute fisier selectat
0 .Te/tField pentru criteriul de ordonare
0 .1utton pentru comanda afisrii -dup introducere nume director filtru si ale'ere
criteriu de ordonare/.
@ac un camp text nu contine nimic se consider c nu se filtrea4 sau nu se
ordonea4 lista de fisiere.
++. S se defineasc o clas "9inder" care s caute *ntr0un fisier text toate liniile
care contin un sir dat si s cree4e un dictionar a(1nd drept c.ei numere de linii si
drept (alori c.iar liniile din fisier. Constructor cu ar'ument numele fisierului.
Metode% find -Strin'/ si findTord -Strin' Strin' delim/ -numai cu(inte separate prin
delimitatorii specificati la cutare/. S se scrie un pro'ram cu interfat 'rafic care
permite 'sirea liniilor dintr0un fisier dat care contin un sir dat. Se (a folosi un o"iect
de tip 9inder.
Componente%
0 .!ist cu numerele liniilor 'site si primele +A caractere din linie
0 .Te/tField cu numele fisierului
0 .Te/tField pentru introducerea sirului cutat *n fisier
0 .Te/tField pentru afisarea liniei selectate din lista cu numere de linii
0 .1utton "9ind" pentru cutare *n fisier si afisare pe ecran

You might also like