No internet connection
  1. Home
  2. Dúvidas Gerais

Exemplo de menu em C# em console

Por Brenda Aniceto Bueno @Brenda
    2024-01-16 21:04:22.917Z

    Boa tarde! Gostaria de compartilhar um exemplo de menu em C# que se assemelha ao apresentado pelo professor Hugo durante a explicação sobre o CRUD ontem.

    using SistemaPizzaria.Controller;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace SistemaPizzaria.View
    {
       public  class SubMenuAdicionarPizza
        {
            public static void SubMenuPizza()
            {
                Console.Clear();
                Console.BackgroundColor = ConsoleColor.Blue;
                Console.ForegroundColor = ConsoleColor.Black;
                DrawScreen();
                WriteOptions();
                Console.ReadKey();
    
            }
            public static void DrawScreen()
            {
                Linhas();
                Colounas();
                Linhas();
    
            }
            public static void Colounas()
            {
                for (int lines = 0; lines <= 30; lines++)
                {
                    Console.Write("|");
                    for (int i = 0; i <= 60; i++)
                        Console.Write(" ");
    
                    Console.Write("|");
                    Console.Write("\n");
    
                }
    
            }
    
            public static void Linhas()
            {
                Console.Write("+");
                for (int i = 0; i <= 60; i++)
                    Console.Write("-");
    
                Console.Write("+");
                Console.Write("\n");
            }
            
            public static void WriteOptions()
            {
                Console.SetCursorPosition(3, 2);
                Console.Write("=================Sabores=================");
                Console.SetCursorPosition(3, 3);
                Console.Write(" Esolha a opção que deseja realizar");
                Console.SetCursorPosition(3, 4);
                Console.Write(" [1]Cadastrar novo pedido de pizza");
                Console.SetCursorPosition(3, 5);
                Console.Write(" [2]Buscar ");
                Console.SetCursorPosition(3, 6);
                Console.Write(" [3]Excluir sabor");
                Console.SetCursorPosition(3, 7);
                Console.Write(" [4]Voltar para o menu principal");
                Console.SetCursorPosition(3, 8);
                Console.Write(" [5]Sair");
                Console.SetCursorPosition(3, 9);
                Console.Write("--------------------------------------------");
                Console.SetCursorPosition(3, 10);
                Console.Write("Digite a opção desejada:");
                Console.SetCursorPosition(3, 11);
                Console.Write("Opção: ");
                Console.SetCursorPosition(3, 12);
                var menu = short.Parse(Console.ReadLine());
                HandleMenuOption(menu);
    
    
            }
    
            public static void HandleMenuOption(short option)
            {
                switch (option)
                {
                    case 1:
                        PizzaController.InserirSaborPizza();
                        break;
                    case 2:
                        PizzaController.BuscaPizza();
                        break;
                    case 3:
                        PizzaController.DeletarSaborPizza();
                        break;
                    case 4:
                        CoresPadrao();
                        MenuPrincipal.MenuPrinc();
                        System.Environment.Exit(0); //sair
                        break;
                    case 5:
                        System.Environment.Exit(0); //sair
                        break;
                    default:
                        CoresPadrao();
                        MenuPrincipal.MenuPrinc();
                        break;
                }
            }
            private static void CoresPadrao()
            {
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
            }
        }
    }
    
    

    Segue a explicação do código:

    SubMenuAdicionarPizza é uma classe pública:
    Contém métodos estáticos relacionados a um sub-menu específico para operações relacionadas a pizzas.

    SubMenuPizza Método:
    Limpa a tela do console, define as cores de fundo e de texto e chama DrawScreen() e WriteOptions().

    DrawScreen Método:
    Chama Linhas() e Colunas() para desenhar uma estrutura de borda simples para dar um estilo diferente ao console.

    Colunas Método:
    Desenha as colunas laterais da borda.

    Linhas Método:
    Desenha as linhas superior e inferior da borda.

    WriteOptions Método:
    Define a posição do cursor para escrever opções do menu.
    Exibe um menu com opções numeradas, solicita ao usuário que digite uma opção e chama HandleMenuOption().

    HandleMenuOption Método:
    Recebe a opção do menu e executa a ação correspondente usando switch.
    Opções:
    1: Chama PizzaController.InserirSaborPizza() para cadastrar um novo pedido de pizza.
    2: Chama PizzaController.BuscaPizza() para buscar informações.
    3: Chama PizzaController.DeletarSaborPizza() para excluir um sabor de pizza.
    4: Retorna ao menu principal e encerra o programa.
    5: Encerra o programa.

    CoresPadrao Método:
    Define as cores de fundo e de texto de volta aos padrões.

    Esse código representa um menu interativo para operações relacionadas a pedidos de pizza, onde o usuário pode escolher entre cadastrar, buscar, excluir ou sair. O código faz uso de classes do tipo PizzaController para executar as operações associadas a pizzas.

    Segue a imagem do código em execução:

    Se surgirem dúvidas ou curiosidades, estou aqui para ajudar e fornecer esclarecimentos adicionais. Sintam-se à vontade para questionar ou compartilhar qualquer dúvida que possam ter.☺

    • 2 respostas
    1. P
      Pétrus Teixeira @Petrus_Goncalves
        2024-01-17 14:50:59.746Z

        Ficou bem bacana @Brenda, é sempre bom montar outros exemplos para fixar o assunto.

        1. Em resposta aBrenda:

          Ficou show, mano! Vou praticar mais, pegar alguns projetos em Java e adaptar para C#.