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

Proyecto final del desafío

Main

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

public class main {
    public static void main(String[] args) {
        Scanner teclado=new Scanner(System.in);
        String nombreProducto;
        double valorProducto;
        int opcionCompra=1;
        ArrayList<Producto> listaProductoComprados=new ArrayList<>();

        System.out.println("Escriba el limite de la tarjeta de Credito");
        TCredito tarjetaCompra=new TCredito(teclado.nextDouble());

        while (opcionCompra!=0){
            System.out.println("Escriba el producto a comprar");
            nombreProducto=teclado.next();
            System.out.println("Escriba el valor del producto ");
            valorProducto=teclado.nextDouble();

            if(tarjetaCompra.realizarCompra(valorProducto)) {
                listaProductoComprados.add(new Producto(nombreProducto, valorProducto));
                System.out.println("Desea ralizar otra compra, presiones 1 de lo contraio 0");
                opcionCompra= teclado.nextInt();
            }else {
                opcionCompra=0;
            }
        }
        System.out.println("Resumen de Compras realizadas");
        Collections.sort(listaProductoComprados);
//      System.out.println(listaProductoComprados);
        listaProductoComprados.forEach(System.out::println);
        System.out.println("Saldo Disponible en tarjeta: "+tarjetaCompra.getSaldo());

        teclado.close();
    }

Clase Producto

public class Producto implements Comparable<Producto>{
    private String nombreProducto;
    private double valorProducto;

    public Producto(String nombreProducto, double valorProducto) {
        this.nombreProducto = nombreProducto;
        this.valorProducto = valorProducto;
    }

    public String getNombreProducto() {
        return nombreProducto;
    }

    public double getValorProducto() {
        return valorProducto;
    }

    @Override
    public String toString() {
        return "Producto: "+getNombreProducto()+" - Valor: "+getValorProducto();
    }

    @Override
    public int compareTo(Producto otroProducto) {
        return Double.valueOf(this.getValorProducto()).compareTo(Double.valueOf(otroProducto.getValorProducto()));
    }
}

Clase tarjeta

public class TCredito {
    private double saldo;
    public TCredito(double saldo){
        this.saldo=saldo;
    }

    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    public Boolean realizarCompra(double valorCompra){

        if(this.saldo>=valorCompra){
            this.saldo-=valorCompra;
            return true;
        }else {
            System.out.println("Saldo Insuficiente, Compra no realizada");
            return false;
        }
    }
}
1 respuesta

Hola Estudiante, espero que estés bien

Gracias por compartir tu ejercício práctico con nosotros, en este momento no veo puntos de mejora! 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.

¡Continúa con sus estudios y éxito en su carrera!

¡Abrazos y buenos estudios!

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