Ajuda com arrays unidimensionais

6 respostas
D

Ola pessoal
vou ter uma prova quinta feira sobre arrays unidimensionais

e estou em duvida em um exercicio

  1. a) Crie uma classe Produto com dois atributos: código e preço, e os métodos:
  • exibeProduto, que mostra o produto na tela
  • getCodigo e getPreco
    b) Programe a classe Estoque com um atributo que é um array de objetos produto. O
    construtor recebe o tamanho do array para inicializá-lo. Programe os métodos:
  • insereProdutos, que preenche o array, obtendo do teclado os dados dos vários
    produtos
  • exibeEstoque , que mostra na tela todos os produtos do estoque
  • produtoMaisCaro, que retorna o objeto produto que tem o preço mais alto
  • achaProduto, que recebe um código de produto e retorna o produto se ele estiver no
    estoque ou null, se não estiver.
    c) Crie uma classe TestaEstoque com um método main que instancia um objeto
    Estoque, insere
    produtos nele, mostra-o na tela, imprime os dados do produto mais caro e lê do
    teclado um código de produto e diz se ele está ou não no estoque.

a parte aonde estou com duvida e na classe de estoque

vou postar o que ja tenho pronto

// CLASSE PRODUTO//
public class Produto
{
    private int codigo;
    private double preco;
    
    public Produto(int codigo,double preco)
    {
     this.codigo = codigo;
     this.preco = preco;
    }
    
    public void exibeProduto()
    {
     System.out.println("PRODUTO"+codigo);
     System.out.println("PRECO"+preco);
    }
    
    public int getCodigo()
    {
        return codigo;
    }
    
    public double getPreco()
    {
        return preco;
    }
}
//CLASSE ESTOQUE//
public class Estoque
{
    private String produto[];

    
    public Estoque(String[] quantidade)
    {
        this.quantidade = quantidade;
    }

    public String[] getQuantidade()
    {
        return quantidade;
    }
   
    public void insereProdutos(int qt)
    {
     Teclado t = new Teclado();
        for(int i=0;i<quantidade.length;i++)
        {
          t.leInt("informe o codigo:");
          t.leDouble("informe o preco:");
        }
        
    }

    public void exibeEstoque()
    {
      for(int i=0;i<quantidade.length;i++)
      System.out.println(quantidade[i]);   
    }

    public produto[] produtoMaisCaro()
    {
       produtom[] valoralto = 0;
         for(int i=0;i<quantidade.length;i++)
         {
           if(quantidade.getPreco() > produtom)
               
                 
             
         }
    }
}

6 Respostas

Felipe.JavaMan

Certo,
como você mesmo disse: "a parte aonde estou com duvida e na classe de estoque ".

O que exatamente você tem dúvida nesta classe?

D

nao peguei muito bem arrays, estou em duvida se estou fazendo certo na parte de inserir produtos

Felipe.JavaMan

certo meu brother, vamos lá!

Primeiro, seu construtor deve receber o tamanho do array para inicializar não é verdade? Então pq vc esta recebendo um String[] ???

public Estoque(String[] quantidade)  
     {  
         this.quantidade = quantidade;  
     }

Acredito que você deva receber um inteiro e assim dentro do construtor instanciar um array com o tamanho passado por parametro.
Tente implementar ai, qualquer coisa fale!
Vou tentar implementar aqui, qualquer coisa te ajudo.

flwww

D

fiquei em duvida de como fazer isso

luciano.eti
vai ai uma pequena sugestão para iniciar...
public class TestaEstoque {
	public static void main(String[] args) {

		Produto produtoUm = new Produto(1, 2.0);
		Produto produtoDois = new Produto(2, 3.0);
		Produto produtoTres = new Produto(3, 5.0);
		Produto produtoQuatro = new Produto(4, 7.0);
		Produto produtoCinco = new Produto(5, 1.0);

		Estoque estoque = new Estoque(5);

		estoque.insereProduto(produtoUm);
		estoque.insereProduto(produtoDois);
		estoque.insereProduto(produtoTres);
		estoque.insereProduto(produtoQuatro);
		estoque.insereProduto(produtoCinco);

		estoque.exibeEstoque();
		estoque.achaProduto(3);

	}
}

class Estoque {
	private Produto[] produtos;
	private int posicao;

	public Estoque(int tamanhoDoArray) {
		produtos = new Produto[tamanhoDoArray];
	}

        //Uma sugestão para sua dúvida.
	public void insereProduto(Produto produto) {
		if (posicao < produtos.length) {
			produtos[posicao] = produto;
			posicao++;
		} else {
			System.out.println("\nEstoque cheio!!");
		}
	}

	public void exibeEstoque() {
		for (int i = 0; i < produtos.length; i++)
			produtos[i].exibeProduto();
	}
	
	public void achaProduto(int codigoDoProduto){
		for (int i = 0; i < produtos.length; i++){
			if (codigoDoProduto == produtos[i].getCodigo()){
				produtos[i].exibeProduto();
			}
		}
	}

}

class Produto {
	private int codigo;
	private double preco;

	public Produto(int codigo, double preco) {
		this.codigo = codigo;
		this.preco = preco;
	}

	public int getCodigo() {
		return this.codigo;
	}

	public double getPreco() {
		return this.preco;
	}

	public void exibeProduto() {
		System.out.printf("%s%d%s%.2f", "\nProduto: ", getCodigo(),
				"\tPreço: ", getPreco());
	}
}
é claro que alguns passos ainda deveriam ser implementados, e;ou substituidos...como talvez o uso de exceptions ou outra estrutura para guardar seus dados, mas como exemplo rápido e 'sujo' segue essa sugestão...

[]s

Luciano

D

obrigado a todos pela ajuda

bom, ate agora consegui fazer ate esta parte

public class Estoque
{
    private Produto[] produtos;

    
    public Estoque(int quantidade)  
    {  
        produtos = new Produto[quantidade];   
    } 

    public Produto[] getProduto()
    {
        return produtos;
    }
   
    public void insereProdutos(int qt)
    {
     Teclado t = new Teclado();
       qt = t.leInt("INFORME A QUANTIDADE DE PRODUTOS");
        for(int i=0;qt<produtos.length;i++)
        {
          produtos[i] = new Produto(t.leInt("CODIGO:"),t.leDouble("Preco"));
          qt++;
        }
        
    }

    public void exibeEstoque()
    {
      for(int i=0;i<produtos.length;i++)
      System.out.println("Produto "+i+"Código:"+produtos[i].getCodigo()+"Valor:"+produtos[i].getPreco());   
    }

    public Produto[] produtoMaisCaro()
    {
       double mc = 0; // maior preco inicializado em 0//       
       for(int i=0;i<produtos.length;i++)
       { // se preco do produto contido no array maior que 0 substitui//
         if (produtos[i].getPreco() > mc)
           mc = produtos[i].getPreco();
         
       }
     }

  }

minha duvida esta neste metodo podem me ajudar?

produtoMaisCaro, que retorna o objeto produto que tem o preço mais alto

public Produto[] produtoMaisCaro()
    {
       double mc = 0; // maior preco inicializado em 0//       
       for(int i=0;i<produtos.length;i++)
       { // se preco do produto contido no array maior que 0 substitui//
         if (produtos[i].getPreco() > mc)
           mc = produtos[i].getPreco();
         
       }
Criado 16 de junho de 2009
Ultima resposta 16 de jun. de 2009
Respostas 6
Participantes 3