Problemas na integraçao das classes ou na logica, ajuda analise! obrigado

5 respostas
charles.eduardo

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????

5 Respostas

charles.eduardo

Problemas na integraçao das classes ou na logica, ajuda analise!!! obrigado

julianofischer

Ajudaria se você falasse qual o problema.

charles.eduardo

Eu tambem to não sei, sei que nao esta gerando a saida que eu queria. Na quinta classe que sera para iteraçao com o usuario

o codigo da linha 50 a 69, que deveria na linha 57 listar os departamentos porem nao ocorre. Eu fiquei meio perdido, então sem saber direito meus erros. Se puder ajudar de alguma forma agradeço…!!!

julianofischer

Amigo,
você usa alguma IDE?
upa o projeto pra mim aí que fica melhor testar daqui.
abraços

charles.eduardo

julianofischer:
Amigo,
você usa alguma IDE?
upa o projeto pra mim aí que fica melhor testar daqui.
abraços

Beleza na hora que sair do trabalho, passo… vlw

Criado 14 de março de 2010
Ultima resposta 16 de mar. de 2010
Respostas 5
Participantes 2