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

Desafío: construyendo una nueva aplicación

Siguiendo la lógica de la Programación Orientada a Objetos se diseñaron las clases (Artículo, Tarjeta) y el programa principal (main).

Clase Artículo ubicada en el paquete modelos

package com.alura.compras.modelos;

public class Articulo {
    public String nombre;
    public double costo;

    public Articulo(String nombre, double costo) {
        this.nombre = nombre;
        this.costo = costo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public double getCosto() {
        return costo;
    }

    public void setCosto(double costo) {
        this.costo = costo;
    }

    @Override
    public String toString() {
        return this.getNombre() + "-" + this.getCosto();
    }
}

Clase Tarjeta ubicada en el paquete modelos

package com.alura.compras.modelos;

public class Tarjeta {
    double monto;

    public Tarjeta() {
    }

    public double getMonto() {
        return monto;
    }

    public void setMonto(double monto) {
        this.monto = monto;
    }

    public double consumo(double articulo){
       this.monto -= articulo;
       return this.monto;
    }
}

Clase Main ubicada en el paquete principal

package com.alura.compras.principal;

import com.alura.compras.modelos.Articulo;
import com.alura.compras.modelos.Tarjeta;

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

public class main {
    public static void main(String[] args) {
        Tarjeta tarjeta = new Tarjeta();
        ArrayList<Articulo> articulos = new ArrayList<>();
        Scanner teclado = new Scanner(System.in);
        System.out.println("Ingresa el monto de tu tarjeta: ");
        double monto = teclado.nextInt();
        tarjeta.setMonto(monto);
        int op = 1;

        while(op==1){
            System.out.println("Escribe la descripción de la compra");
            System.out.println("Ingresa el nombre de la compra: ");
            String nombre = teclado.next();
            System.out.println("¡Valor agregado!");
            System.out.println("Ingrese el precio de la compra: ");
            double precio = teclado.nextDouble();
            System.out.println("¡Valor agregado!");

            if(tarjeta.getMonto() < precio){
                System.out.println("Saldo insuficiente para agregar este artículo a su carrito :c");
                break;
            }else{
                tarjeta.consumo(precio);
                Articulo articulo = new Articulo(nombre,precio);
                articulos.add(articulo);
                System.out.println("¡Compra realizada!");
                System.out.println("Escriba 0 para salir o 1 para continuar: ");
                op = teclado.nextInt();
            }
        }
        System.out.println("*******DETALES DE CONSUMO*******");
        System.out.println("Compras totales:");
        for (Articulo item: articulos ){
            System.out.println(item.getNombre()+" - "+item.getCosto());
        }
        System.out.println("Saldo de la tarjeta: " + tarjeta.getMonto());

    }
}
1 respuesta

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