Java - problema con un ejercicio

 
Vista:
sin imagen de perfil

problema con un ejercicio

Publicado por Angel (3 intervenciones) el 04/03/2023 01:55:59
Hola buenas, tengo un problema con un ejercicio que necito hacer para un trabajo importante, espero me puedan ayudar, el ejercicio es el siguiente.

Un banco necesita crear una aplicación en java utilizando Programación Orientada a Objetos y que contenga lo siguiente:
Deberá solicitar el nombre del usuario, su número de cuenta y su contraseña.
Si la contraseña es incorrecta deberá saltar una alerta y solicitarla de nuevo hasta que sea correcta.
En caso de que la contraseña sea correcta debe de mostrar el estado de la cuenta; Nombre, No. Cuenta, Saldo.
El saldo inicial debe estar en 1,000
Desplegar un menú donde de la opción de Deposito o Retiro.
Opción "Deposito" mostrar el nuevo saldo.
Opción "Retiro" si el monto retirado es mayor a 1,000, deberá saltar una alerta que indique que ese monto no es posible retirarlo.
En caso de que sea menor o igual a 1,000 deberá de mostrar el saldo actual.
Al realizar el código debe de implementarse el uso de atributos y métodos (POO)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

problema con un ejercicio

Publicado por Kabuto (1381 intervenciones) el 04/03/2023 12:41:40
Hola.

Lo primero que necesitas es una clase Cuenta con los atributos necesarios para realizar las operaciones que se solicitan.
Así que como mínimo, una Cuenta debería tener nombre(de usuario), número de cuenta, contraseña y saldo.

Además de los getters/setters, necesitaremos tres métodos más: uno para depositar saldo, otro para retirar y otro que muestre los datos y estado de la cuenta.
Los métodos para depositar y retirar han de recibir como argumento el "monto" con el que se quiere operar. Para poder retirar, hay que comprobar si hay saldo suficiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
public class Cuenta {
 
	private String nombre;
	private String numCuenta;
	private String password;
	private double saldo;
 
	public Cuenta(String nombre, String numCuenta, String password) {
		this.nombre = nombre;
		this.numCuenta = numCuenta;
		this.password = password;
		saldo = 1000; //Saldo inicial
	}
 
	public String getNombre() {
		return nombre;
	}
 
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
 
	public String getNumCuenta() {
		return numCuenta;
	}
 
	public void setNumCuenta(String numCuenta) {
		this.numCuenta = numCuenta;
	}
 
	public String getPassword() {
		return password;
	}
 
	public void setPassword(String password) {
		this.password = password;
	}
 
	public double getSaldo() {
		return saldo;
	}
 
	public void setSaldo(double saldo) {
		this.saldo = saldo;
	}
 
	public void mostrarEstado() {
		System.out.println("\n\t********");
		System.out.println("Nombre: " + nombre);
		System.out.println("Num. Cuenta: " + numCuenta);
		System.out.printf("Saldo: %.2f\n", saldo);
		System.out.println("\t********\n");
	}
 
	public void depositar(double monto) {
		saldo += monto;
		System.out.printf("Nuevo saldo: %.2f\n", saldo);
	}
 
	public void retirar(double monto) {
		if (monto > saldo)
			System.out.println("No hay saldo suficiente");
		else {
			saldo -= monto;
			System.out.printf("Nuevo saldo: %.2f\n", saldo);
		}
	}
}

Con esto, ya podemos escribir una clase principal para operar con una Cuenta.

El enunciado nos dice que pidamos tres datos para identificar al cliente, el nombre, el número y la contraseña. Sin embargo, luego nos dice que solo comprobemos si la contraseña es correcta.
Esto me parece un poco raro, así que yo he optado por hacer una comprobación secuencial de los tres datos, es decir, primero me ha de dar un nombre correcto, cuando lo tenga le pediré una cuenta correcta y ya entonces le pediré la contraseña.

Cuando tengamos los tres datos validados, tras imprimir los datos de la cuenta en pantalla, muestro un menú donde puede hacer depósitos o retiros hasta que elija terminar el programa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.util.Scanner;
 
public class MenuCuenta {
 
	private static Cuenta cuenta = new Cuenta("Felipe", "41108220", "calcetin");
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
		boolean validar = false;
 
		//Bucle para validar datos del usuario
		do {
			System.out.println("\n\t\tVALIDACION DE USUARIO");
			System.out.print("Nombre Usuario: ");
			String nombre = teclado.nextLine();
			if (nombre.equals(cuenta.getNombre())) {
				System.out.print("Num. Cuenta: ");
				String nCuenta = teclado.nextLine();
				if (nCuenta.equals(cuenta.getNumCuenta())) {
					System.out.print("Contraseña: ");
					String password = teclado.nextLine();
					if (password.equals(cuenta.getPassword()))
						validar = true;
					else
						System.out.println("Contraseña no coincide");
				}
				else //Cuenta no coincide
					System.out.println("Cuenta inexistente");
			}
			else //Nombre no coincide
				System.out.println("Usuario no registrado");
 
		}while(!validar);
 
		//Usuario validado, mostramos estado cuenta
		cuenta.mostrarEstado();
 
		//Menu opciones
		int opcion = 0;
		do {
			System.out.println("\n\t\tMENU CUENTA");
			System.out.println("(1) --- Deposito");
			System.out.println("(2) --- Retiro");
			System.out.println("(3) --- SALIR");
			System.out.print("Opcion: ");
			opcion = Integer.parseInt(teclado.nextLine());
 
			switch(opcion) {
			case 1:
				System.out.println("\n\tDEPOSITAR");
				System.out.print("Indique monto: ");
				double deposito = Double.parseDouble(teclado.nextLine());
				cuenta.depositar(deposito);
				break;
			case 2:
				System.out.println("\n\tRETIRAR");
				System.out.print("Indique monto: ");
				double retiro = Double.parseDouble(teclado.nextLine());
				cuenta.retirar(retiro);
				break;
			case 3:
				System.out.println("\n\t\tFIN DE PROGRAMA");
				break;
			default:
				break;
			}
 
		}while(opcion != 3);
 
		teclado.close();
 
	}
 
}


Y con esto ya estaría.
Si algo no se entiende o tienes alguna duda, solo has de preguntar.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

problema con un ejercicio

Publicado por Angel (3 intervenciones) el 06/03/2023 08:25:54
MUCHÍSIMAS GRACIAS, TE LO AGRADEZCO MUCHÍSIMO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar