1) Simulação de Atendimento Bancário (Aplicação de FILA) em NETBEANS

Alguem poderia me ajudar enquanto a isso ?!

  1. Simulação de Atendimento Bancário (Aplicação de FILA)

Obs.:

  • Devem ser seguidos os princípios e características de funcionamento do TAD, ou
    seja, FIFO ou FILO. Os métodos da Pilha e Fila não devem ser alterados. A lógica do
    problema deve ser escrita na classe principal que contenha o método estático main
    utilizando o TAD.
  • Se necessário, altere o TAD Pilha e Fila para que possam armazenar corretamente os
    dados, ou seja, o conteúdo de cada posição de acordo com o pedido, por exemplo,
    string ou Cliente.
  • A implementação deve ser feita em linguagem Java;

Simulação de Atendimento Bancário

Deverá implementar um algoritmo que determine o tempo médio que um cliente
permanece na fila de uma agência bancária. Quando um cliente entra na fila, o horário é
anotado. Quando ele sai, o tempo que ele permaneceu na fila é calculado e adicionado ao
tempo total de espera. Assim, no final do expediente, é possível determinar quanto tempo,
em média, cada cliente teve que aguardar para ser atendido.
Cenário da Simulação

Na agência há três guichês que atendem a uma única fila de clientes. À medida que um
deles ficar livre, o primeiro cliente da fila o utiliza.

Há apenas duas entidades envolvidas na simulação: guichês e clientes. Tudo o que é
necessário saber sobre um guichê é se ele está ocupado e, caso esteja, por quanto tempo
permanecerá ocupado. Inicialmente, todos os guichês estão livres. Quando um cliente inicia
uma transação num deles, o tempo médio necessário para a realização da transação
determina por quanto tempo o guichê permanecerá ocupado.

Transação Código Tempo Médio

Saque 0 60 segundos
Depósito 1 90 segundos
Pagamento 2 120 segundos

Sobre o cliente, só é necessário saber quando ele entrou na fila para que, ao sair, seja
possível calcular quanto tempo ele permaneceu nela.
Algoritmo de Simulação

Na simulação a ser realizada, há dois eventos importantes:
? Um cliente chega à agência e entra na fila.
? Um guichê é liberado, alguém sai da fila e o utiliza.

Em cada instante de tempo, qualquer combinação desses eventos pode ocorrer (ou mesmo
nenhum deles).

Terminou o expediente?
O término do expediente será indicado pelo cronômetro, que marcará o tempo em segundos.
O período de atendimento da agência é de 6 horas, o que corresponde a 21600 segundos.
O expediente termina após este tempo decorrido.

Chegou um cliente?
Para que a simulação seja o mais próximo da realidade, será adotado um valor aleatório
para simular a chegada do cliente.
A cada segundo decorrido, será chamada uma função aleatória que sorteia um valor entre 0
e 29. Caso o número sorteado seja o número 0, isso indica que o cliente chegou. Caso
contrário, o cliente não chegou.

Cliente entra na fila
Um cliente será representado pelo horário em que ele entrou na fila. Logo, inserir um cliente
na fila equivale a simplesmente inserir nela o valor corrente do cronômetro.
Inicia a transação

Quando um guichê é liberado e um cliente se dirige a ele, é necessário saber por quanto
tempo ele ficará ocupado. Esse tempo depende da transação realizada pelo cliente. As
transações realizadas são aleatórias.

Para saber qual será a transação, um número aleatório entre 0 e 2 é gerado. Caso seja
gerado o valor 0, a transação será um saque, caso seja gerado o valor 1, a transação será
um depósito, e caso seja gerado o valor 2, a transação será um pagamento.
Finalização do expediente

Ao final do expediente, caso ainda haja clientes na fila, eles devem ser atendidos.
Quando o expediente tiver terminado e não houver mais clientes na fila, as seguintes
informações devem ser impressas:

? Número total de clientes atendidos.
? Número de clientes que fizeram saque, depósito e pagamento.
? Tempo médio de espera na fila.
? Tempo extra de expediente.

Exercício de faculdade…

Eu cobro barato … R$ 35 a hora…

eu ja elaborei o sistema Fila

  1. public class Pilha {
  2.  Elemento topo;   
    
  3.  public Pilha(int valor) {   
    
  4.      push(valor);   
    
  5.  }   
    
  6.  public Pilha() {   
    
  7. }   
    
  8. public void push(int valor){   
    
  9.     topo = new Elemento(valor, topo);   
    
  10. }   
    
  11. public int pop(){   
    
  12.     if(topo == null)   
    
  13.         return 0;   
    
  14.     int aux = topo.valor;   
    
  15.     topo = topo.proximo;   
    
  16.     return aux;   
    
  17. }   
    
  18. public int peek(){   
    
  19.     if(topo == null)   
    
  20.         return 0;   
    
  21.     return topo.valor;   
    
  22. }   
    
  23. }
  24. public class Elemento {
  25. int valor;   
    
  26. Elemento proximo;   
    
  27. public Elemento(int valor, Elemento proximo) {   
    
  28.     this.valor = valor;   
    
  29.     this.proximo = proximo;   
    
  30. }   
    
  31. }

Tópico trancado.