Por favor alguem poderia me ajudar? Nao tenho certeza onde estao os erro, se é no meio de integrar a logica...
segue o codigo;
a Primeira classe é de Produtos que é associada a um objeto da classe Departamento, com seus getters e setters.
a segunda classe seria a classe Departamento tb com seus getters e setters respectivos.
a Terceira classe, seria uma classe para manipular os objetos da Produto, com as seguintes funçoes:
cadastrar um novo produto
pesquisar os produtos por departamento e
pesquisar por faixa de preço segue a classe.:
public class InterfaceProduto {
private Produto[] produto = new Produto[200];
private int totalDeProdutos = 0;
//observação aqui diz exportando tipo não publico através de API publica
//Metodo para cadastrar produtos
public void cadastrarProdutos(Produto produto) {
this.produto[totalDeProdutos] = produto;
totalDeProdutos++;
}//fim do metodo para cadastrar produtos
//Pesquisar os produtos por departamento
public String pesquisaPorDepartamento(String nomeDepartamento) {
//StringBuild para armazenar o resultado da pesquisa
StringBuilder resultadoPesqDepartamento = new StringBuilder();
resultadoPesqDepartamento.append(nomeDepartamento);
resultadoPesqDepartamento.append("\n\n");
boolean pesquisaEfetivada = false;
//Inicio da iteração para pesquisa
for (int i = 0; i < totalDeProdutos; i++) {
//Inicio da buscar por Departamento
if (produto[i].getDeps().getNomeDep().equalsIgnoreCase(nomeDepartamento)) {
resultadoPesqDepartamento.append(produto[i].getCodProduto());
resultadoPesqDepartamento.append("\t");
resultadoPesqDepartamento.append(produto[i].getNomeProduto());
resultadoPesqDepartamento.append("\t");
resultadoPesqDepartamento.append(produto[i].getValorProduto());
resultadoPesqDepartamento.append("\n");
pesquisaEfetivada = true;
} // fim do comando condicio if para escrita do resultado
}//fim do laço de repetiçao da busca
//comando condicional para saber se foi efetivada a busca com sucesso ou nao
if (pesquisaEfetivada = false) {
resultadoPesqDepartamento.append(nomeDepartamento);
resultadoPesqDepartamento.append("\n\n Não Existem Produtos Cadastrados Neste Departamento");
return resultadoPesqDepartamento.toString();
} else {
return resultadoPesqDepartamento.toString();
} //fim do comando pra devolver o resultado das pesquisa
}// fim da funçao pesquisa por departamento
public String pesquisaFaixaDePreco(String valor1, String valor2) {
//primeiro fazer cast para double
double menorvalor = Double.parseDouble(valor1);
double maiorvalor = Double.parseDouble(valor2);
//laço condicional para descobrir qual dos valores é maior;
if (maiorvalor < menorvalor) {
double aux = maiorvalor;
maiorvalor = menorvalor;
menorvalor = aux;
}//fim do casting para pesquisa
//StringBuilder para armazenar o resultado da Busca
StringBuilder resultadoPesquisaFaixaDePreco = new StringBuilder();
resultadoPesquisaFaixaDePreco.append("Pesquisa por Produtos compreendidos entre.: ");
resultadoPesquisaFaixaDePreco.append(" R$");
resultadoPesquisaFaixaDePreco.append(menorvalor);
resultadoPesquisaFaixaDePreco.append(" e ");
resultadoPesquisaFaixaDePreco.append(maiorvalor);
resultadoPesquisaFaixaDePreco.append("\n\n");
boolean pesquisaEfetivada = false;
for (int i = 0; i < totalDeProdutos; i++) {
if (produto[i].getValorProduto() >= menorvalor && produto[i].getValorProduto() <= maiorvalor) {
resultadoPesquisaFaixaDePreco.append(produto[i].getCodProduto());
resultadoPesquisaFaixaDePreco.append("\t");
resultadoPesquisaFaixaDePreco.append(produto[i].getNomeProduto());
resultadoPesquisaFaixaDePreco.append("\t");
resultadoPesquisaFaixaDePreco.append(produto[i].getValorProduto());
resultadoPesquisaFaixaDePreco.append("\t");
resultadoPesquisaFaixaDePreco.append(produto[i].getDeps().getNomeDep());
pesquisaEfetivada = true;
}//fim do comando condicional da pesquisa
}//fim do laço de repetiçao para a pesquisa
//Comando Condicional para verificar os resultados da pesquisa
if (pesquisaEfetivada = false) {
resultadoPesquisaFaixaDePreco.append("Nao Existem produtos com entre os valores solicitados");
return resultadoPesquisaFaixaDePreco.toString();
} else {
return resultadoPesquisaFaixaDePreco.toString();
}//fim do comando condicional para retornar o resultado
}//fim da função pesquisa por faixa de preço
}//fim da Clase Interface para Manipulaçao dos Produtos
A quarta classe que criei seria para manipular os objetos da classe Departamento, criá-los e listá-los...segue o codigo:
public class InterfaceDepartamento {
private Departamento[] departamento = new Departamento[20];
private int totalDeDepartamentos = 0;
//observação aqui diz exportando tipo não publico através de API publica
//metodo para cadastrar os departamentor
public void cadastrarDepartamento(Departamento dDepartamento){
this.departamento[totalDeDepartamentos] = dDepartamento;
totalDeDepartamentos++;
}
public String listarDepartamentos(){
StringBuilder listaDosDepartamentos = new StringBuilder();
boolean ocorrenciaemlista = false;//busca se existem cadastramentos
for (int i = 0; i < departamento.length; i++) {
int j = i;
j++;
listaDosDepartamentos.append(j);
listaDosDepartamentos.append(" - ");
listaDosDepartamentos.append(departamento[i].getNomeDep());
listaDosDepartamentos.append("\n");
ocorrenciaemlista = true;//assina como ouve ocorrencia de departamentos
} // fim da iteração da lista do departamento
//comando condicional para verificar se existiam departamentos a serem listados
if (ocorrenciaemlista = false) {
//se a lista estiver vazia retorna a string informando o usuario
listaDosDepartamentos.append("Não Existem Departamentos Cadastrados");
return listaDosDepartamentos.toString();
} else {
return listaDosDepartamentos.toString();
}
} // fim da funçao listar departamentos
public Departamento retornaDepartamento(int indice){
indice --;
return this.departamento[indice];
}
}// fim da classe para manipular os departamentos
A quinta classe que contem o metodo main seria para a interação com o usuario, e feita somente com JOptions intencionalmente por estarmos usando por enquanto somente o msm para nos familiarizar-mos segue o codigo:
public class Aplicativo0_3 {
public static void main(String args[]){
InterfaceProduto manipuladorProduto = new InterfaceProduto();
InterfaceDepartamento manipuladorDepartamento = new InterfaceDepartamento();
Departamento auxiliarDepartamento = new Departamento();
int leEntradas = 0; //variavel usada para a captura da entrada do primeiro JOption
String sEntradaDepart = "";
double leEntradaDeValores = 0;
double leEntradaDeValores2 = 0;
String SleEntradaDeValores = "";
String SleEntradaDeValores2 = "";
int cadastrar; // variavel auxiliar para o direcionamento do fluxo de dados
int pesquisar; // variavel auxiliar para o direcionamento do fluxo de dados
int contador; // variavel auxiliar para o laço
int iprod = 0; // variavel auxiliar para os laços
int idep = 0; // variavel auxiliar para os laços
StringBuilder listagemDosDepartamentos = new StringBuilder(); // variavel usada para exibiçao da lista dos departamentos
boolean retornarInicio = true;
while (retornarInicio == true) {
//Primeiro JOption mostra as opçoes iniciais : cadastrar ou procurar
leEntradas = Integer.parseInt(JOptionPane.showInputDialog("Digite... \n\n"
+ "1 - Cadastrar\n" + "2 - Pesquisar"));
//expressão para controlar o fluxo de dados das primeiras opçoes
switch(leEntradas){
case 1 :
cadastrar = Integer.parseInt(JOptionPane.showInputDialog(
"CADASTRAMENTO \nDigite... \n\n 1 - Produtos \n 2 - Departamento"));
//expressao para avaliar o tipo de cadastro a ser feito
switch(cadastrar) {
case 1 :
String codProduto = JOptionPane.showInputDialog("Digite "
+"o código do produto.:");
String nomeProduto = JOptionPane.showInputDialog("Digite o "
+"nome do produto.:");
double valorProduto = Double.parseDouble(JOptionPane.
showInputDialog("Digite o valor do produto.:"));
//escolha para cadastrar ou verificar um departamento ja criado
int opçaoDepartamento = Integer.parseInt(JOptionPane.
showInputDialog("DEPARTAMENTOS \n\n Digite... "
+"\n1 - Listar os Departamentos existentes "
+"\n 2 - Cadastrar Novo Departamento"));
//inicio do comando condicional para a escolha entre listar e cadastrar departamento
if (opçaoDepartamento == 1) {
leEntradas = Integer.parseInt(JOptionPane.showInputDialog(manipuladorDepartamento.listarDepartamentos()));
auxiliarDepartamento = manipuladorDepartamento.retornaDepartamento(leEntradas);
//atribuição aos objeto Produto completa
Produto produtos = new Produto(codProduto,nomeProduto,valorProduto, auxiliarDepartamento);
manipuladorProduto.cadastrarProdutos(produtos);
break;
} else {
//passa adiante
break;
}//fim do comando condicional para a primeira iteraçao dos departamentos
case 2 :
//cadastrando um novo departamento e associando-o a linha corrente
String nomeDepartamento = JOptionPane.showInputDialog(
"Digite o nome do Departamento.:");
String nomeGerente = JOptionPane.showInputDialog("Digite o "
+"nome do gerente.:");
Departamento departamentos = new Departamento(nomeDepartamento,nomeGerente);
auxiliarDepartamento = departamentos;
manipuladorDepartamento.cadastrarDepartamento(departamentos);
retornarInicio = true;
break;
default:
JOptionPane.showMessageDialog(null, "Entrada Invalida");
break;}
case 2 :
pesquisar = Integer.parseInt(JOptionPane.showInputDialog("PESQUISA "
+"\n\n " + "Digite... \n\n 1 - Por Departamento "
+"\n 2 - Faixa de Valores"));
//inicio das pesquisas
try{
if (pesquisar == 1) {
sEntradaDepart = JOptionPane.showInputDialog("Digite"
+ " o codigo do departamento a ser pesquisado.:"
+ manipuladorDepartamento.listarDepartamentos());
manipuladorProduto.pesquisaPorDepartamento(sEntradaDepart);
}
//Inicio Pesquisa por valores
else {
SleEntradaDeValores = JOptionPane.showInputDialog("Digite"
+ " o 1º valor.: ");
SleEntradaDeValores2 = JOptionPane.showInputDialog("Digite"
+ " o 2º valor.: ");
JOptionPane.showMessageDialog(null, manipuladorProduto.pesquisaFaixaDePreco(SleEntradaDeValores,SleEntradaDeValores2));
} // fim do if-else das pesquisas
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Entrada Invalida");
retornarInicio = true;
}
break;
default: JOptionPane.showMessageDialog(null, "Entrada Invalida");
break;
}//final do controlador switch da janela principal
} //final do comando de repetiçao while
} // fim do metodo main
}//fim da classe Aplicativo 0_3
Alguem poderia me ajudar????