Paradigmas de Linguaguens de Programção

452 palavras 2 páginas
UNIVERSIDADE FEDERAL DE SÃO CARLOS
DEPARTAMENTO DE COMPUTAÇÃO

Paradigmas de
Linguagem de
Programação
Segundo Trabalho/2014

Prof.: Heloisa Arruda Camargo
Nome: Gabriel B. Lorandi - 312576

Código
Código com as classes comentadas sobre seu funcionamento:

1-Classe Carro: class Carro {

private int Nome; private int vaga;
/**
* Construtor padrão
*/
public Carro(){ vaga = -1;
}
public void setNome(int nome)
{
Nome = nome;
}
public int getVaga()
{
return vaga;
}
public void setVaga(int n)
{
vaga = n;
}
public int getNome() { return Nome;
}
}

2-Classe Estacionamento: class Estacionamento{ static final int numeroVagas = 4; // numeros de vagas private boolean[] vagas = new boolean[4]; // gera as vagas

/**
* Construtor padrão
*/
public Estacionamento()
{
for (int i=0; i < numeroVagas; i++)
{
vagas[i] = true;
}
}
/**
* Metodo Estacionar
*/
public synchronized void Estacionar(Carro carro) throws InterruptedException
{
int controle = 0; //Variavel de controle para auxiliar no estacionamento boolean achouVaga = false; // Indica se entrou ou não vaga.

while (controle < numeroVagas) // o controle não passar por todas as vagas faça os comandos { if (vagas[controle] == true) // encontrou vaga
{
vagas[controle] = false; // Vaga fica indisponivel carro.setVaga(controle); // Indica qual vaga está o carro achouVaga = true; // Indica que achou a vaga
System.out.println("Carro " + carro.getNome() + " estacionou na vaga " + controle); // Print sobre o estacionamento controle = numeroVagas + 1; //Sai do loop
}
else { controle++; // increnta
}
} if (!achouVaga) // caso não achou a vaga.
{
wait(); // espera se não houve vaga.
}
}
/**
* Metodo Sair
*/
public synchronized void Sair(Carro carro)
{

if (carro.getVaga() == -1)//Se o carro não estiver estacionado
{
System.out.println("Carro " + carro.getNome() + " não estacionado!"); // print da situação. } else { vagas[carro.getVaga()] =

Relacionados