1
resposta

[Projeto] Senhas de atendimento - Projeto

Boa tarde pessoal. Queria compartilhar me projeto (Senhas de atendimento) com vocês.
Nele eu usei o QUEUE, que é uma estrutura de dados que funciona exatamente como uma fila. Ele serve para armazenar elementos por ordem de chegada e retirar na mesma ordem.
Para adicionar elementos dentro dele se usa ENQUEUE.
Para retirar elementos dele se usa DEQUEUE.
A diferença de QUEUE para LIST, é que na lista podemos acessar qualquer posição. Já com o QUEUE só conseguimos retirar o primeiro elemento da fila (ordem de chegada).
Gostei desse novo conhecimento. Obrigado!

using System.Collections;

Console.WriteLine("SENHAS DE ATENDIMENTO");

Queue<string> filaSenhas = new Queue<string>(); //Fila de senhas
int contador = 0;
int opcao;

do
{
    Console.WriteLine("1 - Gerar nova senha");
    Console.WriteLine("2 - Chamar próxima senha");
    Console.WriteLine("3 - Sair");
    Console.Write("O que você deseja: ");
    opcao = int.Parse(Console.ReadLine());
    Console.WriteLine("");

    switch (opcao)
    {
        case 1:
            contador++;
            string senha = contador.ToString("D3");
            filaSenhas.Enqueue(senha); // Adiciona na fila
            Console.WriteLine($"Senha gerada é: {senha}");
            break;
        case 2:
            if (filaSenhas.Count > 0)
            {
                string proxima = (string)filaSenhas.Dequeue();
                Console.WriteLine($"Chamando nova senha: {proxima}");
            } else
            {
                Console.WriteLine("Nenhuma senha disponível.");
            }
            break;
        case 3:
            Console.WriteLine("Encerrando sistema");
            break;
        default:
            Console.WriteLine("Opção inválida, tente novamente!");
            break;
    }
} while (opcao != 3); // Repete o sistema até escolher a opção 3 - Sair.
1 resposta

Oi, Matheus! Como vai?

Muito interessante a forma como você aplicou a estrutura Queue no seu projeto. Sua explicação sobre a diferença entre Queue e List ficou bem clara e mostra que você entendeu bem o conceito de fila (FIFO - First In, First Out). Além disso, o uso de Enqueue, Dequeue e a verificação com Count para evitar erros quando a fila está vazia demonstra um cuidado importante na lógica do programa.

Uma dica interessante para o futuro é utilizar o método Peek(), que permite visualizar o primeiro elemento da fila sem removê-lo. Isso pode ser útil caso você queira mostrar qual será a próxima senha antes de chamá-la.


Queue<string> fila = new Queue<string>();

fila.Enqueue("001");
fila.Enqueue("002");

string proximaSenha = fila.Peek();
Console.WriteLine(proximaSenha);

Neste exemplo, Peek() mostra a próxima senha da fila sem remover o elemento. Assim, a ordem da fila continua a mesma.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!