Pogramaca orientada a java (preciso de uma ajuda)

11 respostas
L

ola pessal, estou com uma duvida em um exercicio de JAVA.
sera que pederiam me ajudar??

abaixo esta o exercicio, estou com dificuldade no E em diante.

###################

implemente a classe EstoqueDeMateriaPrima que simula ( em memoria usando ArrayList ) a movimentacao de estoque em uma rede varejista com os seguintes requisitos:
a-A classe deve ter um atributo "estoque" do tipo ArrayList.
b-A classe deve implementar o metodo construtor que inicializa o atributo estoque.
c-A classe deve implementar o metodo "inclui" que recebe como parametro um objeto do tipo Produto e adiciona ao Arraylist "estoque" .
d-A classe deve implementar o metodo getEstoque que retorna o estoque de materia prima da loja.
e-A classe deve implementar o metodo atualizaEstoque que recebe como parametro ArrayList chamado "movimento" a ser atualizado no estoque. suponha que o parametro "movimento"
possui objetos do tipo produto que estao cadastrados no estoque. Este metodo seleciona o primeiro produto do estoque e consulta o ArrayList 'movimento". Se existir deve incrementar o saldo atual do estoque com a quantida do arquivo movimento para o produto encontrado. O metro repete o processo ate o fim o Array movimento.
f- A classe deve implementar o metodo consulta que retorna um produto do estoque recebend como parametro o codigo do produto. Este metodo servira para confirmar se o produto foi atualizado pelo metodo atualizaEstoque.
g-Implemente a classe Produto com os seguintes atributos: codigo, descricao, quantidade, pecoUnitario.
h-Implemente a classe Principal que testa a classe EstoqueDeMateriaPrima. A classe deve carregar o estoque inicial em seguida deve preparar o arquivo movimento e validar a atualizacao do estoque pelo arquivo movimento.

#################################

isso é o que se pede...

e abaixo é o que consegui fazer

Classe Produto

public class Produto
  {
  	String codigo,descricao;
	double precoUnitario;
	int quantidade;
   
	public Produto(String codigo, String descricao,double precoUnitario, int quantidade)
	{
		this.codigo=codigo;
		this.descricao=descricao;
		this.precoUnitario=precoUnitario;
		this.quantidade=quantidade;
	}
	public String getCodigo()
	{
		return codigo;
	}
	public String getDescricao()
	{
		return descricao;
	}
	public double getPrecoUnitario()
	{
		return precoUnitario;
	}
	public int getQuantidade()
	{
		return quantidade;
	}
	
	public void setCodigo(String codigo)
	{
		this.codigo=codigo;			
   }
	public void setDescricao(String descricao)
	{
		this.descricao=descricao;			
   }
	public void setPrecoUnitario(double precoUnitario)
	{
		this.precoUnitario=precoUnitario;			
   }
	public void setQuantidade(int quantidade)
	{
		this.quantidade=quantidade;
	}
 }
classe EstoqueDeMateriaPrima
import java.util.ArrayList;
	
   public class EstoqueDeMateriaPrima
   {
      Produto p; 	
      private ArrayList estoque;
   
      public EstoqueDeMateriaPrima()
      {
         estoque= new ArrayList();
      }
      public void inclui(Produto p)
      {
         estoque.add(p);
      }
		public ArrayList getEstoque()
		{
			return estoque;
		}
		public void atualizaEstoque (ArrayList movimento)
		{
			
		}
   }

me ajudem por favor!!!

11 Respostas

ViniGodoy

E qual é a dúvida mesmo?

L

nao consigo fazer o que esta se pede no item E.

adriano_si

Mas vc nem tentou Fernando ??? Posta pelo menos uma tentativa e mostra qual a real dúvida… Qualquer problema em relação a saber o que determinado método faz, procura na API a classe ArrayList… se não tem a API, tá na hora de ter da versão que você está usando…

L

