AYUDA CON UN EJERCICIO DE JAVA:
Se desea procesar las operaciones bancarias de un cliente a quien se le pide por única vez su nombre y saldo inicial. Luego en un proceso repetitivo se presenta las siguientes opciones:
Depósito, Retiro, Fin. Al ingresar la opción elegida si esta fue ‘D’ se pide si es en efectivo (1) o con cheque (2), se ingresa la cantidad, y si fuese cheque se descuenta el 1% por comisión y se actualiza su saldo mostrándolo en pantalla. Si la opción elegida fue ‘R’ se ingresa la cantidad verificando que ésta sea menor al saldo actualizándolo, de lo contrario dar un mensaje de sobregiro. Si la opción elegida fue ‘F’ mostrar los siguientes resultados:
a. Nombre, Saldo inicial.
b. Saldo final.
c. Número de Depósitos en EFECTIVO y con CHEQUE.
A tener en cuenta:
Debe trabajar con clases, con encapsulación de datos
(Private).
Debe tener por lo menos un constructor
Debe utilizar métodos Getters y Setters según sea el caso
Debe tener métodos para los cálculos
Debe tener un menú de Opciones.
Debe utilizar excepciones Try, Catch Finaly
Respuestas a la pregunta
Programa en java que simula retiros y depósitos del banco. El código tiene métodos, excepciones try-catch, constructores, menú, entre otros. Se adjunta imagen de código y salida por pantalla.
Código java de programa de operaciones bancarias
import java . io . *;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader bufEntrada = new BufferedReader(new InputStreamReader(System . in));
- // Definir e inicializar variables
String nombre, op;
double retiro, saldo, saldoi, deposito;
int tipooper, _contcheque, _contefectivo;
deposito = 0;
saldoi = 0;
saldo = 0;
retiro = 0;
tipooper = 0;
_contefectivo = 0;
_contcheque = 0;
op = "";
nombre = "";
System . out . println("*****Operaciones Bancarias****");
- // Entrada de datos validas con try-catch
System . out . print("Ingrese su nombre: ");
nombre = bufEntrada . readLine();
System . out . print("Ingrese su deposito inicial: ");
do {
try {
saldoi = Double . parseDouble(bufEntrada . readLine());
System . out . println(saldoi);
} catch(NumberFormatException e) {
System . out . println("error de formato, intente de nuevo");
}
} while (saldoi<=0);
saldo = saldoi;
- // Seleccionar acción en en menú
do {
System . out . println("Ingrese Opción");
System . out . println("*************************");
System . out . println("D.- Depósito ");
System . out . println("R.- Retiro ");
System . out . println("F.- Fin");
do {
op = bufEntrada . readLine();
op = op . toLowerCase();
} while (!(!op . equals("d")|!op . equals("r")|!op . equals("f")));
- // menú de deposito
switch (op) {
case "d":
System . out . println("Ingrese Opción");
System . out . println("*************************");
System . out . println("1.- Efectivo ");
System . out . println("2.- Cheque ");
do {
tipooper =Integer . parseInt(bufEntrada . readLine());
} while (!(tipooper==1 || tipooper==2));
if (tipooper==1) {
System . out . print("Ingrese monto del deposito en efectivo: ");
do {
try {
deposito = Double . parseDouble(bufEntrada . readLine());
System . out . println(deposito);
} catch(NumberFormatException e) {
System . out . println("error de formato, intente de nuevo");
}
} while (deposito<=0);
saldo = saldo+deposito;
System . out . println("Su saldo actualizado es: "+saldo);
//Llamada a método contador de efectivo (constructor)
Contador valor = new Contador(0,_contefectivo);
_contefectivo=valor . efectivo(_contefectivo);
} else {
- //Llamada a método depósito (no constructor)
Double _saldo = Fdeposito (saldo) ;
saldo = _saldo;
- //llamada a método Constructor
Contador valor = new Contador(0,_contcheque);
_contcheque=valor . cheque(_contcheque);
}
break;
case "r":
System . out . print("Ingrese monto a retirar: ");
do {
try {
retiro = Double . parseDouble(bufEntrada . readLine());
if (retiro>saldo) {
System . out . println("error, su retiro está sobregirado, su saldo actual es: "+saldo);
}
System . out . println(retiro);
} catch(NumberFormatException e) {
System . out . println("error de formato, intente de nuevo");
}
} while (retiro>saldo);
saldo = saldo-retiro;
System . out . println("Su saldo actualizado es: "+saldo);
break;
case "f":
System . out . println("Nombre clientes: "+nombre);
System . out . println("Saldo Inicial: "+saldoi);
System . out . println("Saldo Final: "+saldo);
System . out . println("Cantidad de depositos en efectivo: "+_contefectivo);
System . out . println("Cantidad de depositos en cheque: "+_contcheque);
break;
}
} while (!op . equals("f"));
}
private static double Fdeposito (double saldo) throws IOException {
BufferedReader bufEntrada = new BufferedReader(new InputStreamReader(System . in));
- // definir variables
double _deposito;
_deposito = 0;
- // Procesar los datos
System . out . print("Ingrese monto del deposito en cheque: ");
do {
_deposito = Double . parseDouble(bufEntrada . readLine());
} while (_deposito<=0);
_deposito = _deposito-(_deposito*0.01);
saldo = saldo+_deposito;
System . out . println("Su saldo actualizado es: "+saldo);
return saldo;
}
}
- // clase constructor
class Contador {
- //contador operaciones deposito en efectivo y cheque
int efectivo;
int cheque;
- //Esto es un constructor para contador
Contador (int e, int c) {
efectivo=e;
cheque=c;
}
- //Retornando valores
int efectivo(int _contefectivo){
return _contefectivo+1;
}
int cheque(int _contcheque){
return _contcheque+1;
}
}
Para saber más acerca del programas en java con clases, constructores, métodos, y excepciones consulte: https://brainly.lat/tarea/14198126, https://brainly.lat/tarea/11932711, y https://brainly.lat/tarea/6370055
#SPJ3