Help, Pizzaria

Galera, esta tenso aqui pro meu lado, me ajudem?

Classe Pizza

package model;

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

public class Pizza {
	
	double preco;
	
	static int contabilizaIngrediente = 0;
	List<String> lista = new ArrayList();
	
	public void adicionalIngrediente(String Ingrediente){
		lista.add(Ingrediente);
		
		contabilizaIngrediente(Ingrediente);
	}
	
	public static void contabilizaIngrediente(String ingrediente){
		HashMap<String, Integer> hmap = new HashMap<String, Integer>();
		hmap.put(ingrediente, contabilizaIngrediente++);
	}
	
	public double getPreco(){
		int contador = this.lista.size();
		if(contador <=2)
			return 15.00;
		else if(contador >=3 && (contador <=5))
			return 20.00;
		else
			return 23.00;
	}
}

Classe Principal

package controller;

import model.CarrinhoDeCompras;
import model.Pizza;

public class Principal {

	public static void main(String[] args) {
		
		Pizza p1 = new Pizza();
		CarrinhoDeCompras c1 = new CarrinhoDeCompras();
		p1.adicionalIngrediente(Mussarela);
		p1.adicionalIngrediente(Calabresa);
		p1.adicionalIngrediente(Cebola);

		Pizza p2 = new Pizza();
		p2.adicionalIngrediente(Frango);
		p2.adicionalIngrediente(Catupiry);
		p2.adicionalIngrediente(Requeijão);
		
		Pizza p3 = new Pizza();
		p3.adicionalIngrediente(Chocolate);
		p3.adicionalIngrediente(Brownie);
	}
}
1 curtida

Estou na dúvida de fazer o carrinho de compras, alguém ajuda?

1 curtida

Vc pode ter uma lista de pizzas, e no carrinho vc faz um método adiciona, que recebe uma pizza, e coloca a mesma nesse lista. E vc faz a regra dos ingredientes antes de adicionar, se vier sem ingredientes.

throw new RuntimeException("Pizza inválida")

Faz sentido ?

1 curtida

Implementar isso que é complicado :confused:

Não é complicado não, faz com calma e por partes que vc consegue :slight_smile:

Quando eu vejo uma pergunta assim e o cara não faz nada nem coloca nenhum código, eu percebo o quanto o pessoal não gosta de programar, mas, eu vi que você está um pouco perdido e o enunciado (com certeza programinha de faculdade, que em vez de ajudar só complica, porque, nesse enunciado a erros grotescos que induz ao erro sobre variavel static).

Bom a minha solução é essa:

Classe Pizza:

import java.util.HashMap;
public class Pizza {    
    public HashMap<Integer, String> ingredientes;        
    public Pizza() {
        this.ingredientes = new HashMap<>();        
    }    
    public void adicionaIngrediente(Integer id, String nome)
    {
        ingredientes.put(id, nome);        
    }   
    public Double getPreco()
    {
        Double result = 15D;        
        if (getQuantidade()>=3 && getQuantidade()<=5)
        {
            result = 20D;
        }
        else if (getQuantidade()>5)
        {
            result = 23D;
        }
        return result;
    }    
    public Integer getQuantidade()
    {
        return ingredientes.size();
    }    
}

Classe CarrinhoDeCompra:

import java.util.ArrayList;
public class CarrinhodeCompras {
    public ArrayList<Pizza> pizzas;
    public CarrinhodeCompras() {
        this.pizzas = new ArrayList<>();
    }    
    public void adicionaPizza(Pizza pizza)
    {
        if (pizza.getQuantidade()>0){
            this.pizzas.add(pizza);
        }
    }    
    public Double valorTotalPizzas()
    {
        Double result = 0D;
        for(Pizza pizza: pizzas)
        {
            result = result + pizza.getPreco();
        }
        return result;
    }
}

Como utilizar?

Pizza p1 = new Pizza();
p1.adicionaIngrediente(1, "Queijo");
p1.adicionaIngrediente(2, "Mussarela");

Pizza p2 = new Pizza();
p2.adicionaIngrediente(1, "Queijo");
p2.adicionaIngrediente(2, "Mussarela");

Pizza p3 = new Pizza();
p3.adicionaIngrediente(1, "Queijo");
p3.adicionaIngrediente(2, "Mussarela");

CarrinhodeCompras cC = new CarrinhodeCompras();
cC.adicionaPizza(p1);
cC.adicionaPizza(p2);
cC.adicionaPizza(p3);


System.out.println(cC.valorTotalPizzas());

Veja que na casse Pizza além de digitar o valor texto eu coloquei um valor que simula uma base de dados aonde os ingredientes tem um código. No enunciado não ficou claro isso, deve ser o copiar e colar pela metade removendo dados do enunciado e atrapalhando o conceito em si. Você deve indagar o seu professor sobre isso.

Bom esse seria o mais próxima da realidade do enunciado (removendo alguns erros) e o valor no final tem que ser nesse caso exemplo 45,00 por ser 6 ingredientes 2 em cada pizza.

1 curtida

não tenho lógica apropriada pra isso ainda não :disappointed_relieved:

1 curtida

Po, mas eu fiz algumas partes e tal porém como eu disse… Estou iniciando aos poucos, obrigado.

1 curtida

Estude amigo! estudar faz bem e você logo logo aprenderá muitas coisas. Claro a experiência no meu caso é importante, porque, não sou programador Java, mas, tenho a lógica que é minha grande ferramenta!

2 curtidas

Alguém conseguiu finalizar esse projeto? Alguém poderia me ajudar? Não estou conseguindo raciocinar de como eu vou imprimir o total do CarrinhoDeCompras e também o total utilizado de cada ingrediente.

Obrigado.