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

Desafio compras

package co.allura.desafio.controller;

import co.allura.desafio.model.Producto;
import co.allura.desafio.model.TarjetaDebito;
import co.allura.desafio.view.View;

import java.util.Collections;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
        View view = new View();

        view.print("Escribaa el limite de la tarjeta ");
      double limiteTarjeta = view.readDouble();
        TarjetaDebito tarjeta = new TarjetaDebito(limiteTarjeta);
        tarjeta.setSaldo(limiteTarjeta);
        int salir = 1;

        while (salir != 0) {
            view.print("¿Qué desea hacer? 1 = hacer compra, 2 = ver carrito, 0 = salir:) ");
            salir = view.readInt();
            switch (salir) {
                case 1:{
                    view.print("Escriba descripción de la compra: ");
                    String descripcion = view.readString();
                    view.print("Escriba el valor de la compra: ");
                    double valor = view.readDouble();

                    Producto producto = new Producto(descripcion, valor);
                    boolean realizarCompra = tarjeta.validarCompra(producto);
                    System.out.println(realizarCompra);
                    if (realizarCompra) {
                        view.print("Compra exitosa ");
                    }
                    else {
                        view.print("El saldo es insuficiente ");
                        break;
                    }

                }

            case 2 :{
                System.out.println("************");
                System.out.println("Ver carrito "+'\n');
                Collections.sort(tarjeta.getListaCompra());
                for (Producto producto1 : tarjeta.getListaCompra()){
                    view.print(producto1.toString());
                }
                view.print("Su saldo es"+tarjeta.getSaldo());
            }
            }
            }
            }


}
package co.allura.desafio.model;

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

public class TarjetaDebito {
private double limite;
private double saldo;
    private List<Producto> listaCompra;
    public TarjetaDebito() {

    }

    public TarjetaDebito(double limite) {
        this.limite = limite;
        this.saldo = saldo;
        this.listaCompra = new ArrayList<>();
    }
    public boolean validarCompra(Producto producto) {
        if(this.saldo >= producto.getPrecio()){
            this.saldo -= producto.getPrecio();
            this.listaCompra.add(producto);
            return true;
        }
        else{
            return false;
        }
    }

    public double getLimite() {
        return limite;
    }

    public void setLimite(double limite) {
        this.limite = limite;
    }

    public double getSaldo() {
        return saldo;
    }

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

    public List<Producto> getListaCompra() {
        return listaCompra;
    }

    public void setListaCompra(List<Producto> listaCompra) {
        this.listaCompra = listaCompra;
    }

}
package co.allura.desafio.model;

import java.io.Serializable;
import java.util.Comparator;

public class Producto implements Comparable<Producto> {
    private String nombreProducto;
    private double precio;
    public Producto(String nombreProducto, double precio) {
        this.nombreProducto = nombreProducto;
        this.precio = precio;
    }
    public Producto() {}


    @Override
    public int compareTo(Producto o1) {
        return Double.valueOf(this.precio).compareTo(o1.getPrecio());
    }

    @Override
    public String toString() {
        return "Producto{" +
                "nombreProducto='" + nombreProducto + '\'' +
                ", precio=" + precio +
                '}';
    }

    public String getNombreProducto() {
        return nombreProducto;
    }

    public void setNombreProducto(String nombreProducto) {
        this.nombreProducto = nombreProducto;
    }
/*
    public int getLimite() {
        return limite;
    }

    public void setLimite(int limite) {
        this.limite = limite;
    */

    public double getPrecio() {
        return precio;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }

}
1 respuesta

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