Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Proyecto] Desafio compras con tarjeta de credito

Clase Compra package com.cursoalura.desafiocompras.modelos;

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

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

//no tenemos setters porque colocamos el valor cuando comienza
public String getDescripcion() {
    return descripcion;
}

public double getValor() {
    return valor;
}

@Override
public String toString() {
    return "Compra: valor=" + valor +
            ",descripcion='" + descripcion;
}

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

}

Clase TarjetaDeCredito

package com.cursoalura.desafiocompras.modelos;

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

public class TarjetaDeCredito { private double limite; private double saldo; private List listaDeCompras;

public TarjetaDeCredito(double limite){
    this.saldo = limite;
    this.limite = limite;
    this.listaDeCompras = new ArrayList<>();
}
public boolean lanzarCompra (Compra compra){
    if (this.saldo >= compra.getValor()){
        this.saldo -= compra.getValor();
        this.listaDeCompras.add (compra);
        return true;
    }
    return false;
}

// no dejamos que nadie toque el limite asi que no usamos setters
public double getLimite() {
    return limite;
}

public double getSaldo() {
    return saldo;
}

public List<Compra> getListaDeCompras() {
    return listaDeCompras;
}

}

Clase Principal

package com.cursoalura.desafiocompras.principal;

import com.cursoalura.desafiocompras.modelos.Compra; import com.cursoalura.desafiocompras.modelos.TarjetaDeCredito;

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

public class Principal { 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(); TarjetaDeCredito tarjeta = new TarjetaDeCredito(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(descripcion, valor);
        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.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());
}

}

1 respuesta
solución!

¡Hola! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

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