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
[code] //public class EmpresaPublica
{
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();
}
//----------------------------------------------------------------------------------------------------------------------------------------
}
public class Fornecedor
{
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;
}
}
}
public class Especialista
{
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 Main
{
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++;
}
}
} [/code]