Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

Cajero automatico

import java.util.Scanner;

public class Desafio {

public static void main(String[] args) {
    String Nombre = "daniel gonzalez";
    String tipoDeCuenta = "corriente";
    double saldo = 150000.99;
    int opcion = 0;
    System.out.println("**************************");
    System.out.println("\n Nombre del cliente: " + Nombre);
    System.out.println("El tipo de cuenta es: " + tipoDeCuenta);
    System.out.println("Su saldo es: " + "$" + saldo);
    System.out.println("**************************");

    String Menu = """
            ***Escriba el numero de la opcion que desea realizar*** 
            1. - consultar saldo
            2. - retirar dinero
            3. - depositar dinero
            9. - salir
            """;
    Scanner teclado = new Scanner(System.in);
    while (opcion != 9){
        System.out.println(Menu);
        opcion = teclado.nextInt();

        switch (opcion){
            case 1:
                System.out.println("Su saldo es: " + "$" + saldo);
                break;
            case 2:
                System.out.println("Cuanto dinero desea retirar?");
                double dineroRetirar = teclado.nextDouble();
                if (dineroRetirar > saldo){
                    System.out.println("No tiene suficiente saldo");
                } else {
                    saldo -= dineroRetirar;
                    System.out.println("Su nuevo saldo es: " + "$" + saldo);
                }
                break;
            case 3:
                System.out.println("Cuanto dinero desea depositar?");
                double dineroDepositar = teclado.nextDouble();
                saldo += dineroDepositar;
                System.out.println("Su nuevo saldo es: " + "$" + saldo);
                break;
            case 9:
                System.out.println("Gracias por usar el cajero automatico");
                break;
            default:
                System.out.println("Opcion no valida");
                break;
        }
    }
}

}

4 respuestas

Inventario de vehiculos import java.util.HashMap; import java.util.Map; import java.util.Scanner;

public class Inventario { public static void main(String[] args) { Map<Integer, String> vehiculos = new HashMap<>(); Map<Integer, Integer> precios = new HashMap<>(); vehiculos.put(1, "Tesla - Autonomía: 400 km, Carga rápida: Sí"); precios.put(1, 50000); vehiculos.put(2, "Nissan - Autonomía: 300 km, Carga rápida: No"); precios.put(2, 40000); vehiculos.put(3, "BMW - Autonomía: 350 km, Carga rápida: Sí"); precios.put(3, 60000); vehiculos.put(4, "Chevrolet - Autonomía: 280 km, Carga rápida: No"); precios.put(4, 35000); vehiculos.put(5, "Toyota - Motor: 2.0L, Consumo: 15 km/L"); precios.put(5, 30000); vehiculos.put(6, "Ford - Motor: 1.8L, Consumo: 14 km/L"); precios.put(6, 25000); vehiculos.put(7, "Honda - Motor: 2.2L, Consumo: 16 km/L"); precios.put(7, 28000); vehiculos.put(8, "Volkswagen - Motor: 1.6L, Consumo: 13 km/L"); precios.put(8, 32000);

    Scanner scanner = new Scanner(System.in);
    int total = 0;

