Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

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;
        }
    }
}