Tienda libros (oscar)

 avatar
unknown
java
5 months ago
2.7 kB
4
Indexable
package Tiendadelibros;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Tiendadelibrosverdadera {

    public static Scanner sc = new Scanner(System.in);
    public static Map<String, Integer> stock = new HashMap<>();
    public static Map<String, Double> prices = new HashMap<>();

    public static void main(String[] args) {
        setStock();
        setPrices();
        calcularStock();
    }

    private static void calcularStock() {
        preguntarLibros("Historia");
        preguntarLibros("Enciclopedias");
        preguntarLibros("Novelas");
        preguntarLibros("comics de naruto");
    }
    
    private static void setStock() {
        stock.put("Enciclopedias", 20);
        stock.put("Novelas", 10);
        stock.put("Historia", 25);
        stock.put("comics de naruto", 10 );
    }
    private static void setPrices() {
        prices.put("Enciclopedias", 3.5);
        prices.put("Novelas", 4.75);
        prices.put("Historia", 2.75);
        prices.put("comics de naruto", 6.5);
    }

    private static void preguntarLibros(String tipoDeLibro) {
        boolean seguirPreguntando = true;
        int contador = 0;
        
        while (seguirPreguntando) {
            System.out.println("¿Cuántos libros de " + tipoDeLibro + " quieres comprar?");
            
            if (!sc.hasNextInt()) {
                System.out.println("Por favor ingresa un número válido.");
                sc.next();
                continue;
            }

            int cantidad = sc.nextInt();
            int stockDisponible = stock.get(tipoDeLibro);

            if (cantidad > stockDisponible) {
                contador++;
                if (contador > 1) {
                    System.out.println("Oye, no seas pesado, que ya te dije que no tengo tantos libros.");
                } else {
                    System.out.println("No tenemos tantos libros de " + tipoDeLibro + ", lo siento.");
                }
            } else {
                double precio = getResult(tipoDeLibro, cantidad);
                stock.put(tipoDeLibro, stockDisponible - cantidad);
                System.out.println("El precio es: " + precio);
                System.out.println("Queda una cantidad de "+ stock.get(tipoDeLibro)+ " libros de " + tipoDeLibro+ " en la tienda");
                seguirPreguntando = false;
            }
        }
    }

    private static double getResult(String tipoDeLibro, int cantidad) {
        double precioPorUnidad = prices.get(tipoDeLibro);
        return precioPorUnidad * cantidad;
    }
}
Editor is loading...
Leave a Comment