[b]case 3 deve retonar pesquisa de departamento e
seus produtos só que esta retornando todos os
produtos cadastrados em qualquer departamento pesquisado
[/b]
import javax.swing.JOptionPane;
public class CadastroProdutoDepto {
public static void main(String[] args) {
Departamento dep[]=new Departamento[999];
Produto pro[]=new Produto[999];
int op=0;
int d=0;
int p=0;
while(true){
op=Integer.parseInt(JOptionPane.showInputDialog("1-CADASTRA DEPARTAMENTOO\n"+
"2-CADASTRAPRODUTO EM UM DEPARTAMENTO\n"+
"3-BUSCA POR DEPARTAMENTO \n"+
"4-PESQUISA POR PREÇO \n"+
"5-SAIR"));
switch(op){
//Começa a cadastrar Deptos
case 1:
dep[d]=new Departamento();
dep[d].setNomedepto(JOptionPane.showInputDialog("NOME DO DEPARTAMENTOO:"));
dep[d].setNomegerente(JOptionPane.showInputDialog("NOME DO GERENTE:"));
d=d+1;
break;
//Faz o cadastro dos Produtos
case 2:
String nome = (JOptionPane.showInputDialog("DEPARTAMENTO À CADASTRAR PRODUTOS" ));
for (int i=0;i<d;i++) {
if (nome.equalsIgnoreCase(dep[i].getNomedepto( ))){ //achou o departamento
JOptionPane.showMessageDialog(null, "DEPARTAMENTO :" + dep[i].getNomedepto( ));
pro[p]=new Produto();
pro[p].setNome(JOptionPane.showInputDialog("NOME DO PRODUTO "));
pro[p].setPreco(Double.parseDouble(JOptionPane.showInputDialog("PREÇO ")));
pro[p].setCodigo(Integer.parseInt(JOptionPane.showInputDialog("CÓDIGO DO PRODUTO ")));
pro[p].setDepartamento(dep[d]);
p=p+1;
break;
}
}
break;
//Faz a busca por Departamento e mostra os produtos relacionados
case 3:
String busca=JOptionPane.showInputDialog("DIGITE O DEPARTAMENTO DESEJADO");//O ERRO É POR AQUI
for(int i=0; i < d; i++){
if(busca.equalsIgnoreCase(dep[d].getNomedepto())){
for(i=0; i < p; i++){
JOptionPane.showMessageDialog(null,"PRODUTOS " + pro[i].getNome());
}
}
}
break;
//Faz a busca por valores
case 4:
double precoinicio=Double.parseDouble(JOptionPane.showInputDialog("DIGITE O VALOR MINIMO"));
double precofim=Double.parseDouble(JOptionPane.showInputDialog("DIGITE O VALOR MAXIMO"));
boolean valor=false;
for(int m=0; m < p; m++){
if(precoinicio <= pro[m].getPreco() && precofim >= pro[m].getPreco()){
valor=true;
JOptionPane.showMessageDialog(null,"PRODUTOS " + pro[m].getNome()+"PREÇOS " + pro[m].getPreco() );
}
}
if(! valor){
JOptionPane.showMessageDialog(null,"NENHUM VALOR CADASTRADO");
}
break;
case 5:
System.exit(0);
}
}
}
}
========================================================================================
public class Departamento {
private String nomeDepto;
private String nomeGerente;
public Departamento(){
nomeDepto="";
nomeGerente="";
}
public Departamento(String snomeDepto, String snomeGerente, Produto prod){
nomeDepto=snomeDepto;
nomeGerente=snomeGerente;
}
public void setNomedepto(String snomeDepto){
nomeDepto=snomeDepto;
}
public void setNomegerente(String snomeGerente){
nomeGerente=snomeGerente;
}
public String getNomedepto(){
return nomeDepto;
}
public String getNomegerente(){
return nomeGerente;
}
}
========================================================================================
public class Produto {
private int codigo;
private String nome;
private double preco;
Departamento departamento;
public Produto(){
codigo=0;
nome="";
preco=0.0;
departamento=null;
}
public Produto(int icodigo, String snome, double dpreco, Departamento depto){
codigo=icodigo;
nome=snome;
preco=dpreco;
departamento=depto;
}
public void setCodigo(int icodigo){
codigo=icodigo;
}
public void setNome(String snome){
nome=snome;
}
public void setPreco(double dpreco){
preco=dpreco;
}
public void setDepartamento(Departamento depto){
departamento=depto;
}
public int getCodigo(){
return codigo;
}
public String getNome(){
return nome;
}
public double getPreco(){
return preco;
}
public Departamento getDepartamento(){
return departamento;
}
public String getNomeDepartamento(){
return departamento.getNomedepto();
}
}