    System.out.println("¡Bienvenido a tu primera compra de vehículo!");
    while (true) {
        System.out.println("Seleccione de la lista qué referencia desea comprar:");
        for (Map.Entry<Integer, String> entry : vehiculos.entrySet()) {
            System.out.println(entry.getKey() + ". " + entry.getValue() + " - $" + precios.get(entry.getKey()));
        }

        System.out.print("Ingrese el número de la referencia que desea comprar: ");
        int seleccion = scanner.nextInt();

        if (vehiculos.containsKey(seleccion)) {
            System.out.print("¿Cuántas unidades desea comprar? ");
            int cantidad = scanner.nextInt();
            int subtotal = precios.get(seleccion) * cantidad;
            total += subtotal;
            System.out.println("Has seleccionado: " + vehiculos.get(seleccion));
            System.out.println("Cantidad: " + cantidad + ", Subtotal: $" + subtotal);
        } else {
            System.out.println("Selección inválida.");
            continue;
        }

        System.out.print("¿Desea continuar comprando? (sí/no): ");
        String respuesta = scanner.next();
        if (respuesta.equalsIgnoreCase("no")) {
            System.out.print("¿Deseas corregir alguna selección? (sí/no): ");
            String corregir = scanner.next();
            if (corregir.equalsIgnoreCase("sí")) {
                System.out.println("Enumere la referencia que desea corregir:");
                for (Map.Entry<Integer, String> entry : vehiculos.entrySet()) {
                    System.out.println(entry.getKey() + ". " + entry.getValue());
                }
                System.out.print("Ingrese el número de la referencia a corregir: ");
                int referenciaCorregir = scanner.nextInt();
                if (vehiculos.containsKey(referenciaCorregir)) {
                    System.out.print("Ingrese la nueva cantidad para esta referencia: ");
                    int nuevaCantidad = scanner.nextInt();
                    int nuevoSubtotal = precios.get(referenciaCorregir) * nuevaCantidad;
                    total -= precios.get(referenciaCorregir) * nuevaCantidad; // Restar el subtotal anterior
                    total += nuevoSubtotal; // Agregar el nuevo subtotal
                    System.out.println("La selección ha sido corregida.");
                } else {
                    System.out.println("Referencia inválida.");
                }
            }
            break; // Salir del bucle
        }
    }

    System.out.println("El total de su compra es: $" + total);
    System.out.print("¿Está de acuerdo con el valor total? (sí/no): ");
    String confirmacion = scanner.next();
    if (confirmacion.equalsIgnoreCase("sí")) {
        System.out.println("Por favor, ingrese sus datos personales:");
        scanner.nextLine(); // Consumir el salto de línea pendiente
        System.out.print("Nombres completos: ");
        String nombres = scanner.nextLine();
        System.out.print("Dirección de residencia: ");
        String direccion = scanner.nextLine();
        System.out.print("País de origen: ");
        String pais = scanner.nextLine();
        System.out.print("Teléfono: ");
        String telefono = scanner.nextLine();
        System.out.print("Método de pago (Tarjeta/Transferencia/Efectivo): ");
        String metodoPago = scanner.nextLine();

        System.out.println("\nResumen de la compra:");
        System.out.println("Total: $" + total);
        System.out.println("Nombres: " + nombres);
        System.out.println("Dirección: " + direccion);
        System.out.println("País: " + pais);
        System.out.println("Teléfono: " + telefono);
        System.out.println("Método de pago: " + metodoPago);
        System.out.println("¡Gracias por su compra!");
    } else {
        System.out.println("Compra cancelada. ¡Gracias por visitarnos!");
    }

    scanner.close();
}

}

Hola John,

¡Tu código para el cajero automático se ve bastante bien! Está diseñado para realizar operaciones básicas como consultar saldo, retirar y depositar dinero, y salir del sistema. Aquí hay algunos consejos que podrían ayudarte a mejorar o ajustar tu programa:

  1. Validación de entrada: Actualmente, el programa asume que el usuario siempre ingresará un número válido. Podrías agregar una validación para manejar entradas incorrectas, como letras o símbolos, que podrían causar una excepción.

    try {
        opcion = teclado.nextInt();
    } catch (InputMismatchException e) {
        System.out.println("Por favor, ingrese un número válido.");
        teclado.next(); // Limpiar el buffer del scanner
        continue; // Volver al inicio del bucle
    }
    
  2. Formato de salida: Para mejorar la legibilidad del saldo, podrías formatear el saldo a dos decimales usando String.format() o DecimalFormat.

    System.out.println("Su saldo es: $" + String.format("%.2f", saldo));
    
  3. Cerrar el Scanner: Es una buena práctica cerrar el objeto Scanner al final del uso para liberar los recursos.

    teclado.close();
    
  4. Mensajes de confirmación: Después de cada operación, podrías agregar mensajes de confirmación para que el usuario esté seguro de que la operación se realizó correctamente.

Espero que estos consejos te sean útiles para mejorar tu aplicación de cajero automático. ¡Sigue adelante con el buen trabajo!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!