A duvida nao esta no ArrayList e sim como que faço esse metodo.
Na real cara, nao faço ideia de como posso fazer esse metodo, se voce puder me ajudar, ficarei grato!!!

Obrigado

ViniGodoy

Primeiro algumas correções na classe Estoque:

import java.util.List;
import java.util.ArrayList;
	
public class EstoqueDeMateriaPrima {	
   //1. Especifique o tipo do seu ArrayList. E sempre declare-o como LIst
   //Lembre-se também de declarar atributos como private. 
   private List<Produto> List estoque = new ArrayList<Produto>();
   
   public EstoqueDeMateriaPrima() {
   }

   //2. Construtor que pré-inicializa o estoque
   public EstoqueDeMateriaPrima(List<Produto> produtos) {
      estoque.addAll(produtos);
   }

   public void inclui(Produto p) {
      estoque.add(p);
   }

   public List<Produto> getEstoque() {
      //3. O usuário não deve alterar o estoque pelo método getEstoque().
      //Por isso é importante retornar uma lista que não permita modificações.
      return Collections.unmodifiableList(estoque);
   }

   public void atualizaEstoque (List<Produto> movimento) {
      //4. Aqui é só fazer o que seu professor descreveu
      //Percorrer o vetor de estoque e, se o movimento tiver o produto, adicionar 1 à contagem.
      for (Produto p : estoque) {
         if (movimento.contains(p)) {
            p.setQuantidade(p.getQuantidade() + 1);
         }
      }
   }
}

Também lembre-se que na classe Produto, os atributos também deveriam ser "private".

L

nosssa cara, muito obrigado.
ja estou fazendo as correcoes aqui no meu programa.

L

E se eu quiser adicionar qualquer valor ao invez de 1.

tipo uma quantidade de um produto, aí essa “quantidade” que eu digitar vai ser somada com a quantidade que o produto ja tem.
tipo na hora que eu instanciei a classe eu cadastrei um produto chamado predo, quantidade = 10, e no metodo atualiza estoque eu digito 10, o prego ficaria com 20.
acho q é isso que o professor esta pedindo.
sera que dá pra fazer?

esse return que voce utilizou, voce pegou de algum pacote ?

ViniGodoy

luis fernando alves:
E se eu quiser adicionar qualquer valor ao invez de 1.

tipo uma quantidade de um produto, aí essa “quantidade” que eu digitar vai ser somada com a quantidade que o produto ja tem.
tipo na hora que eu instanciei a classe eu cadastrei um produto chamado predo, quantidade = 10, e no metodo atualiza estoque eu digito 10, o prego ficaria com 20.
acho q é isso que o professor esta pedindo.
sera que dá pra fazer?

É só ao invés de somar +1, somar p.getQuantidade().

Se vc está falando do Collections, eu tirei do java.util.

L

Eu estava fazendo um teste, tentei fazer a classe Main, a classe que executa o programa.

Porem nao estou conseguindo chamar o metodo atualizaEstoque
Exemplo abaixo:

import java.util.*;
   import java.util.List; 
   import javax.swing.JOptionPane;
   public class TestaEstoqueDeMateriaPrima
   {
      public static void main (String args[])
      {
         String codigo=""; 
         String descricao="";
         double precoUnitario=0.0;
         int quantidade=0;			     
         Produto p = new Produto(codigo, descricao, precoUnitario, quantidade);
         EstoqueDeMateriaPrima emp = new EstoqueDeMateriaPrima();
        
         emp.inclui(p);
         emp.mostraProduto();
         emp.atualizaEstoque (/* o que eu coloco dentro como paramentro? movimento ou produto? */ );
         
      }
   }
ViniGodoy

Você coloca um arrayList, cheio de produtos.

L

vc tem algum exemplo de como fazer isso ??

Criado 1 de novembro de 2010
Ultima resposta 2 de nov. de 2010
Respostas 11
Participantes 3