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

[Proyecto] Proyecto final del desafío

// clase: TarjetaDeCredito.java // package com.tiendaonline.modelos;

public class TarjetaDeCredito { private double saldoDisponible;

public TarjetaDeCredito(double saldoDisponible) {
    this.saldoDisponible = saldoDisponible;
}

public double getSaldoDisponible() {
    return saldoDisponible;
}

public void restarSaldo(double cantidad) {
    this.saldoDisponible -= cantidad;
}

} // clase: Compra.java // package com.tiendaonline.modelos;

public class Compra implements Comparable { private String descripcion; private double valor;

public Compra(String descripcion, double valor) {
    this.descripcion = descripcion;
    this.valor = valor;
}

public String getDescripcion() {
    return descripcion;
}

public double getValor() {
    return valor;
}

@Override
public String toString() {
    return "Producto: " + descripcion + ", Valor: $" + valor;
}

@Override
public int compareTo(Compra otraCompra) {
    return Double.compare(this.valor, otraCompra.valor);
}

} // clase: Principal.java // package com.tiendaonline.principal;

import com.tiendaonline.modelos.Compra; import com.tiendaonline.modelos.TarjetaDeCredito;

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

public class Principal { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

    // Paso 1: Solicitar el límite de la tarjeta
    System.out.print("Escriba el límite de la tarjeta: ");
    double limiteTarjeta = scanner.nextDouble();
    TarjetaDeCredito tarjeta = new TarjetaDeCredito(limiteTarjeta);

    List<Compra> listaCompras = new ArrayList<>();
    String continuar = "C";

    // Paso 2: Proceso de compras
    while (continuar.equalsIgnoreCase("C")) {
        System.out.print("Escriba la descripción del producto: ");
        String descripcion = scanner.next();

        System.out.print("Escriba el valor del producto: ");
        double valor = scanner.nextDouble();

        if (valor > tarjeta.getSaldoDisponible()) {
            System.out.println("Saldo insuficiente para realizar la compra.");
        } else {
            Compra compra = new Compra(descripcion, valor);
            listaCompras.add(compra);
            tarjeta.restarSaldo(valor);
            System.out.println("¡Compra realizada!");
        }

        System.out.print("Escriba S para salir o C para continuar: ");
        continuar = scanner.next();
    }

    // Paso 3: Ordenar y mostrar las compras realizadas
    Collections.sort(listaCompras);
    System.out.println("\nLISTA DE COMPRAS:");
    for (Compra compra : listaCompras) {
        System.out.println(compra);
    }

    // Paso 4: Mostrar el saldo restante
    System.out.println("\nSaldo de la tarjeta: $" + tarjeta.getSaldoDisponible());
}

}

1 respuesta

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