Problema de lógica

1 resposta
W

Bom meu trabalho consiste em uma licitação pública onde a partir de uma classe EMPRESAPUBLICA se cria uma licitação então a licitação é enviada a três fornecedore previamente cadastrados dependendo do tipo da condição o fornecedor envia ou não uma proposta. Só não to conseguindo ver uma maneira da classe Especialista julgar uma licitação. A classe especialista não pode ter contato com os fornecedores, ela deve pegar os dados do fornecedor através da classe EmpresaPública

//[b]public class EmpresaPublica[/b]
{
    private String numero;
    private int objeto;
    private String descricao;
    private int tipo;
    Fornecedor fornecedores;   
    public EmpresaPublica(String numero, int objeto, String descricao, int tipo)
    {
        this.numero = numero;
        this.objeto = objeto;
        this.descricao = descricao;
        this.tipo = tipo;
   }
   public EmpresaPublica(Fornecedor fornecedores)
   {
       this.fornecedores = fornecedores;
   }        
   public String getNumero()
   {
       return this.numero;
   }
   public void  setNumero(String numero)
   {
       this.numero = numero;
   }
   public int getObjeto()
   {
       return this.objeto;
   }
   public void  setObjeto(int objeto)
   {
       this.objeto = objeto;
   }
   public String getDescricao()
   {
       return this.descricao;
   }
   public void setDescricao(String descricao)
   {
       this.descricao = descricao;
   }
   public int getTipo()
   {
       return this.tipo;
       
   }
   public void setTipo(int tipo)
   {
       this.tipo = tipo;
   }   
   public void imprimeDados()
   {
       System.out.println("NÚMERO: " + numero);
       System.out.println("OBJETO: " + objeto);
       System.out.println("DESCRIÇÃO: " + descricao);
       System.out.println("TIPO: " + tipo);
   }  
   //----------------------------------------------------------------------------------------------------------------------------------------
   //Através destes métodos a Empresa Pública recebe os dados das propostas dos agentes fornecedores
   //----------------------------------------------------------------------------------------------------------------------------------------
   public String getNomeFEP()
   {
       return fornecedores.getNome();
   }
   public int getAtividadecomercialFEP()
   {
       return fornecedores.getAtividadecomercial();
   }
   public double getPrecoFEP()
   {
       return fornecedores.getPreco();
   }
   public double getPrazoFEP()
   {
       return fornecedores.getPrazo();
   }
   //----------------------------------------------------------------------------------------------------------------------------------------
   
   
}
[b]public class Fornecedor[/b]
{
    private String nome;
    private int atividadecomercial;
    private double preco;
    private double prazo; 
    EmpresaPublica licitacao;
    public Fornecedor(String nome, int atividadecomercial, EmpresaPublica licitacao)
    {
        this.nome = nome;
        this.atividadecomercial = atividadecomercial;
        this.licitacao = licitacao;
    }
    public String getNome()
    {
        return this.nome;
    }
    public void setNome(String nome)
    {
        this.nome = nome;
    }
    public int getAtividadecomercial()
    {
        return this.atividadecomercial;
    }
    public void setAtividadecomercial(int atividadecomercial)
    {
        this.atividadecomercial = atividadecomercial;
    }
    public double getPreco()
    {
        return this.preco;
    }
    public void setPreco(double preco)
    {
        this.preco = preco;
    }
    public double getPrazo()
    {
        return this.prazo;
    }
    public void setPrazo(double prazo)
    {
        this.prazo = prazo;
        
    }   
    public void imprimeDados()
    {
        System.out.println("NOME: " +nome);
        System.out.println("ATIVIDADE COMERCIAL: " +atividadecomercial);
        System.out.println("PREÇO: " +preco);
        System.out.println("PRAZO: " +prazo);
        licitacao.imprimeDados();        
    } 
    //--------------------------------------------------------------------------------------------------------------------------------------
    //Através destes métodos os agentes fornecedores recebm da Empresa Pública os dados da licitação
    //--------------------------------------------------------------------------------------------------------------------------------------
    public String getNumeroEPF()
    {
        return licitacao.getNumero();
    }
    public int getObjetoEPF()
    {
        return licitacao.getObjeto();
    }
    public String getDescricaoEPF()
    {
        return licitacao.getDescricao();
    }
    public int getTipoEPF()
    {
        return licitacao.getTipo();
    }
    //---------------------------------------------------------------------------------------------------------------------------------------
    //Através deste método o agente fornecedor decide se participa na licitação
    //---------------------------------------------------------------------------------------------------------------------------------------
    
    public boolean avaliaParticipacao1()
    {
         if(licitacao.getObjeto() == (getAtividadecomercial()))
         {
             return true;
         }
         else
         {
             return false;
         }
    }
    public boolean avaliaParticipacao2()
    {
        if(licitacao.getTipo() == 1)
        {    
            return true;
        }
        else
        {    
            return false;
        }
    }    
    public boolean avaliaParticipacao3()
    {       
        if(licitacao.getTipo() == 2 || licitacao.getTipo() == 3)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    
}  
[b]public class Especialista[/b]
{
    private String nome;   
    EmpresaPublica licitacao;
    public Especialista(EmpresaPublica licitacao)
    {        
        this.licitacao = licitacao;
    }    
    public Especialista(String nome, EmpresaPublica licitacao)
    {
        this.nome = nome;
        this.licitacao = licitacao;
    }
    //---------------------------------------------------------------------------------------------------------------------------------------
    //Através destes métodos os agentes especialistas recebem da Empresa Pública os dados da licitação 
    //---------------------------------------------------------------------------------------------------------------------------------------
    public String getNumeroEPE()
    {
        return licitacao.getNumero();
    }
    public int getObjetoEPE()
    {
        return licitacao.getObjeto();
    }
    public String getDescricaoEPE()
    {
        return licitacao.getDescricao();
    }
    public int getTipoEPE()
    {
        return licitacao.getTipo();
    }
    
    //---------------------------------------------------------------------------------------------------------------------------------------
    //Através destes métodos os agentes especialistas recebem da Empresa Pública os dados das propostas
    //---------------------------------------------------------------------------------------------------------------------------------------
    public String getNomeFEPE()
    {
        return licitacao.getNomeFEP();
    }
    public int getAtividadecomercialFEPE()
    {
        return licitacao.getAtividadecomercialFEP();
    }
    public double getPrecoFEPE()
    {
        return licitacao.getPrecoFEP();
    }
    public double getPrazoFEPE()
    {
        return licitacao.getPrazoFEP();
    }
    //---------------------------------------------------------------------------------------------------------------------------------------
    //Através destes métodos os agentes especialistas julgam as propostas recebidas pela Empresa Pública
    //---------------------------------------------------------------------------------------------------------------------------------------
     
    public void imprimeDados()
    {
        System.out.println("NOME: " +nome);
        licitacao.imprimeDados();
        
    }                
                
 }
import java.util.Scanner;
public class [b]Main    [/b]           
{              
    public static void main(String[] args) 
    {
        Scanner dados = new Scanner(System.in); 
        System.out.println("\t\t-----------------------$-------------------------");
        System.out.println("\t\t--------------------WELCOME----------------------"); 
        System.out.println("\t\t-----------------------$-------------------------");       
        System.out.println("\t\t--------------------BEMVINDO---------------------"); 
        System.out.println("\t\t-----------------------$-------------------------");
        System.out.println("NOVA LICITAÇÃO ");
        System.out.println("-------------- ");
        System.out.println("CARO FUNCIONÁRIO PARA CRIAR UMA NOVA LICITAÇÃO PREENCHA OS DADOS ABAIXO: ");
        System.out.println("------------------------------------------------------------------------ ");
        System.out.println("NÚMERO: ");         
        String numero = dados.next();  
        System.out.println("OBJETO: ");  
        System.out.println("1)BENS E IMÓVEIS"); 
        System.out.println("2)PRESTAÇÃO DE SERVIÇOS"); 
        System.out.println("3)MATERIAL DE USO E CONSUMO\n");
        int objeto = dados.nextInt();   
        while((objeto < 1) || (objeto > 3))
        {
            System.out.println("NÚMERO INVÁLIDO! POR FAVOR DIGITE UM VALOR ENTRE 1 E 3");
            System.out.println("OBJETO: ");  
            System.out.println("1)BENS E IMÓVEIS");
            System.out.println("2)PRESTAÇÃO DE SERVIÇOS"); 
            System.out.println("3)MATERIAL DE USO E CONSUMO\n");
            objeto = dados.nextInt();            
        }    
        System.out.println("DESCRIÇÃO: ");  
        String descricao = dados.next(); 
        System.out.println("TIPO: "); 
        System.out.println("1)MELHOR PREÇO"); 
        System.out.println("2)MEHOR TÉCNICA"); 
        System.out.println("3)MELHOR TÉCNICA E PREÇO\n");
        int tipo = dados.nextInt();
        while((tipo < 1) || (tipo > 3))
        {
            System.out.println("NÚMERO INVÁLIDO! POR FAVOR DIGITE UM VALOR ENTRE 1 E 3");
            System.out.println("OBJETO: ");  
            System.out.println("1)BENS E IMÓVEIS");
            System.out.println("2)PRESTAÇÃO DE SERVIÇOS"); 
            System.out.println("3)MATERIAL DE USO E CONSUMO\n");
            tipo = dados.nextInt();            
        }                 
        EmpresaPublica licitacao = new EmpresaPublica(numero, objeto, descricao, tipo);  
        Especialista[] especialistas = new Especialista[3];
        especialistas[0] = new Especialista("Especialista1", licitacao);
        especialistas[1] = new Especialista("Especialista2", licitacao);
        especialistas[2] = new Especialista("Especialista3", licitacao);
        Fornecedor[] fornecedores = new Fornecedor[3];
        fornecedores[0] = new Fornecedor("Fornecedor1", 1, licitacao);
        fornecedores[1] = new Fornecedor("Fornecedor2", 2, licitacao);
        fornecedores[2] = new Fornecedor("Fornecedor3", 2, licitacao);        
        int i = 0;
        while(i < fornecedores.length)
        {
            if(fornecedores[i].avaliaParticipacao1() == true)
            {
                  licitacao = new EmpresaPublica(fornecedores[i]);
                  System.out.println("\t\tBEM VINDO  " +fornecedores[i].getNome());
                  System.out.println("CARO FORNECEDOR PARA CRIAR UMA PROPOSTA PREENCHA OS DADOS ABAIXO: ");
                  System.out.println("PREÇO: ");         
                  double preco = dados.nextDouble();  
                  System.out.println("PRAZO: ");         
                  double prazo = dados.nextDouble();                  
                  fornecedores[i].setPreco(preco);                  
                  fornecedores[i].setPrazo(prazo);             
                  
            }      
            else
            {
                if(fornecedores[i].avaliaParticipacao2() == true)
                {
                    licitacao = new EmpresaPublica(fornecedores[i]);
                    System.out.println("\t\tBEM VINDO  " +fornecedores[i].getNome());
                    System.out.println("CARO FORNECEDOR PARA CRIAR UMA PROPOSTA PREENCHA OS DADOS ABAIXO: ");
                    System.out.println("PREÇO: ");  
                    double preco = dados.nextDouble();  
                    System.out.println("PRAZO: ");     
                    double prazo = dados.nextDouble();    
                    fornecedores[i].setPreco(preco);                
                    fornecedores[i].setPrazo(prazo);
                }
                if(fornecedores[i].avaliaParticipacao3() == true)
                {
                    System.out.println("CARO FORNECEDOR O OBJETO DA LICITAÇÃO NÃO CORRESPONDE A SUA ATIVIDADE COMERCIAL");
                    System.out.println("TEM CERTEZA QUE DESEJA ENVIAR SUA PROPOSTA? ");
                    System.out.println("1)SIM");
                    System.out.println("2)NÃO");
                    int opcao = dados.nextInt(); 
                    if(opcao == 1)
                    {
                         licitacao = new EmpresaPublica(fornecedores[i]);
                         System.out.println("\t\tBEM VINDO  " +fornecedores[i].getNome());
                         System.out.println("CARO FORNECEDOR PARA CRIAR UMA PROPOSTA PREENCHA OS DADOS ABAIXO: ");
                         System.out.println("PREÇO: ");         
                         double preco = dados.nextDouble();  
                         System.out.println("PRAZO: ");         
                         double prazo = dados.nextDouble();                  
                         fornecedores[i].setPreco(preco);
                         fornecedores[i].setPrazo(prazo);
                         
                    }    
                    else
                    {    
                         System.out.println("NÃO PARTICIPOU DA LICITAÇÃO: " +fornecedores[i].getNome());
                    }            
                }        
            } 
            
         i++;
        }
        
        
       
      
       
    }   
}

1 Resposta

rafaeldiego

para que fique claro o entendimento dos que vierem aqui tentar ajudar (inclusive eu), tente editar o seu post e colocar todo o código entre as tags, como se recomenda aqui no GUJ.

ex:

[ code ]  //(sem espaços entre os caracteres)

public class bla blabla{

int blablabla = 0;

}

[ /code ] //(sem espaços entre os caracteres)

fica assim:

public class bla blabla{
      int blablabla = 0;
}
Criado 28 de outubro de 2008
Ultima resposta 28 de out. de 2008
Respostas 1
Participantes 2