You are on page 1of 7

1.

8 Caso prctico
Desarrollar un programa utilizando el paradigma orientado a objetos, para controlar una
cuenta bancaria, una cuenta tiene un nmero que lo identifica, y pertenece a una persona al
que se le denomina titular de la cuenta, como es natural una cuenta bancaria tiene un monto
positivo asignado, as como informacin sobre el inters anual.
Es posible realizar depsitos en la cuenta sin ningn lmite obviamente no se puede hacer
depsitos negativos, sin embargo no es posible hacer retiros de la cuenta cuando el monto a
retirar supera el saldo disponible. As mismo el inters generado por el monto depositado en
la cuenta se calcula mensualmente, con la tasa de inters que consigna la cuenta.
La cuenta debe poder emitir una alerta si la cuenta ha llegado a cero, siendo posible
consultar el saldo disponible.
Se debe aperturar dos cuentas bancarias, realizar depsitos, retiros, clculo de los intereses
generados en un mes, consulta de saldos y alertas cuando la cuenta queda sin fondos.

Solucin:
Mediante la abstraccin identificamos la clase sus atributos y mtodos, que permitan
cumplir con los requerimientos antes descritos.
Se considerarn atributos cuyo nivel de visibilidad sern privados: Nmero, titular, saldo e
intersAnual.
Los mtodos a considerar: Los setter y getter sern para poder modificar y leer informacin
de los atributos privados, el mtodo depositar implementar la forma de ingresar montos a
la cuenta, el mtodo retirar para sacar fondos de la cuenta, ingresoInteresMes para
calcular el inters correspondiente a un mes, enRojo para emitir una alerta si la cuenta tiene
o no fondos.

Cuenta.java
Cuenta.java
public class Cuenta {
//Atributos
private long numero;
private String titular;
private float saldo;
private float interesAnual;
//Constructor
public Cuenta(long numero, String titular, float interesAnual) {
this.numero = numero;
this.titular = titular;
this.saldo=0;
this.interesAnual = interesAnual;
}
//Mtodos
//Mtodos para controlar el acceso a los atributos
public float getInteresAnual() {
return interesAnual;
}
public void setInteresAnual(float interesAnual) {

if (interesAnual>0 && interesAnual<=1){ //Si el interes ingresado no es


negativo y mayor al 100%
this.interesAnual = interesAnual;
}
}
public long getNumero() {
return numero;
}
public void setNumero(long numero) {
if (numero>0){ //si el numero de cuenta no es igual a cero o negativo
this.numero = numero;
}
}
public float getSaldo() {
return saldo;
}
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
if (titular.length()>0){ //Si el nombre del titular no es una cadena vacia
this.titular = titular;
}
}
//Mtodos para realizar operaciones
public boolean depositar(float cantidad){
if (cantidad>=0){ //La cantidad de depsito no sea negativa ni cero
this.saldo=this.saldo+cantidad;
return true;
}else{return false;}
}
public boolean retirar(float cantidad){
if(cantidad>0){ //la cantidad a retirar debe ser positiva mayor que cero
if (this.saldo>=cantidad){ //si hay suficiente saldo para realizar el retiro
this.saldo=this.saldo-cantidad;
return true;
}
else
{
return false;
}

}
else
{
return false;
}
}
public void IngresoInteresesMes(){
if (this.saldo>0){ //Se calcula si la cuenta tiene saldo
this.saldo= this.saldo+(this.saldo*this.interesAnual)/12;
}
}
public boolean enRojo(){
return saldo==0;
}
}
Cdigo fuente de la clase PruebaCuenta, que ser nuestra clase de ejecucin
para cumplir con lo requerido.
PruebaCuenta.java
PruebaCuenta.java
public class PruebaCuenta {
public static void main(String[] args) {
//cremos dos objetos de la clase cuenta
Cuenta cuenta1=new Cuenta(123456,"Ivan Mejia Cabrera",0.05f);
Cuenta cuenta2=new Cuenta(623456,"Jos Diaz Diaz",0.10f);
//Realizar depsito a las cuentas
cuenta1.depositar(1500.70f);
cuenta2.depositar(4500.50f);
//Imprimir los datos de las cuentas
System.out.println("Depositando en las cuentas...........");
imprimir(cuenta1);
imprimir(cuenta2);
System.out.println("-----------------------------------------------------------------------");
//Realizar retiro de las cuentas
System.out.println("Retirando de las cuentas 1500.70 y 4000.89...........");
cuenta1.retirar(1500.70f);
cuenta2.retirar(4000.89f);
//Imprimir los datos de las cuentas
imprimir(cuenta1);

imprimir(cuenta2);
System.out.println("-----------------------------------------------------------------------");
//calcular intereses ganados en un mes
System.out.println("Calculando el interes por mes");
cuenta1.IngresoInteresesMes();
cuenta2.IngresoInteresesMes();
//Imprimir los datos de las cuentas
imprimir(cuenta1);
imprimir(cuenta2);
}
public static void imprimir(Cuenta cuenta){
System.out.println("Reporte: ");
System.out.println("Nmero: "+cuenta.getNumero() );
System.out.println("Titular: "+cuenta.getTitular());
System.out.println("Saldo: "+cuenta.getSaldo());
System.out.println("Tasa de inters anual: "+cuenta.getInteresAnual()*100
+"%");
if (cuenta.enRojo())
{System.out.println("Cuenta sin fondos ");}
else
{System.out.println("Cuenta con fondos ");};
}
}
Resultados de la ejecucin:
run:
Depositando en las cuentas...........
Reporte:
Nmero: 123456
Titular: Ivan Mejia Cabrera
Saldo: 1500.7
Tasa de inters anual: 5.0%
Cuenta con fondos

Reporte:
Nmero: 623456
Titular: Jos Diaz Diaz
Saldo: 4500.5
Tasa de inters anual: 10.0%
Cuenta con fondos
----------------------------------------------------------------------Retirando de las cuentas 1500.70 y 4000.89...........
Reporte:
Nmero: 123456
Titular: Ivan Mejia Cabrera
Saldo: 0.0
Tasa de inters anual: 5.0%
Cuenta sin fondos
Reporte:
Nmero: 623456
Titular: Jos Diaz Diaz
Saldo: 499.6101
Tasa de inters anual: 10.0%
Cuenta con fondos
----------------------------------------------------------------------Calculando el inters por mes
Reporte:

Nmero: 123456
Titular: Ivan Mejia Cabrera
Saldo: 0.0
Tasa de inters anual: 5.0%
Cuenta sin fondos
Reporte:
Nmero: 623456
Titular: Jos Daz Daz
Saldo: 503.77353
Tasa de inters anual: 10.0%
Cuenta con fondos
GENERACIN CORRECTA (total time: 0 seconds)

You might also like