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

Desafío construyendo una nueva aplicacion

Se crearon las clases: TarjetaDeCredito, con tres atributos: limite, saldo y listaDeCompras Compra, con dos atributos: valor y descripción. Principal, donde se implementó un menú que permite al usuario añadir compras.

import java.util.Collections;
import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Escribe el límite de la tarjeta: ");
        double limite = scanner.nextDouble();
        TarjetaDeCredito tarjeta = new TarjetaDeCredito(limite);

        int salir = 1;
        while (salir != 0){
            System.out.println("Escriba la descripción de la compra: ");
            String descripcion = scanner.next();

            System.out.println("Escribe el valor de la compra: ");
            double valor = Double.valueOf(scanner.next());

            Compra compra = new Compra(valor, descripcion);
            boolean compraRealizada = tarjeta.lanzarCompra(compra);

            if (compraRealizada){
                System.out.println("Compra realizada!");
                System.out.println("Escribe 0 para salir o 1 para continuar");
                salir = scanner.nextInt();
            } else {
                System.out.println("Saldo insuficiente");
                salir = 0;
            }
        }
        System.out.println("\n***********************");
        System.out.println("COMPRAS REALIZADAS:\n");
        Collections.sort(tarjeta.getListaDeCompras());
        for (Compra compra : tarjeta.getListaDeCompras()) {
            System.out.println(compra.getDescripcion() + " - " +compra.getValor());
        }
        System.out.println("\n***********************");
        System.out.println("\nSaldo de la tarjeta: " + tarjeta.getSaldo());
    }
}

Resultado:

Escribe el límite de la tarjeta:

2000

Escriba la descripción de la compra:

polo

Escribe el valor de la compra:

50

Compra realizada!

Escribe 0 para salir o 1 para continuar

1

Escriba la descripción de la compra:

casaca

Escribe el valor de la compra:

300

Compra realizada!

Escribe 0 para salir o 1 para continuar

1

Escriba la descripción de la compra:

zapatos

Escribe el valor de la compra:

450

Compra realizada!

Escribe 0 para salir o 1 para continuar

0


COMPRAS REALIZADAS:

polo - 50.0

casaca - 300.0

zapatos - 450.0


Saldo de la tarjeta: 1200.0

1 respuesta

Hola Walter,

¡Qué bueno que estás avanzando con tu aplicación! Parece que ya tienes una buena estructura para manejar las compras con la tarjeta de crédito. Sin embargo, noté que estás intentando ordenar las compras usando Collections.sort(tarjeta.getListaDeCompras()). Para que esto funcione, la clase Compra necesita implementar la interfaz Comparable para definir cómo se deben comparar las compras entre sí.

Aquí tienes un ejemplo de cómo podrías modificar la clase Compra para que sea ordenable:

public class Compra implements Comparable<Compra> {
    private double valor;
    private String descripcion;

    public Compra(double valor, String descripcion) {
        this.valor = valor;
        this.descripcion = descripcion;
    }

    public double getValor() {
        return valor;
    }

    public String getDescripcion() {
        return descripcion;
    }

    @Override
    public int compareTo(Compra otraCompra) {
        // Puedes cambiar la lógica de comparación según lo que necesites
        return Double.compare(this.valor, otraCompra.valor);
    }
}

Con esta implementación, Collections.sort() podrá ordenar la lista de compras por el valor de cada compra. Si prefieres ordenar por descripción, puedes ajustar el método compareTo para comparar las descripciones en su lugar.

Espero que esto te ayude a mejorar tu aplicación. ¡Sigue adelante con tus proyectos y buena suerte!

Espero haber ayudado y buenos estudios!

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