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

desafio final compras

Tienda.java

package principal;

import modelo.Compra;
import modelo.TarjetaCredito;

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

public class Tienda{

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

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

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

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

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

Compra.java

package modelo;

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 String toString() {
        return "Compra: valor " +
                "valor=" + valor +
                ", descripcion: " + descripcion;
    }

    @Override
    public int compareTo(Compra otraCompra) {
        return Double.valueOf(this.valor).compareTo(Double.valueOf(otraCompra.getValor()));
    }
}

TarjetaCredito.java

package modelo;

import java.util.ArrayList;
import java.util.List;

public class TarjetaCredito {
    private double limite;
    private double saldo;
    private List<Compra> listaCompra;

    public TarjetaCredito(double saldo, List<Compra> listaCompra) {
        this.saldo = limite;
        this.listaCompra = new ArrayList<>();
    }

    public TarjetaCredito(double limite) {
        this.limite = limite;
    }


    public boolean lanzarCompra(Compra compra) {
        if (this.saldo >= compra.getValor()) {
            this.saldo -= compra.getValor();
            this.listaCompra.add(compra);
            return true;
        }
        return false;
    }

    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public List<Compra> getListaCompra() {
        return listaCompra;
    }
}
1 respuesta

Hola Eduar, 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!