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

[Proyecto] Proyecto Compras

Clase Main

import com.app.compras.interaccion.App;

public class Main {
    public static void main(String[] args) {
        App app = new App();

        app.mostrarVentas();

    }
}

Clase App

package com.app.compras.interaccion;
import com.app.compras.modelos.Compra;
import com.app.compras.modelos.Producto;
import com.app.compras.modelos.Targeta;

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

import java.util.List;

public class App {
    Compra compra = new Compra();
    Targeta targeta = new Targeta();

    public void mostrarVentas() {
        System.out.println("Ingrese el valor límite de la targeta: ");
        targeta.descuentoSaldoTargeta(new Scanner(System.in).nextInt());


        int respuesta;
        do {
            var producto = new Producto();

            System.out.println("Escriba la descripción de la compra: ");
            producto.setNombre(new Scanner(System.in).nextLine());

            System.out.println("Escriba el precio: ");
            producto.setPrecio(new Scanner(System.in).nextInt());

            System.out.println("Escriba la cantidad: ");
            producto.setCantidad(new Scanner(System.in).nextInt());

            if ((targeta.getSaldotargeta() - producto.getCantidad() * producto.getPrecio()) < 0) {
                System.out.println("La compra excede el saldo de la cuenta");
                break;
            }
            compra.addProducto(producto);
            targeta.descuentoSaldoTargeta(-producto.getCantidad() * producto.getPrecio());
            System.out.println("Compra exitosa");
            System.out.println("***********************");
            System.out.println("Escriba 0 para salir y 1 para continuar ");

        } while (targeta.getSaldotargeta() > 0 && new Scanner(System.in).nextInt() == 1);

        // Resumen de la venta
        System.out.println("***********************");
        compra.getProductoCoprado().sort(Comparator.comparing(Producto::getPrecio));
        System.out.println("El resumen de las ventas es: " + compra.getProductoCoprado());
        System.out.println("************************");

        System.out.println("El total de la compra es: "+ compra.getTotalCompra());
        System.out.println("El saldo de la targeta es: " + targeta.getSaldotargeta());
    }



}

Clase Producto

package com.app.compras.modelos;

public class Producto {
    private String nombre;
    private int precio;
    private int cantidad;

   // metodos set y get omitidos

    @Override
    public String toString() {
        return "Producto: "+ getNombre() + " \n " +
                "Precio: " + getPrecio() + " \n " +
                "Cantidad: " + getCantidad() + " \n "+
                "Sub total: " + getPrecio()*getCantidad();
    }
}

Clase Compra

package com.app.compras.modelos;

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

public class Compra {
    private int totalCompra;
    private List<Producto> productoCoprado = new ArrayList<>();

    public List<Producto> getProductoCoprado() {
        return productoCoprado;
    }

    public void addProducto(Producto producto) {
        this.productoCoprado.add(producto);
        totalCompra += producto.getPrecio()* producto.getCantidad();
    }

    public int getTotalCompra() {
        return totalCompra;
    }
}

Clase Tarjeta

package com.app.compras.modelos;

public class Targeta {
    private int saldotargeta;

    public int getSaldotargeta(){
        return saldotargeta;
    }

    public void descuentoSaldoTargeta(int valor){
        saldotargeta += valor;
    }
}
2 respuestas

¡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!

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