Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Presentando el desafío aplicacion para lanzar compras con tarjeta de credito

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

class Compra {
    String descripcion;
    double valor;
    LocalDate fecha;

    public Compra(String descripcion, double valor) {
        this.descripcion = descripcion;
        this.valor = valor;
        this.fecha = LocalDate.now(); // Fecha actual
    }
}

public class LanzadorCompras {
    static List<Compra> listaCompras = new ArrayList<>();
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int opcion;

        do {
            System.out.println("\n--- Menú ---");
            System.out.println("1. Hacer Compra");
            System.out.println("2. Ver Lista de Compras");
            System.out.println("3. Salir");
            System.out.print("Ingrese su opción: ");

            opcion = scanner.nextInt();
            scanner.nextLine(); // Consumir el salto de línea

            switch (opcion) {
                case 1:
                    hacerCompra();
                    break;
                case 2:
                    verListaCompras();
                    break;
                case 3:
                    System.out.println("¡Hasta luego!");
                    break;
                default:
                    System.out.println("Opción inválida. Intente de nuevo.");
            }
        } while (opcion != 3);
    }

    static void hacerCompra() {
        System.out.print("Ingrese la descripción de la compra: ");
        String descripcion = scanner.nextLine();

        System.out.print("Ingrese el valor de la compra: ");
        double valor = scanner.nextDouble();
        scanner.nextLine(); // Consumir el salto de línea

        Compra nuevaCompra = new Compra(descripcion, valor);
        listaCompras.add(nuevaCompra);
        System.out.println("Compra realizada con éxito.");
    }

    static void verListaCompras() {
        if (listaCompras.isEmpty()) {
            System.out.println("No hay compras registradas.");
            return;
        }

        listaCompras.sort(Comparator.comparingDouble(Compra::getValor).reversed()); // Ordenar por valor descendente

        System.out.println("\n--- Lista de Compras ---");
        for (Compra compra : listaCompras) {
            System.out.println("Descripción: " + compra.descripcion + 
                               ", Valor: " + compra.valor + 
                               ", Fecha: " + compra.fecha);
        }
    }
}




Explicación:

Compra: Almacena información sobre cada compra.
LanzadorCompras:
listaCompras: Lista para guardar las compras realizadas.
scanner: Para leer la entrada del usuario.
main: Muestra el menú y maneja las opciones.
hacerCompra: Pide los datos de la compra y la agrega a la lista.
verListaCompras: Ordena las compras por valor y las muestra.
4. Ejecutar la Aplicación

Haz clic derecho en la clase LanzadorCompras y selecciona "Run 'LanzadorCompras.main()'".
Interactúa con el menú para hacer compras y ver la lista ordenada.
¡Importante!

Esta es una versión básica. Para una aplicación real, necesitarías:
Manejo de errores.
Almacenamiento persistente de las compras (base de datos o archivo).
Integración con un sistema de procesamiento de pagos.
Una interfaz gráfica de usuario (GUI) más amigable.
    
    
    
    
1 respuesta

Hola Frank, espero que estés bien

Considero su código muy bueno, en este momento no veo puntos de mejora. ¡Continúa con sus estudios y éxito en su carrera!

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

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