Ola pessoal
vou ter uma prova quinta feira sobre arrays unidimensionais
e estou em duvida em um exercicio
- 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)
}
}
}
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?
nao peguei muito bem arrays, estou em duvida se estou fazendo certo na parte de inserir produtos
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
fiquei em duvida de como fazer isso
vai ai uma pequena sugestão para iniciar… [code]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());
}
}[/code]é 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
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();
}