import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner dados = new Scanner(System.in);
System.out.println("\t\t--------------------BEM VINDO---------------------");
System.out.println("NOVA LICITAÇÃO ");
System.out.println("CARO FUNCIONÁRIO PARA CRIAR UMA NOVA LICITAÇÃO PREENCHA OS DADOS ABAIXO: ");
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))//ESPÉCIE DE TRATAMENTO DE EXCESSÃO :)
{
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))//ESPÉCIE DE TRATAMENTO DE EXCESSÃO :)
{
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", 1, licitacao);
fornecedores[2] = new Fornecedor("Fornecedor3", 1, licitacao);
int i = 0;
double[] precos = new double[3];
double[] prazos = new double[3];
String[] nomes = new String[3];
int x = 0;
int flag2 = 0;
while(i < fornecedores.length)
{
int flag = 0;
if(fornecedores[i].avaliaParticipacao1() == true)
/*AQUI CADA AGENTE FORNECEDOR VERIFICA SE O OBJETO DA LICITAÇÃO CORRESPONDE A SUA ATIVIDADE COMERCIAL
CASO A CONDIÇÃO SEJA VERDADEIRA O DETERMINADO AGENTE FORNECEDOR FORMULA UMA PROPOSTA*/
{
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
{
/*CASO DETERMINADO FORNECEDOR VERIFIQUE QUE O OBJETO DA LICITAÇÃO NÃO CORRESPONDA A SUA ATIVIDADE COMERCIAL, ENTÃO ELE
VERIFICA SE O TIPO DA LICITAÇÃO É MELHOR PREÇO, CASO A CONDIÇÃO SEJA SATISFEITA ELE FORMULA UMA PROPOSTA POIS O JULGAMENTO
DO TIPO MENOR PREÇO NÃO LEVA A CAPACIDADE TÉCNICA DO FORNECEDOR*/
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);
}
/*JÁ CASO DETERMINADO FORNECEDOR VERIFIQUE QUE O OBJETO DA LICITAÇÃO NÃO CORRESPONDA A SUA ATIVIDADE COMERCIAL E QUE O TIPO
DA LICITAÇÃO É MELHOR TÉCNICA OU MELHOR TÉCNICA E PREÇO, ENTÃO O SISTEMA O ALERTA SOBRE A POSSÍVEL DESVANTAGEM QUE ELE POSSA
TER JÁ QUE O JULGAMENTO DE QUALQUER UM DOS TIPOS LEVA EM CONTA A COMPATIBILIDADE ENTRE O OBJETO DA LICITAÇÃO E A ATIVIDADE
COMERCIAL DO FORNECEDOR E PERGUNTA SE ELE DESEJA OU NÃO PARTICIPAR DO PROCESSO LICITATÓRIO*/
if(fornecedores[i].avaliaParticipacao3() == true)
{
System.out.println("\t\tBEM VINDO " +fornecedores[i].getNome());
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();
while((opcao < 1) || (opcao > 2))//ESPÉCIE DE TRATAMENTO DE EXCESSÃO :)
{
System.out.println("NÚMERO INVÁLIDO! POR FAVOR DIGITE 1 OU 2");
System.out.println("TEM CERTEZA QUE DESEJA ENVIAR SUA PROPOSTA? ");
System.out.println("1)SIM");
System.out.println("2)NÃO");
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
{ /*O FLAG É UM RECURSO UTILIZADO PELO AGENTE EMPRESA PÚBLICA, QUE O INFORMA CASO ALGUM FORNECEDOR NÃO TENHA PARTICIPADO DA
LICITAÇÃO*/
flag = 1;
/*O FLAG2 ASSIM COMO O FLAG FUNCIONA COMO UM ALERTA DO AGENTE EMPRESA PÚBLICA. CADA VEZ QUE O FLUXO ENTRA NESSE LAÇO SIGNIFICA QUE DETERMINADO
FORNECEDOR NÃO PARTICIPOU DA LICITAÇÃO. CADA VEZ QUE ISSO ACONTECE O AGENTE EMPRESA PÚBLICA SOMA 1 AO VALOR DA FLAG2. APÓS ISSO
O AGENTE EMPRESA PÚBLICA SETA O VALOR DA FLAG2 PARA O SEU NOVO VALOR*/
flag2 = flag2 + 1;
licitacao.setFlagEP(flag);
licitacao.setFlag2EP(flag2);
System.out.println("\n\nEMPRESA PUBLICA: " +fornecedores[i].getNome()+ " NÃO PARTICIPOU DA LICITAÇÃO: \n\n");
}
}
}
/*AS TRÊS ESTRUTURAS CONDICIONAIS ABAIXO REPRESENTAM CADA AGENTE ESPECIALISTA VERIFICANDO DE DETERMINADO FORNECEDOR PARTICIPOU OU NÃO
DA LICITAÇÃO ATRAVÉS DA UTILIZAÇÃO DO RECURSO FLAG DO AGENTE EMPRESA PÚBLICA, ENTÃO CASO ALGUM AGENTE FORNECEDOR PARTICIPE DA LICITAÇÃO
O AGENTE ESPECIALISTA CAPTURA A PROPOSTA DO DETERMINADO AGENTE ATRAVÉS DOS MÉTODOS UTILIZADOS PELO AGENTE EMPRESA PÚBLICA*/
if(especialistas[0].getFlagE() == 0)
{
especialistas[0] = new Especialista(licitacao);
precos[x] = especialistas[0].getPrecoFEPE();
prazos[x] = especialistas[0].getPrazoFEPE();
nomes[x] = especialistas[0].getNomeFEPE();
}
if(especialistas[1].getFlagE() == 0)
{
especialistas[1] = new Especialista(licitacao);
precos[x] = especialistas[1].getPrecoFEPE();
prazos[x] = especialistas[1].getPrazoFEPE();
nomes[x] = especialistas[1].getNomeFEPE();
}
if(especialistas[2].getFlagE() == 0)
{
especialistas[2] = new Especialista(licitacao);
precos[x] = especialistas[2].getPrecoFEPE();
prazos[x] = especialistas[2].getPrazoFEPE();
nomes[x] = especialistas[2].getNomeFEPE();
}
x++;
i++;
}
/*AQUI O AGENTE EMPRESA PÚBLICA VERIFICA SE O VALOR DO FLAG2 = 3. SE A CONDIÇÃO FOR VERDADEIRA ELE DEDUZ QUE NENHUM FORNECEDOR PARTICIPOU DA
LICITAÇÃO, JÁ CASO A CONDIÇÃO NÃO SEJA SATISFEITA O FLUXO DO PROGRAMA PASSA PARA OS AGENTES ESPECIALISTAS QUE POSSUEM RESPONSABILIDADE DE
JULGAR QUAL PROPOSTA É A MAIS VANTAJOSA DENTRO DO ESCOPO DA LICITAÇÃO*/
if(licitacao.getFlag2EP() == 3)
{
System.out.println("\n\n<<<<<>>>>>EMPRESA PÚBLICA: NENHUM FORNECEDOR PARTICIPOU DA LICITAÇÃO<<<<<>>>>>\n\n");
}
System.out.println("\n\n");
x = 0;
while(x < nomes.length)
{
System.out.println("NOME " + x + ":");
System.out.println(nomes[x]);
x++;
}
x = 0;
while(x < precos.length)
{
System.out.println("PREÇO " + x + ":");
System.out.println(precos[x]);
x++;
}
x = 0;
while(x < prazos.length)
{
System.out.println("PRAZO " + x + ":");
System.out.println(prazos[x]);
x++;
}
System.out.println("--------antes do if ---------");
if(especialistas[0].verificaTipoLicitacaoMP() == true)
{
especialistas[0].julgaTipoLicitacaoMP(precos, nomes);
}
/*
if(especialistas[2].verificaTipoLicitacaoMT() == true)
{
especialistas[2].julgaTipoLicitacaoMT(double[] prazos);
}
if(especialistas[3].verificaTipoLicitacaoMTP() == true)
{
especialistas[3].julgaTipoLicitacaoMTP(double[]precos, double[]prazos)
}
*/
}
}[code]
Teste
12 Respostas
Que mal lhe pergunte…
Cê tá testando o que?
O fórum?
:shock:
:shock:
System.out.println ("What the fuck");
Que mal lhe pergunte…Cê tá testando o que?
O fórum?
:shock:
…o Caps Lock.
Realmente, quando se diz que da pra escrever COBOL em qualquer linguagem, nao eh de brincadeira.
Eu acho que ele tava testando o programa dele, com intuito de rodar o programa direto do forum… 
hahahahahah, que isso ? cada um que aparece.
Fiquei em dúvida isso é Clipper ou Java? rs
Nunca pensei que ia ver programação estruturada denovo. Mas tudo bem!
Amigo Will, seguinte, não prefere dividir as responsabilidades do seu programa em classes (Filosofia dividir para conquistar)? Nós chamamos isso de coesão, torna o programa mais claro de ser lido e mais consiso, já que você vai saber exatamente o que cada classe está fazendo.
Se possivel também utilize Swing (ou AWT/SWT se preferir) além de ser melhor visualizado pelo usuário, o desenvolvimento se mostra mais fácil para o programador.
Correndo o risco de parecer redundante, o que pretende testar?
Espero ter ajudado
Abraços.
Muito boas! 
Já ouviu falar em Orientação a Objetos? Herança? Polimorfismo? Esse seu programa iria se tornar bem mais simples e fácil de entender.
System.out.println ("What the fuck"); // (2)
Já que ta todo mundo flodando, vou flodar tambem.
Ueh?
Ate eu fiquei curioso ???
Que mal lhe pergunte…Cê tá testando o que?
O fórum?
:shock:
…o Caps Lock.
Realmente, quando se diz que da pra escrever COBOL em qualquer linguagem, nao eh de brincadeira.
huahuahau CV, o cara dos trocadilhos hauhauah