Skip to content

Latest commit

 

History

History
93 lines (81 loc) · 3.45 KB

04.md

File metadata and controls

93 lines (81 loc) · 3.45 KB

Pergunta

4 - A classe Queue (namespace System.Collections) implementa a estrutura de dados queue/fila, na qual a primeira coisa a ser inserida é a primeira a ser retirada. Objetos do tipo Queue podem ser instanciados com o construtor simples Queue(). O método Enqueue() coloca um objeto no fim da fila, enquanto o método Dequeue() retira o primeiro objeto lá colocado. O método ToArray() copia todos os elementos da fila para um array e devolve esse array.

Cria um programa em C# que apresente um menu ao utilizador com quatro opções:

  1. Inserir string na fila
  2. Remover string da fila, imprimindo a mesma no ecrã
  3. Listar todas as string existentes na fila
  4. Sair

O menu deve ser apresentado em ciclo, e o programa só deve terminar quando o utilizador selecionar a opção 4.

Soluções

Solução 1

using System;
using System.Collections;

namespace Exercises
{
    class Program
    {
        static void Main(string[] args)
        {
            // Variables
            Queue queue = new Queue();
            byte input;

            while (true)
            {
                // Shows the user all possible options
                Console.WriteLine("1- Insert a string\n" +
                                  "2- Remove a string\n" +
                                  "3- Show all the strings saved\n" +
                                  "4- Exit\n");

                // Searches and saves the input of the user
                input = Convert.ToByte(Console.ReadLine());

                // Option to insert string
                if (input == 1)
                {
                    Console.WriteLine("Write the string you want to insert\n");
                    // Saves the string of the user
                    string newObject = Console.ReadLine();
                    // Sends the string and saves to the queue
                    queue.Enqueue(newObject);
                }
                // Option to remove string
                else if (input == 2)
                {
                    // Dequeues the first string
                    string rmdString = (string)queue.Dequeue();
                    // Shows the user the string removed
                    Console.WriteLine("Removed '{0}' from the queue", rmdString);
                }
                // Option to show all the strings
                else if (input == 3)
                {
                    // Shows the user every object in the queue
                    foreach (object aString in queue)
                        Console.WriteLine(aString);
                }
                // Option to exit the program
                else if (input == 4) break;
                // Detects if the user gave another input
                else
                    Console.WriteLine("That's not a valid option\n");
            }
        }
    }
}

Por André Vitorino