Saludos a todos!
En la Universidad me mandaron un ejercicio de Java que no he logrado hacer funcionar como se debe. Es el típico ejercicio de la cuenta bancaria, y por más que he buscado en Internet no consigo un ejercicio parecido al que me tocó (todos son o mas complicados o más sencillos).
El ejercicio va asi:
>> Hay una clase Cuenta que tiene los atributos:
tipoCuenta (puede ser ahorro, corriente),
titular y
saldo y sus respectivos setters/getters.
>> Hay una clase Util donde se realizará la parte lógica del programa. Se mostrará un menú de opciones (1 para Crear Cuenta, 2 para Depositar, 3 para Retirar, 4 para Mostrar Saldo y 5 para Salir). Adicionalmente los métodos de
Depósito y
Retiro deben estar en esta clase.
>> Una clase Principial con el main.
Mis dudas son las siguientes:
1) Estan pidiendo que almacene las cuentas en un arreglo de cuentas (arregloCuentas), creo que eso lo hice bien en teoría. El problema es que piden que los métodos de retiro y depósito estén en Util y no en Cuenta (En mi ejercicio los tengo en Cuenta), pero ¿Cómo hago para llamar a esos métodos cuando estan en Util? Porque si hago arregloCuenta[id].getSaldo() estando los métodos en Util no me corre y da error.
2) De la manera en que hice el programa, el programa crea un objeto de la clase Cuenta y lo guarda en el índice ID de arregloCUentas. Hay alguna manera de acceder a un objeto de dicho arreglo sin ID?
Acá les dejo mi código tal como está. Así funciona, pero me estan pidiendo que pase los métodos depósito y retiro a la clase Util, y ahi se vuelve un ocho todo!
public class Principal {
public static void main(String[] args) {
Util u = new Util();
u.menu();
}
}
public class Cuenta {
private String tipoCuenta;
private String titular;
private double saldo;
public Cuenta(String tipoCuenta, String titular, double saldo) {
this.tipoCuenta = tipoCuenta;
this.titular = titular;
this.saldo = saldo;
}
public String getTipoCuenta() {
return tipoCuenta;
}
public String getTitular() {
return titular;
}
public void setTitular(String titular) {
this.titular = titular;
}
public void setTipoCuenta(String tipo) {
this.tipoCuenta = tipo;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public void retiro(double monto) {
this.saldo = saldo - monto;
}
public void deposito(double monto) {
this.saldo = saldo + monto;
}
}
import java.util.Scanner;
public class Util {
Scanner input = new Scanner(System.in);
String opcion;
Cuenta[] arregloCuenta = new Cuenta[20];
boolean salir = false;
public void menu() {
do {
System.out.println("1 para Crear Cuenta.\n2 para Retiro.\n3 para Deposito.\n4 para mostrar Saldo\n5 para Salir");
opcion = input.next();
switch (opcion) {
case "1":
System.out.println("Introduzca un ID de cuenta: ");
int id = input.nextInt();
System.out.println("Introduzca tipo de cuenta: ");
String tipoCuenta = input.next();
System.out.println("Introduzca nombre del titular: ");
String titular = input.next();
System.out.println("Introduzca saldo: ");
double saldo = input.nextDouble();
Cuenta nuevaCuenta = new Cuenta(tipoCuenta, titular, saldo);
arregloCuenta[id] = nuevaCuenta;
break;
case "2":
System.out.println("Introduzca ID de cuenta: ");
id = input.nextInt();
System.out.println("Introduzca cantidad a retirar: ");
double retiro = input.nextDouble();
arregloCuenta[id].retiro(retiro);
System.out.println("Retiró de la cuenta: " + retiro + ".\nEl nuevo saldo es de: " + arregloCuenta[id].getSaldo());
break;
case "3":
System.out.println("Introduzca numero de cuenta: ");
id = input.nextInt();
System.out.println("Introduzca cantidad a depositar: ");
double deposito = input.nextDouble();
arregloCuenta[id].deposito(deposito);
System.out.println("Depositó a la cuenta: " + deposito + ".\nEl nuevo saldo es de: " + arregloCuenta[id].getSaldo());
break;
case "4":
System.out.println("Introduzca numero de cuenta: ");
id = input.nextInt();
System.out.println("Introduzca cantidad a depositar: ");
System.out.println(arregloCuenta[id].getSaldo());
break;
case "5":
salir = true;
break;
}
} while (salir == false);
}
}
Espero me puedan ayudar! Llevo desde el Jueves dándole duro y leyendo y consultando pero nada!
Mil Gracias por tomarse su tiempo en leer mi post!