Está en la página 1de 11

packagebanco;

/**
*
*@authorAngelAl
exanderJi
menez
*/
publi
cclassBanco{

publ
i
cst at
icv oidmain(Stri
ng[ ]ar
gs)
{
Cajerocaj er
o=newCaj ero()
;
try{
cajero.MessageDi alog("
Porfav
orcreaunusuar
io!
!"
);
cajero.I
nici
ar()
;
}catch( NullPoi
nterExcept i
onnpe){
cajero.MessageDi alog("
HastaPront
o!!
")
;
}

/
/--
--
-Test
ingparaveri
fi
carlassali
dasqueesper o( Debuggi ng)-
---
--
--
--
---
-
f
or(Cuentacuent
a: caj
ero.getCuentas()
){
if(
cuenta!=null
){
Syst
em.out.pr
int
ln("NumeroCuent a:");
Syst
em.out.pr
int
ln(cuenta.
getNumer oCuenta(
));
Syst
em.out.pr
int
ln("Dat
osPr opietario:")
;
Syst
em.out.pr
int
ln(cuenta.
getPropi etari
o().
getNombr e()
);
Syst
em.out.pr
int
ln(cuenta.
getPropi etari
o().
getApell
i
do( )
);
Syst
em.out.pr
int
ln(cuenta.
getPropi etari
o().
getCedula()
);
Syst
em.out.pr
int
ln(cuenta.
getPropi etari
o().
getCl
ave());
Syst
em.out.pr
int
ln(cuenta.
getPropi etari
o().
getDi
reccion()
);
Syst
em.out.pr
int
ln("Dat
osCuent a:"
);
Syst
em.out.pr
int
ln(cuenta.
ti
poCuent a());
Syst
em.out.pr
int
ln(cuenta.
descripci on()
);
Syst
em.out.pr
int
ln(cuenta.
getSaldo( ));
}
}
}
}

===================================================================1===

packagebanco;

i
mpor
tjav
ax.
swi
ng.
JOpt
ionPane;

/**
*
*@authorAngelAl
exanderJi
menez
*/
publi
ccl
assCajer
o{

pr
ivat
ebooleannoEsValido;
pr
ivat
efinalPropi
etar
iocli
entes[
];
pr
ivat
efinalCuentacuentas[
];
pr
ivat
eintactual;
publi
cCaj ero(){
cli
entes=newPr opi
etario[
5];
cuentas=newCuent a[5];
actual=0;
}
/
/--
--
--
--
--
--
---
--
--
---
---
--
--
--
--
--
--
--
--
--
---
--
--
---
--
--Get
ter
s--
--
--
--
--
--
publi
cPr opietar
io[
]getCl
ientes(){
ret
urncl i
entes;
}

publi
cCuent a[]get Cuent as(){
ret
urncuent as;
}
/
/--
--
--
--
--
--
---
--
---
--
--
--
---
----
---
---
---
--
---
---
---
---
--
--
---
--
--
---
----
--
--
publi
cv oidIni
ciar (
){ //
Funci onr ecursi
va.(sel l
amaasi misma)
switch(Menu( )){
case1:
try{
Regi str
ar();
}cat ch( NullPointerExceptionnpe){
MessageDi alog( "
RegistroCancel ado!!"
);
}
Iniciar();
break;
case2:
try{
Eligi
rCuent aPar aOperar(subMenu(
"Escogasut i
podecuent a:\
n"
+"1) CuentaCor riente\n"
+"2) CuentaAhor ro\n")
);
}cat ch( NullPointerExceptionnpe){
MessageDi alog( "
ProcesoFi nal
izado!!
");
}
Iniciar();
break;
case3:

Ini
ciar
();
break;
case4:
MessageDial
og(
"Si
stemaCer
rado.
")
;
break;
default
:
}
}
/
/--
--
--
--
--
--
--
--
--
--
--
--
--
---
--
---
--
---
--
----
--
---
--
--
--
--
--
--
--
--
--
--
---
--
--
-
publi
cvoidEli
girCuentaPar aOperar(
intt
ipoCuenta){
i
f(ti
poCuenta==Cuent a.
AHORRO){
Reali
zar Operacion(subMenu(
"Ti
podeTr ansaccion:
\n"
+"1)Deposi to\n"
+"2)Ret i
ro\n"),
ti
poCuent a
);
}el
seif(t
ipoCuent a==Cuent a.
CORRI ENTE){
Real
i
zarOperacion(subMenu(
"Ti
podeTr ansacci
on:
\n"
+"
1)Deposito\n"
+"
2)Reti
ro\n"),
ti
poCuenta
);
}
}
/
/--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
---
--
--
--
--
---
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
pri
vatevoi
dRealizarOperaci
on(i
ntti
poOperacion,
i
ntt
ipoDeCuent
a){

St
ri
ngcedulaPropietar
io=Stri
ng.val
ueOf (
InputDialogForNumbersOnly
("int
roducecedul
adel pr
opiet
ari
o")
);
St
ri
ngcl
av ePropietar
io=Input
Dialog(
"Ingresecl
avedelusuari
o")
;

if(Verif
icarCuenta(cedul aPr opi
et ario, clav ePr opietario)){
if(t
ipoDeCuent a==cuent as[act ual ].
get Ti poCuent a( )
){
i
f(ti
poOper aci on==Cuent a.DEPOSI TO){
while(cuent as[actual ]
.deposi tar (I
nteger .parseInt(
Input DialogFor Number sOnl y("i
ngr eseel montoaDepositar")
)))
{
MessageDi alog( "
El Mont o super a el mont o maxi mo:
"
+Cuenta.MONTO_ MAXIMO) ;
}
}el
se{
while(cuent as[actual ]
.ret i
rar (
Int eger.parseI nt(
Input DialogFor Number sOnl y("i
ngr eseel montoaRet i
rar
"))
)){
MessageDi alog( "
Sal doI nsuf ici
ent eenl acuentaparaestemont o"
);
}
}
}else{
MessageDi alog( "Transacci onCancel ada!!\n"
+" SuOpci onf ue: "+(tipoDeCuent a)+"\n"
+" ysucuent aest ipo: "
+( cuentas[ act ual].tipoCuent a()));
}
}el
se{
MessageDi alog(" Transacci onCancel ada! !
\n"
+" Usuar i
ooCl aveI ncor rect !
!o");
}
}
//elstr
ingqueser ecibecomousuar ioesl acedul a..
priv
atebool eanVer if
icarCuent a(Str
ingusuar io, St ri
ngcl ave){
for(inti=0; i<cuent as.lengt h;i++){
if(cuentas[i
].getPr opi etari
o( ).
get Cedul a( ).
equal s(usuar i
o)
&&cuent as[i].
getPr opiet ario() .
get Clave().equals(cl
ave)
){
actual=i;
noEsValido=t rue;
break;
}else{
MessageDi alog( "estepr opi etarionoexi ste!!");
noEsValido=f alse;
}
}
returnnoEsVal i
do;
}
/
/--
--
--
--
--
---
--
---
---
--
---
---
--
--
--
--
---
---
------
---
---
---
--
-----
---
------
----
publ
i
cv oi
dRegistr
ar(
){
if(
actual>=0&&actual<5){
Str
ingnombre=Input
Dial
ogFor
Let
ter
sOnl
y("
Int
roducet
unombre:
");
Str
ingapel
li
do=Input
Dial
ogFor
Let
ter
sOnl
y("
Int
roducet
uapel
l
ido:"
);

St
ri
ngcedula;
do{
cedul
a=St r
ing.
val
ueOf
(I
nput
Dial
ogFor
Number
sOnl
y("
Int
roducet
ucedul
a:"
));

i
f(cedul
a.l
ength()>8||
cedula.
lengt
h()<8){
MessageDial
og(
"Laceduladebetener8di
git
os!
!"
);
}

}whi
l
e(cedul
a.l
engt
h()>8|
|cedul
a.l
engt
h()<8)
;

St
ri
ngdi
reci
on=Input
Dial
ogFor
Let
ter
sOnl
y("
Int
roducet
udi
recci
on:
");
St
ri
ngi
ntent
o_cl
ave1;
St
ri
ngi
ntent
o_cl
ave2;

do{
i
ntent
o_cl
ave1=I
nput
Dial
og(
"Confi
gurat
uClave:
");
i
ntent
o_cl
ave2=I
nput
Dial
og(
"repi
tasuCl
ave:"
);

i
f(!
(i
ntent
o_cl
ave1.
equals(i
ntent
o_cl
ave2))
){
MessageDial
og("
lasclavesnocoinci
den!!
")
;
}el
se{
MessageDial
og("
clavesconfi
rmadas!!
")
;
}

}whi
l
e(!
(i
ntent
o_cl
ave1.
equal
s(i
ntent
o_cl
ave2)
));

cl
ient
es[
actual
]=newPropiet
ari
o(
nombre,
apel
l
ido,cedul
a,di
reci
on,
int
ent
o_cl
ave1
);

if(
subMenu("
Escogasut ipodecuent a:\
n"
+"1)
Cuent aCorr
iente\n"
+"2)
Cuent aAhorro\n"
)==Cuent a.CORRIENTE)
{
cuent
as[
actual
]=newc_ Corr
iente(
Gener ar
Numer oCuent a(
),
Cuent a.
SALDO_ APERTURA,
Cuent a.
CORRIENTE,
cli
entes[act
ual]
);
}else{
cuent
as[
actual
]=newc_ Ahorro(
Gener ar
Numer oCuent a(
),
Cuent a.
SALDO_ APERTURA,
Cuent a.
AHORRO,
cli
entes[act
ual]
);
}
actual
++;
}el
se{
MessageDial
og("y
anoseadmi tenmasr egi
str
os")
;
}
}
/
/--
metodopar agener arel numer odecuent aal eator i
ament eyy aformat eado--
--
--
/
/--
estoenunsi stemabancar ior eal noesasi exact ament eesmaspar ailust
rar-
pri
vateStringGener arNumer oCuent a(){
ret
urnGener ar Numer o()+" -
"
+Gener arNumer o()+" -"
+Gener arNumer o()+" -"
+Gener arNumer o()+" -"
+Gener arNumer o();
}
/
/--
metodogener adordenumer oal eat oriospar alascuent as--
--
---
--
--
--
--
---
---
-
pri
vateintGener arNumer o( ){
ret
urn( 1+( i
nt )(Mat h.random( )*10000) );
}
/
/--
--
--
--
--
--
---
--
--
--
---
--
--
---
-----
----
--
--
---
----
----
Menuconv ali
dacion- ---
pri
vateintMenu( ){
i
ntOpci on;
Stri
ngmsj =" Caj eroAut omat ico: I
teracion: "+( act ual+1)+" \n"
+"1) Regi str
ar \n"
+"2) Transaci ones\ n"
+"3) Vercuent as\ n"
+"4) Sal i
r\n";
do{
tr
y{
do{
Opci on=I nteger .parseInt(InputDi alogFor Number sOnly(
msj));
i
f( Opcion<1| |Opci on>4){
MessageDi alog( "SoloPuedeEscogerent r
e1y4! !
")
;
}
}whi le( Opcion<1| | Opci on>4) ;
}catch( Number For mat Except ione){
MessageDi alog( "
Inf o.Tecni cadel Error: \n"+e.getMessage( )
);
Opci on=0;
}
}while(Opcion==0) ;
ret
urnOpci on;
}
/
/--
--
--
--
--
--
---
--
--
--
---
--
--
---
-----
----
--
--
---
----
-Submenuconv ali
daci on- -
--
pri
vateintsubMenu( Stri
ngmsj ){
i
ntOpci on;
do{
tr
y{
do{
Opci on=I nteger .parseInt(InputDi alogFor Number sOnly(
msj));
i
f( Opcion<1| |Opci on>2){
MessageDi alog( "SoloPuedeEscogerent r
e1y3! !
")
;
}
}whi le( Opcion<1| | Opci on>2) ;
}catch( Number For mat Except ione){
MessageDi alog( "
Inf o.Tecni cadel Error: \n"+e.getMessage( )
);
Opci on=0;
}
}while(Opcion==0) ;
ret
urnOpci on;
}
//-
--
--
---
--
--
---
--
---
--
---
---
---
---
------
---
-inputdi alogpar asol oletr
as--
--
pri
vateStringInput DialogFor Let tersOnl y(Stri
ngt itulo){
Stri
ngOnl yLetter;
char[
]letter
s;
do{
noEsVal i
do=t rue;
OnlyLetter=I nput Dialog( ti
tul o) ;
l
et t
ers=Onl yLet ter.toChar Ar ray ();
for(i
nti =0; i<l etters.lengt h; i++){
if(Char act er.i
sDi git(let ters[ i]
)){
MessageDi alog( "Er ror !!Elcamponoadmi teNumeros"
);
noEsVal ido=t rue;
break;
}else{
noEsVal ido=f alse;
}
}
}while(noEsVal ido) ;
ret
urnOnl yLetter;
}
/
/--
--
--
--
--
--
---
--
--
---
--
---
--
--
----
---
--
-------
---
-Inputpar asol onumer os---
-
pri
vateStringInput DialogFor Number sOnl y(
St ri
ngt i
tulo){
Stri
ngOnl yNumber s;
char[
]number s;
do{
noEsVal i
do=t rue;
OnlyNumber s=I nput Dial og( titulo);
number s=Onl y Number s.toChar Array();
for(i
nti =0; i<number s.lengt h; i++){
if(Char act er.i
sAl phabet ic( number s[i
])){
MessageDi alog( "Er ror !!Est acamponoadmi tel
etr
as")
;
noEsVal ido=t rue;
break;
}else{
noEsVal ido=f alse;
}
}
}while(noEsVal ido) ;
ret
urnOnl yNumber s;
}
/
/--
--
--
--
--
--
---
--
--
---
--
---
--
--
----
---
--
-------
---
-mi spr opi osdi alogos- --
--
--
publi
cv oi
dMessageDi al og( Stringt itulo){
JOptionPane. showMessageDi alog( null,ti
tulo);
}

publ
i
cStri
ngInputDi
alog(St
ri
ngt i
tul
o){
ret
urnJOpti
onPane.showInputDi
alog(
nul
l
,ti
tul
o);
}

publ
i
cintConf
ir
mDi al
og(
Stri
ngt
itul
o){
ret
urnJOpt
ionPane.
showConfi
rmDial
og(
nul
l
,ti
tul
o);
}
}

===================================================================2===
packagebanco;

/**
*
*@authorUsuar i
oAngel Al
exanderJi
menez
*/
publi
cclassPropiet
ar i
o{
pr
ivateSt
ringnombr e;
pr
ivateSt
ringapelli
do;
pr
ivateSt
ringcedula;
pr
ivateSt
ringdirecci
on;
pr
ivateSt
ringclave;

publ
i
cPr
opi
etar
io(
){}
//const
ruct
orv
aci
o

publ
i
cPr opietario(/
/const
ruct
orconpar
amet
ros
Str
ingnombr e,
Str
ingapel l
ido,
Str
ingcedul a,
Str
ingdi reccion,
Str
ingcl ave
){
thi
s.nombr e=nombr e;
thi
s.apelli
do=apel li
do;
thi
s.cedul a=cedula;
thi
s.dir
ecci on=di r
ecci
on;
thi
s.cl
av e=cl ave;
}

publ
i
cStri
nggetNombr
e(){
ret
urnnombre;
}

publ
i
cv oidset
Nombre(
Stri
ngnombr
e){
thi
s.nombre=nombre;
}

publ
i
cStri
nggetApel
li
do(
){
ret
urnapel
l
ido;
}

publ
i
cv oidset
Apel
l
ido(
Stri
ngapel
l
ido){
thi
s.apel
li
do=apel
li
do;
}

publ
i
cStri
nggetCedul
a(){
ret
urncedul
a;
}

publ
i
cv oidset
Cedul
a(Str
ingcedul
a){
thi
s.cedul
a=cedula;
}

publ
i
cSt
ri
ngget
Dir
ecci
on(
){
r
etur
ndi
recci
on;
}

publ
i
cv oidsetDir
ecci
on(St
ri
ngdi
recci
on){
thi
s.dir
eccion=dir
ecci
on;
}

publ
i
cStri
nggetCl
ave(
){
ret
urncl
ave;
}

publ
i
cv oidsetCl
ave(
Str
ingcl
ave){
thi
s.clav
e=clave;
}
}

===================================================================3===

packagebanco;

/**
*
*@authorAngelAl
exanderJi
menez
*/
publi
cabst
ractcl
assCuenta{

//vari
abl
esconst
antedeclase
publi
cstat
icf
inal
intMONTO_ MAXIMO=10000;
publi
cstat
icf
inal
doubleSALDO_APERTURA=100;
publi
cstat
icf
inal
intCORRIENTE=1;
publi
cstat
icf
inal
intAHORRO=2;
publi
cstat
icf
inal
intDEPOSITO=1;
publi
cstat
icf
inal
intRETI
RO=2;

//var
iablesmiembr o
pri
vat
eSt ri
ngnumer oCuenta;
pri
vat
edoubl esaldo;
pri
vat
ei ntti
poCuenta;
pri
vat
ePr opiet
ari
opr opi
etar
io;

//const
ruct
orsinpar
amet
ros
publi
cCuenta(
){}

//
contructorconpar amet ros
publ
i
cCuent a(
Stringnumer oCuent a,
doubl esal do,
inttipoCuent a,
Propi etari
opr opietari
o
){
this.numer oCuent a=numer oCuent
a;
this.saldo=sal do;
this.ti
poCuent a=tipoCuent a;
this.propietar
io=pr opiet
ario;
}

//
metodosgett
ersysett
ers
publ
i
cStri
nggetNumeroCuent
a(){
ret
urnnumeroCuent
a;
}

publ
i
cv oidset
Numer oCuent
a(St
ri
ngnumeroCuent
a){
thi
s.numeroCuenta=numeroCuent
a;
}

publ
i
cdoubleget
Sal
do(
){
ret
urnsal
do;
}

publ
i
cv oidset
Sal
do(doubl
esal
do){
thi
s.sal
do=saldo;
}

publ
i
cPr opi
etar
iogetPr
opi
etar
io(
){
ret
urnpropiet
ari
o;
}

publ
i
cv oidset
Pr opi
etar
io(Propiet
ari
opr
opi
etar
io){
thi
s.propi
etari
o=pr opietar
io;
}

publ
i
cintget
TipoCuenta(
){
ret
urnti
poCuenta;
}

publ
i
cSt r
ingti
poCuenta()
{
if
(ti
poCuenta==Cuenta.
AHORRO)
ret
urn"AHORRO" ;
else
ret
urn"CORRIENTE";
}

publ
i
cv oi
dsetTipoCuent
a(i
ntti
poCuent
a){
thi
s.t
ipoCuenta=ti
poCuenta;
}

//
metodoabst
ract
odeposito,r
eti
roydescr
ipci
on
publ
i
cabstr
actbooleandeposi
tar
(doubl
emontoDeposi
to)
;
publ
i
cabstr
actbooleanret
ir
ar(
doublemont
oRetir
o);
publ
i
cabstr
actStr
ingdescri
pci
on();
}

===================================================================4===

packagebanco;

/
**
*
*@authorAngel
AlexanderJi
menez
*/
publ
iccl
assc_Corr
ient
eextendsCuent
a{

publ
i
cc_ Corri
ent e(
Stri
ngnumer oCuenta,
doublesal do,
intt
ipoCuent a,
Propietar
iopr opi
etar
io
){
super(
numer oCuenta,
saldo,
ti
poCuent a,
propietar i
o
);
}

@Overri
de
publ
i
cbool eandepositar
(doublemont oDeposi
to){
if
(mont oDeposit
o<=0||montoDeposit
o>Cuenta.
MONTO_ MAXIMO)
retur
ntrue;
else{
thi
s.set
Saldo((t
his.get
Saldo(
)+montoDeposit
o)-
(get
Sal
do()
*0.
05)
);
retur
nfalse;
}
}

@Overri
de
publ
i
cbool eanreti
rar
(doublemont oReti
ro){
if
(mont oRet
iro>t
his.getSal
do()
){
retur
ntrue;
}el
se{
thi
s.set
Saldo(this.
getSal
do()
-montoRet
ir
o);
retur
nfalse;
}
}

@Overr
ide
publ
i
cSt r
ingdescri
pci
on(){
ret
urn"elti
podecuentadecorr
ient
eti
eneunadeducci
on5%\
n"
+"porcadatr
ansacci
ondedeposi
toquereal
i
ce."
;
}
}

===================================================================5===

packagebanco;

/**
*
*@authorAngelAl
exanderJi
menez
*/
publi
ccl
assc_Ahorr
oextendsCuent
a{
publ
i
cc_ Ahorro(
Stri
ngnumer oCuenta,
doublesal do,
intt
ipoCuent a,
Propietar
iopr opi
etar
io
){
super(
numer oCuent
a,
saldo,
ti
poCuent a,
propietari
o
);
}

@Overri
de
publ
i
cbool eandepositar(
doublemont oDeposi
to){
if
(mont oDeposit
o<=0||
mont oDeposit
o>Cuenta.
MONTO_MAXIMO)
retur
ntrue;
else{
thi
s.set
Saldo(thi
s.get
Saldo(
)+(montoDeposit
o+(
get
Sal
do()
*0.
10)
));
retur
nfalse;
}
}

@Overri
de
publ
i
cbool eanreti
rar
(doublemont oReti
ro){
if
(mont oRet
iro>t
his.getSal
do()
){
retur
ntrue;
}el
se{
thi
s.set
Saldo(this.
getSal
do()
-montoRet
ir
o);
retur
nfalse;
}
}

@Overr
ide
publ
i
cSt r
ingdescri
pci
on(){
ret
urn"Elti
podecuentadeahor
roti
eneelbenef
ici
odeun10%inter
es\n"
+"porcadatr
ansacci
ondedeposi
toqueelpr
opi
etar
ior
eal
ice.
";
}
}

También podría gustarte