[code]
/*4) Escrever a classe Estoque, cujo atributo único é estoque, que é um ArrayList de
objetos da classe Mercadoria (exercício 3). A seguir, na mesma classe, escrever os
seguintes métodos:
a) um método construtor, sem parâmetros, que inicializa o atributo estoque;
*/
import java.util.ArrayList ;
import java.util.Iterator ;
import javax.swing.*;
public class Estoque {
private ArrayList estoque ;
// construtor
// inicializa o arraylist estoque
public Estoque () {
estoque = new ArrayList() ;
}
/*
* b) um método para incluir uma Mercadoria no estoque, que deve receber, usando
* parâmetros, os dados dessa Mercadoria (nome, preço unitário e quantidade);
*/
public void colocarProdutoNoEstoque(String nomeMercadoria, double precoMercadoria, double quantidadeMercadoria)
{
// criando um obj “m” para guardar os parametros passados pelo usuario
Mercadoria m = new Mercadoria (precoMercadoria, quantidadeMercadoria, nomeMercadoria);
// add o obj “m” no estoque
estoque.add(m);
//JOptionPane.showMessageDialog(null, “Produto colocado no carrinho.”);
}
// metodo que add um Obj da classe mercadoria ;;
public void colocarProdutoNoEstoque(Mercadoria novaM )
{
estoque.add(novaM);
//JOptionPane.showMessageDialog(null, "Produto colocado no carrinho.");
}
/*
*
* c) um método, o qual recebe por parâmetro o nome da Mercadoria, para remover
* uma mercadoria do estoque (Obs.: lembrar que o ArrayList estoque pode estar
* vazio ou que a Mercadoria fornecida no parâmetro pode não existir no ArrayList
* estoque ? nestes casos, o método deve apenas imprimir uma mensagem
* apropriada de erro);
*/
//
// este metodo pergunta ao usuario qual o nome , e busca no arraylist se o nome se existi retorna o indice senão retorna -1 ..
public int procurarMercadoria ( String nome ) {
//contador
int i = 0;
// enquanto ( indice < que array list estoque
while ( i < estoque.size() ) {
// casting obrigado
// Nomedaclasse obj = ( Nomedaclasse) arrayList.get(indice)
Mercadoria m = (Mercadoria ) estoque.get(i) ;
// esse if compara o o nome inserido pelo usuario com o nome que retorna o metodo do nome da cLasse Mercadoria
// se (nomeInseriDoPeloUsuario.equals(obj.metodoQueRetornaOnome())
if ( nome.equals (m.getNome ()) ){
// se encontado retorn o indice
return i ;
}
i ++ ;
}
// senão retoro - 1
return -1;
}
public void romover ( String nome ) {
int resp = procurarMercadoria (nome) ;
if ( resp == -1 ) {
JOptionPane.showMessageDialog ( null, "o produto não existi no estoque ");
}
else{
estoque.remove(resp);
JOptionPane.showMessageDialog ( null, " produto removido com sucesso ");
}
}
/*
*
* d) um método, o qual recebe por parâmetro o nome da Mercadoria, que imprime
* os dados dessa Mercadoria, caso essa Mercadoria exista no estoque;
*/
public void imprimirDados (String nome ) {
int resp = procurarMercadoria ( nome ) ;
Mercadoria m = (Mercadoria ) estoque.get(resp);
if ( resp == -1) {
JOptionPane.showMessageDialog ( null, "o produto não existi no estoque ");
}
else {
JOptionPane.showMessageDialog ( null, " Nome da Mercadoria : " + m.getNome() + " \n " + "Quantidade em Estoque: " +m.getQuantidade () + "\n " + "Preço Unitário (R$): " + m.getPrecoUnitario () );
}
}
/*
* e) um método, sem parâmetros, que imprima uma lista do todas as Mercadorias
* do estoque, incluindo nome, preço unitário e quantidade de cada uma;
*/
public void listaDeMercadoria (){
int i = 0 ;
String saida ="";
while ( i < estoque.size() ) {
Mercadoria m = (Mercadoria ) estoque.get(i) ;
saida = saida + " Nome da Mercadoria : " + m.getNome() + " \n " + "Quantidade em Estoque: " +m.getQuantidade () + "\n " + "Preço Unitário (R$): " + m.getPrecoUnitario () ;
i ++ ;
}
JOptionPane.showMessageDialog ( null, saida);
}
// f) um método, sem parâmetros, que retorne o valor total do estoque, em reais.
public String totalEmreais (){
int i = 0 ;
String saida = " ";
double soma =0;
double total =0;
while ( i < estoque.size()){
Mercadoria m = (Mercadoria) estoque.get(i);
soma = m.getQuantidade() * m.getPrecoUnitario() ;
total = total + soma ;
i++;
}
saida = saida +" O valor total do estoque é R$ " + total;
return saida ;
}
}
[/code]
Eaee pessoas essa é a melhor forma de fazer …o ultima metodo , posso retorna assim mesmo , não entendi como o professor quer. ?queria retorna a quantidade em reais tipo R$ 70,00 .