Para o melhor controle da ordem de atendimento de clientes, as empresas desenvolvem modelos de organização
baseados em tipos de serviços a serem desenvolvidos. Assim, é comum que, os clientes sejam classificados, no
mínimo, em atendimento normal e preferencial.
Nessa atividade, o grupo de alunos deve implementar um TAD que seja possível de ser aplicado em uma agência
bancária para controle do atendimento dos clientes que buscam atendimento. Os clientes serão divididos em
atendimento normal e prioritário. O atendimento prioritário deve ter preferência ao normal (ser atendido
preferencialmente mais rápido), mas o atendimento normal também não pode ficar sem atenção por muito tempo.
Assim, o TAD deve criar uma estrutura de dados que possa balancear o atendimento preferencial e normal de alguma
forma.
esse é o meu código:
import java.util.LinkedList;
import java.util.Objects;
import java.util.Queue;
public class FilasdoBanco {
public static void main(String[] args) {
private static final FilasDoBanco FILAS = new FilasDoBanco();
private final Queue<Senha> filaComum;
private final Queue<Senha> filaPrefenrencial;
private int senha;
private FilasdoBanco() {
senha = 1;
filaComum = new LinkedList<>();
filaPrefenrencial = new LinkedList<>();
}
public static FiladoBanco getInstance() {
return FILA;
}
public void adicionar(Senha senha) {
switch (senha.getPrioridade()) {
case COMUM:
filaComum.add(senha);
break;
case PREFERENCIAL:
filaPrefenrencial.add(senha);
break;
}
}
public Senha atender(Prioridade... prioridades) {
Objects.requireNonNull(prioridades, "A prioridade não pode ser null.");
if (prioridades.length == 0) {
throw new IllegalArgumentException("Ao menos uma prioridade dever ser informada para o atendimento.");
}
Senha senha = null;
for (int i = 0; i < prioridades.length && senha == null; i++) {
switch (prioridades[i]) {
case COMUM:
senha = filaComum.poll();
break;
case PREFERENCIAL:
senha = filaPrefenrencial.poll();
break;
}
}
return senha;
}
public void atualizarSenha() {
senha += 1;
}
public int getSenha() {
return senha;
}
}
public enum Prioridade {
COMUM(“C”),
PREFERENCIAL(“P”),
public final String letra;
Prioridade(String letra) {
this.letra = letra;
}
}
public class Senha {
private Prioridade prioridade;
private int senha;
public Senha(Prioridade prioridade, int senha) {
this.prioridade = prioridade;
this.senha = senha;
}
public Prioridade getPrioridade() {
return prioridade;
}
public void setPrioridade(Prioridade prioridade) {
this.prioridade = prioridade;
}
public int getSenha() {
return senha;
}
public void setSenha(int senha) {
this.senha = senha;
}
@Override
public String toString() {
return prioridade.letra + "-" + senha;
}
}
eu preciso deste código até quinta feira, dia 29/04.