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

Proyecto Desafio - Compras (V1)

Primera Versión sin ver la solución del profesor.

Clase Main

import Clases.Producto;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    System.out.print("Ingrese el limite de la tarjeta: ");
    double limiteTarjeta = new Scanner(System.in).nextInt();
    boolean salir = false;

    ArrayList<Producto> listaProductos = new ArrayList<>();

    do {
        System.out.println("\n --- WALMART --- ");
        System.out.println("1. Realizar Compra");
        System.out.println("2. Salir");
        System.out.print("Opcion -> ");
        int opcion = new Scanner(System.in).nextInt();
        switch (opcion) {
            case 1:
                System.out.print("Escriba la descripcion de la compra: ");
                String descripcion = new Scanner(System.in).nextLine();
                System.out.print("Escriba el valor de la compra: ");
                double valor = new Scanner(System.in).nextDouble();

                if (limiteTarjeta > valor) {
                    listaProductos.add(new Producto(descripcion, valor));
                    limiteTarjeta = limiteTarjeta - valor;
                    System.out.println("Compra Realizada!");
                } else {
                    System.out.println("Saldo Insuficiente!");
                    mostrarListaProductos(listaProductos);
                    System.out.println("Saldo de la Tarjeta: " + limiteTarjeta);
                    salir = true;
                }
                break;

            case 2:
                    mostrarListaProductos(listaProductos);
                    System.out.println("Saldo de la Tarjeta: " + limiteTarjeta);
                    salir=true;
                break;

            default:
                System.out.println("Opción Incorrecta, pruebe nuevamente!");
        }
    } while (!salir);
}

public static void mostrarListaProductos(ArrayList<Producto> listaProductos){
    //Me ordena la lista de productos del mas barato al mas caro
    listaProductos.sort(Comparator.comparing(Producto::getPrecio));

    //isEmpty comprueba si la listaProductos está vacia o no
    if (!listaProductos.isEmpty()) {
        System.out.println("\n********************");
        System.out.println("COMPRAS REALIZADAS: ");

        for (Producto producto : listaProductos) {
            System.out.println(producto.toString());
        }
        System.out.println("\n********************");
        System.out.println("\nGracias por su visita!");
    } else {
        System.out.println("\nGracias por su visita!");
    }
}

}

Clase Producto

package Clases;

public class Producto {

private String descripcion;
private double precio;

public Producto(String descripcion, double precio) {
    this.descripcion = descripcion;
    this.precio = precio;
}

public double getPrecio() {
    return precio;
}

@Override
public String toString() {
    return descripcion + " - " + precio;
}

}

1 respuesta

Hola Matías, 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!