Uma empresa de lavagem de carros deseja controlar a fila de veículos que são
atendidos. Os carros são atendidos na ordem em que chegam. Cada lavagem
requer 15 minutos para ser completamente lavado, secado e limpo. Logo que o
serviço termina o carro deixa a garagem. Implemente uma classe que controle essa
fila de atendimento e que contenha métodos para:
a. Saber o número de carros esperando atendimento;
b. O tempo de espera ao inserir novos carros
c. O tempo de espera médio que os carros permaneceram na fila
(considerar todo o histórico de carros atendidos no dia).
Você precisa implementar a classe chamada Fila ou pode usar uma classe já existente do Java, como a Queue?
De todo modo, só postar o enunciado não é legal. O pessoal aqui espera ao menos que você tente começar o exercício.
Abraço.
Eu montei a classe com as filas,mas não estou conseguindo montar o método com .size para medir o tamanho.
Se você tem uma classe Fila, pode criar um atributo size do tipo int. Toda vez que um elemento for adicionado, você incrementa esse atributo. Quando um elemento for removido, você decrementa. E cria um método getSize() público pra retornar a quantidade.
Abraço.
package ex4;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
public class Fila implements IFila {
private Object[] fila;
private static final int MAX_ELEMENTS = 100;
private int primeiro;
private int ultimo;
private int tamanho;
public Fila() {
this.fila = new Object[MAX_ELEMENTS];
this.tamanho = 0;
this.primeiro = 0;
this.ultimo = 0;
}
public Fila(int tamanho) {
this.fila = new Object[tamanho];
this.tamanho = 0;
this.primeiro = 0;
this.ultimo = 0; }
@Override
public boolean isEmpty() {
return (this.tamanho == 0);
}
@Override
public boolean isFull() {
return (this.tamanho == this.fila.length);
}
@Override
public int size() {
return this.tamanho;
}
@Override
public Object deueue() {
if(this.isEmpty()){
return null;
}
Object item = this.fila[this.primeiro];
this.primeiro = (this.primeiro + 1) % this.fila.length;
this.tamanho--;
return item;
}
@Override
public void enqueue(Object item) {
if(this.isFull()) {
return;
}
this.fila[this.ultimo] = item;
this.ultimo = (this.ultimo-1) % this.fila.length;
this.tamanho++;
}
@Override
public Object[] toArray() {
Object[] itens = new Object[this.tamanho];
for (int i = 1, j = this.primeiro; i < this.tamanho; i++, j++) {
j= j % this.fila.length;
itens[i-1] = this.fila[j];
}
return itens;
}
}
Essa e minha classe fila. Como eu não tinha conseguido criar sozinha, reciclei uma que era exemplo na aula.
Bom, já que você já tem a classe, agora é só testar, não? Ou acha que falta alguma coisa?
Abraço.