Sunteți pe pagina 1din 6

Problema 1. Gestiune agend telefonic. S se scrie un program care gestioneaz fiele unei agende electronice.

O fi electronic conine informaii despre persoane, precum nume, prenume, adres i numr de telefon. S se scrie o clas Fisa care implementeaz aceste informaii si furnizeaz metode publice prin care se pot obine informaii despre o persoan. Informaiile sunt preluate din fiierul fise.txt cu urmtorul coninut Ionescu !op"#leea rozelor"$%&&'("ionescu.pop)gmail.com !opescu Ion"Strada Sperantei"&'(*+$"pion),a-oo.com .arinescu .arin"Strada Ste/arului"+&%+$0"marin"marinescu),a-oo.com 1lasa Fisa este folosit 2mpreun cu o colecie de obiecte 3reeSet pentru a scrie o clas numit #genda3elefonica care furnizeaz metode ce implementeaz urmtoarele operaii - afiarea fielor 2n ordine alfabetic dup numele persoanelor, - cutarea unei fie dup numele unei persoane, - adugarea unei fie noi, - tergerea unei fie. !rogramul folosete interfee grafice ce permit realizarea operaiilor enumerate mai sus. #stfel, interfaa principal a programului este prezentat 2n figura alaturata. 14nd utilizatorul apas butonul 51reaza fisa noua, se afieaz fereastra 5#dauga o fisa noua 2n care utilizatorul introduce de la tastatur informaiile cerute prenume, nume, adresa i numrul de telefon al persoanei.

6up aceea, utilizatorul apas butonul O7 i programul creaz un obiect Fisa pe care 2l memoreaz 2n colecia de obiecte folosit de program. 8tilizatorul poate 9edea informaii coninut 2ntr:o fi, dac introduce numele i prenumele persoanei cutate i apas ;nter 2n c4mpul de text al ferestrei 51auta o fisa. #ceast fereastr este afiat c4nd utilizatorul apas butonul 51auta fisa a ferestrei principale.

14nd utilizatorul apas butonul 5Sterge fisa a ferestrei principale, programul afieaz interfa grafic 5Sterge o fisa.

14nd utilizatorul apas butonul 5#rata continut agenda telefonica, programul afieaz fereastra 5#genda telefonica.

14nd utilizatorul apas butonul 5Sal9eaza toate fisele, programul descarc elementele coleciei dinamice 2n fiierul fise.txt astfel 2nc4t acesta conine agenda actualizat de fie.

6iagrama claselor programului

public class Fisa implements 1omparable<Fisa=> pri9ate String nume, prenume, adresa, numar3elefon, , adresa;mail? public Fisa@String nume, String prenume, String adresa, String nt, String aeA> t-is.numeBnume? t-is.prenumeBprenume? t-is.adresaBadresa? numar3elefonBnt? adresa;mailBae? C public String getDume@A> return numeEF FEprenume? C public String toString@A>return prenumeEF"FEnumeEF"FEadresaEF"FEnumar3elefonEF"FEadresa;mail? C public int compare3o@Fisa oA> return @numeEF FEprenumeA.compare3o@o.getDume@AA? C C import /a9a.util.G?import /a9a.io.G? import /a9ax.sHing.G? public class AgendaTelefonica> pri9ate 3reeSet<Fisa= ts? pri9ate IufferedJeader br? pri9ate !rintKriter pH? pri9ate String l? pri9ate Fisa fisa? pri9ate static #genda3elefonica instanta? pri9ate #genda3elefonica@A> File fBneH File@Ffise.txtFA? tsBneH 3reeSet<Fisa=@A? StringLM s, sN? String ae? if @f.exists@AA> tr,>

brBneH IufferedJeader@neH FileJeader@fAA? H-ile @@lBbr.readOine@AAPBnullA> sBl.split@F"FA? sNBsL*M.split@F FA? aeBsL0M? if@s.lengt-=$A aeEBF"FEsL$M? fisaBneH Fisa@sNL*M, sNLNM, sLNM, sLQM, aeA? ts.add@fisaA? C Ccatc-@IO;xception ioeA>ioe.printStacR3race@A?C C else S,stem.out.println@FFisierul nu existaFA? C public String getFise@A> String rezBFF? Iterator<Fisa= itBts.iterator@A? H-ile @it.-asDext@AA rezEBit.next@AEFSnF? return rez? C public 9oid adaugaFisa@String nume, String prenume, String adresa, String numar, String aeA> fisaBneH Fisa@nume, prenume, adresa, numar, aeA? if @ts.contains@fisaAA > TOption!ane.s-oH.essage6ialog@null, FFisa electronica exista de/a in agenda telefonicaF, F#lertF, TOption!ane.;JJOJ".;SS#U;A? return? C ts.add@fisaA? TOption!ane.s-oH.essage6ialog@null, F# fost adaugata o noua fisa electronicaF, FInformationF, TOption!ane.IDFOJ.#3IOD".;SS#U;A? C public String cautaFisa@String numeA> for@Fisa f tsA if@nume.eVuals@f.getDume@AAA return f.toString@A? return Fnu exista nicio fisa cu numele FE nume? C public 9oid stergeFisa@String numeA> Iterator<Fisa= itBts.iterator@A? H-ile @it.-asDext@AA > if@nume.eVualsIgnore1ase@it.next@A.getDume@AAA > it.remo9e@A? TOption!ane.s-oH.essage6ialog@null, FFisa a fost stearsa din agenda telefonicaF, FInformationF, TOption!ane.IDFOJ.#3IOD".;SS#U;A? return? C C TOption!ane.s-oH.essage6ialog@null, FFisa nu se gaseste in agenda telefonicaF, F#lertF, TOption!ane.;JJOJ".;SS#U;A? C public 9oid sal9eaza@A> tr,> pHBneH !rintKriter@neH FileKriter@Ffise.txtFAA? for@Fisa f tsA pH.println@fA? pH.close@A? Ccatc-@IO;xception eA>e.printStacR3race@A?C C public static #genda3elefonica getInstanta@A> if @instantaBBnullA instantaBneH #genda3elefonica@A? return instanta? CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class FisaNouaFrame extends Frame> pri9ate Uestor;9enimenteFDF ec? pri9ate 3extField ft, lt, at, tt, aet?

pri9ate Iutton oR, cancel? public FisaDouaFrame@A> super @F#dauga o fisa nouaFA? !anel pBneH !anel@A? p.setOa,out@neH UridOa,out@%,Q,N*,N*AA? p.setIacRground@1olor.lig-tUra,A? p.add@neH Oabel@F!renumeFAA? ftBneH 3extField@N*A? p.add@ftA? p.add@neH Oabel@FDumeFAA? ltBneH 3extField@N*A? p.add@ltA? p.add@neH Oabel@F#dresaFAA? atBneH 3extField@N*A? p.add@atA? p.add@neH Oabel@FDumar telefonFAA? ttBneH 3extField@N*A? p.add@ttA? p.add@neH Oabel@F#dresa e:mailFAA? aetBneH 3extField@N*A? p.add@aetA? add@pA? ecBneH Uestor;9enimenteFDF@A? pBneH !anel@A? oRBneH Iutton@FO7FA? oR.add#ctionOistener@ecA? p.add@oRA? cancelBneH Iutton@F1ancelFA? cancel.add#ctionOistener@ecA? p.add@cancelA? add@p, IorderOa,out.SO83WA? setOocation@0**,0**A? C pri9ate class GestorEvenimenteFNF implements #ctionOistener> pri9ate #genda3elefonica tnb? Uestor;9enimenteFDF@A>tnbB#genda3elefonica.getInstanta@A?C public 9oid action!erformed@#ction;9ent eA> if@e.getSource@ABBoRA > tnb.adaugaFisa@ft.get3ext@A, lt.get3ext@A,at.get3ext@A,tt.get3ext@A, aet.get3ext@AA? FisaDouaFrame.t-is.dispose@A? C else FisaDouaFrame.t-is.dispose@A? C CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class CautaFisaFrame extends Frame> pri9ate Uestor;9enimente1FF ec? pri9ate 3extField t? pri9ate 3ext#rea ta? public 1autaFisaFrame@A> super@F1auta o fisaFA? !anel pBneH !anel@A? p.add@neH Oabel@FIntroduceti nume si prenumeFAA? tBneH 3extField@N*A? ecBneH Uestor;9enimente1FF@A? t.add#ctionOistener@ecA? p.add@tA? add@p, IorderOa,out.DOJ3WA? taBneH 3ext#rea@Q*,%*A? add@taA?

setSize@0**,Q**A? setOocation@0**,0**A? addKindoHOistener@neH KindoH#dapter@A> public 9oid HindoH1losing@KindoH;9ent HeA> 1autaFisaFrame.t-is.dispose@A? CCA? C pri9ate class GestorEvenimenteCFF implements #ctionOistener> pri9ate #genda3elefonica at? Uestor;9enimente1FF@A>atB#genda3elefonica.getInstanta@A?C public 9oid action!erformed@#ction;9ent eA> if @e.getSource@ABBtA> ta.set3ext@at.cautaFisa@t.get3ext@AAA? t.set3ext@FFA? C C CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class StergeFisaFrame extends Frame> pri9ate Uestor;9enimenteFF ec? pri9ate 3extField t? pri9ate Iutton oR, c? public StergeFisaFrame@A> super @FSterge o fisaFA? !anel pBneH !anel@A? p.setIacRground@1olor.lig-tUra,A? p.add@neH Oabel@FIntroduceti nume si prenumeFAA? tBneH 3extField@N*A? p.add@tA? add@pA? pBneH !anel@A? ecBneH Uestor;9enimenteFF@A? oRBneH Iutton@FO7FA? oR.add#ctionOistener@ecA? p.add@oRA? cBneH Iutton@F1ancelFA? c.add#ctionOistener@ecA? p.add@cA? add@p, IorderOa,out.SO83WA? setSize@0**,N**A? setOocation@0**,0**A? C pri9ate class GestorEvenimenteFF implements #ctionOistener> pri9ate #genda3elefonica at? Uestor;9enimenteFF@A> atB#genda3elefonica.getInstanta@A? C public 9oid action!erformed@#ction;9ent eA> if @e.getSource@ABBoRA > at.stergeFisa@t.get3ext@AA? t.set3ext@FFA? C else StergeFisaFrame.t-is.dispose@A? C CC import /a9a.aHt.G? import /a9a.aHt.e9ent.G? public class FiseFrame extends Frame> pri9ate 3ext#rea ta? pri9ate #genda3elefonica at? public FiseFrame@A> super @F#genda telefonicaFA? add@neH Oabel@F3oate fiseleFA, IorderOa,out.DOJ3WA?

taBneH 3ext#rea@Q*,Q**A? atB#genda3elefonica.getInstanta@A? ta.set3ext@at.getFise@AA? ta.set;nabled@falseA? add@taA? setSize@%**,0**A? setOocation@0**,0**A? addKindoHOistener@neH KindoH#dapter@A> public 9oid HindoH1losing@KindoH;9ent HeA> FiseFrame.t-is.dispose@A? CCA? CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class FereastraPrincipala extends Frame> pri9ate Uestor;9enimenteF! ec? pri9ate IuttonLM b? public Fereastra!rincipala@A> super @FIine ati 9enitPFA? !anel pBneH !anel@A? p.setOa,out@neH UridOa,out@0,Q,N*,N*AA? p.setIacRground@1olor.lig-tUra,A? StringLM sBneH StringLM>F1reaza fisa nouaF, F1auta fisaF, FSterge fisaF, F#rata continut agenda telefonicaF, FSal9eaza toate fiseleFC? ecBneH Uestor;9enimenteF!@A? bBneH IuttonL%M? for @int iB*? i<b.lengt-? iEEA> bLiMBneH Iutton@sLiMA? bLiM.add#ctionOistener@ecA? p.add@bLiMA? C add@pA? C pri9ate class GestorEvenimenteFP implements #ctionOistener> pri9ate Frame f? public 9oid action!erformed@#ction;9ent eA> if@e.getSource@ABBbL*MA> fBneH FisaDouaFrame@A? f.pacR@A? f.setXisible@trueA? C else if@e.getSource@ABBbLNMA> fBneH 1autaFisaFrame@A? f.setXisible@trueA? C else if@e.getSource@ABBbLQMA> fBneH StergeFisaFrame@A? f.setXisible@trueA? C else if@e.getSource@ABBbL0MA> fBneH FiseFrame@A? f.setXisible@trueA? C else > #genda3elefonica atB#genda3elefonica.getInstanta@A? at.sal9eaza@A? C C C public static 9oid main@StringLM argsA> Frame HBneH Fereastra!rincipala@A? H.setSize@0&%, N%*A? H.setOocation@0**,0**A? H.setXisible@trueA? H.addKindoHOistener@neH KindoH#dapter@A> public 9oid HindoH1losing@KindoH;9ent eA>S,stem.exit@*A?C CA? C C

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