Ta certo?

2 respostas
B

Esta certo o que foi pedido?

Classe Pedido
Método Construtor deve receber os seguinte parâmetros: Um Cliente, Um Vendedor, Classe Pedido, método Construtor deve receber os seguinte parâmetros:
Um Cliente, Um Vendedor, adicionarProduto ? adiciona um determinado produto ao pedido nformando a quantidade a ser adicionada.
O produto deve estar disponível (atributo disponibilidade);
A quantidade de parâmetro deve ser maior que zero;
Ao adicionar o produto a quantidade do produto no pedido deve
ser menor ou igual ao estoque do produto (atributo estoque do
objeto de Produto);
Só poderá ser adicionado um produto na lista se ele ainda não
fizer parte do pedido (não existir na lista);
Ao adicionar o produto a lista, retirar do estoque a quantidade
informada;
Retornar boolean true para sucesso ao adicionar o produto e false
se não atendeu os requisitos; retirarProduto ? retira um determinado produto do pedido.
o Se o produto existir no pedido:
retornar a quantidade de estoque ao produto;
Remover o produto da lista;
Exibir mensagem de retirada do produto;
Retornar true, Se o produto não existir no pedido, Exibir mensagem informando que o produto não faz parte do pedido, retornar false, concluirPedido ? conclui o pedido e exibe as informações do pedido e seus
produtos. Validar a existência de pelo menos 1 (um) produto no pedido para
ser um pedido válido; Se não houver produtos exibir uma mensagem
informada

classe pedido
import java.util.List;
import java.util.ArrayList;
import lojas.Produtos;
/**
 *
 * @author raphael
 */
public class Pedido {
    public List<Produtos> produtos;

    
    
    public Pedido() {
        produtos = new ArrayList();
    
        
    }

    /*Verifica se um determinado produto (parProduto) existe na lista*/
    
    private int existeProduto(Produto parProduto){
        int retorno = -1;   /*pressupõe que não encontrará o produto*/
        Produtos p;
        /*percorre toda a lista em busca do produto*/
        for (int i = 0; i < produtos.size(); i++) {
            /*i define o index de um objeto da lista*/
            p = produtos.get(i);    /*p faz referencia a um objeto da lista de index i*/
            if (p.produto.equals(parProduto)) { /*Verifica se o produto de produtos é igual ao parProduto*/
                retorno = i;
                break; // cai fora do laço de pesquisa
            }
        }
        return retorno; /*retorna -1 ou o index do produto na lista*/
    }
    
    public boolean adicionarProduto(Produto produto, int quantidade) {
        boolean retorno = false;
        
        if (this.existeProduto(produto) < 0) { //Se o produto ainda não foi adicionado ao pedido
            if ( produto.getEstoque() >= quantidade ) {
                if (true /*se todas as validações forem atendidas*/) {
                    //retirar estoque do produto
                    Produtos objProdutos = new Produtos(produto, quantidade);
                    this.produtos.add(objProdutos);
                }
            } else {
                System.out.println("Estoque indisponível para o produto " + produto.getNome());
            }
        } else {
            System.out.println("O produto já faz parte do pedido, para alterar a quantidade retire o produto e informe nova quantidade.");
        }
        return retorno;
    }   /*fim de adicionarProduto(Produto produto, int quantidade)*/

    public boolean retirarProduto(Produto produto) {
        boolean retorno = false;
        int indice = this.existeProduto(produto);   /*recebe -1 ou a posição do produto na lista*/
        if (indice >= 0) { //Se o produto ainda não foi adicionado ao pedido
            this.produtos.remove(indice);
        } else {
            System.out.println("O produto não faz parte do pedido.");
        }
        return retorno;
    }   /*fim de adicionarProduto(Produto produto, int quantidade)*/

    
    /*Verifica se um determinado produto (parProduto) existe na lista*/
    public boolean concluirPedido(){
        boolean retorno = false;
        
        if (this.produtos.size() > 0) { /*é válido se houver produtos no pedido*/
            
            //Exibir dados do pedido
            //this.cliente.getNome();
            System.out.println("#### DADOS DO PEDIDO ####");

            //percorre toda a lista para exibir produtos
            for (int i = 0; i < produtos.size(); i++) {
                System.out.println("Produto: " + produtos.get(i).produto.getNome().toUpperCase());
                System.out.println("   #Valor: " + produtos.get(i).produto.getValor());
                System.out.println("   #Quantidade: " + produtos.get(i).getQuantidade());
                System.out.println("   ### Total Produto: " + produtos.get(i).totalProduto());
            }
            
            //Exibir total do pedido
            System.out.println("TOTAL DO PEDIDO: " + "total");

        } else {
            System.out.println("Pedido inválido. Não há produtos no pedido.");
        }
        
        return retorno; /*retorna -1 ou o index do produto na lista*/
    }
 
} 
/*fim da classe*/
... classe produto
public class Produto {
    private String nome;
    private int valor;
    private int estoque;

    public Produto(String nome, int valor, int estoque) {
        this.nome = nome;
        this.valor = valor;
        this.estoque = estoque;
    }

    public int getEstoque() {
        return estoque;
    }

    public void setEstoque(int estoque) {
        this.estoque = estoque;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getValor() {
        return valor;
    }

    public void setValor(int valor) {
        this.valor = valor;
    }

    void adicionarEstoque(int i) {     [b][i][u]Aki ? qyue que eu faço....[/b][/i][/u]
        throw new UnsupportedOperationException("Not yet implemented");
    }
    
    
    
}

Gente agradeço desde ja, so verificar se estar certo, opnioes....
abraços

2 Respostas

lina

Oi,

Apenas algumas observações:

- Método Construtor deve receber os seguinte parâmetros: Um Cliente, Um Vendedor, Classe Pedido
Método construtor de quem? Mesmo assim em nenhum construtor esta fazendo isso....
-Ao adicionar o produto a quantidade do produto no pedido deve ser menor ou igual ao estoque do produto (atributo estoque do objeto de Produto);
Na classe Produto.java deveria ter um método para este controle, algo como EstoqueConsultar(Pedido)

No código abaixo:

public boolean adicionarProduto(Produto produto, int quantidade) {  
        boolean retorno = false;  
          
        if (this.existeProduto(produto) < 0) {
            if ( produto.getEstoque() >= quantidade ) {  
                if (true /*se todas as validações forem atendidas*/) {  // ?????? Se deve entrar sempre aqui, retira o IF
                
                    Produtos objProdutos = new Produtos(produto, quantidade);  
                    this.produtos.add(objProdutos);  
                }  
            } else {  
                System.out.println("Estoque indisponível para o produto " + produto.getNome());  
            }  
        } else {  
            System.out.println("O produto já faz parte do pedido, para alterar a quantidade retire o produto e informe nova quantidade.");  
        }

E detalhe: Not implemented yet

Tchauzin!

B

Ah sim,valeu… mais esta certo ?
so criar o construtor?
abraço valeu

Criado 23 de novembro de 2011
Ultima resposta 24 de nov. de 2011
Respostas 2
Participantes 2