1
resposta

Exercicio - Restaurante

using BrisaDoMar;

int opcao = 0;

var restaurante = new Restaurante
{
    NomeRestaurante = "Brisa do Mar",
    Cardapio = new List<ItemCardapio>
    {
        new ItemCardapio { Nome = "Hambúrguer", Descricao = "Pão, carne e queijo", Preco = 22.90m },
        new ItemCardapio { Nome = "Pizza", Descricao = "Mussarela", Preco = 39.90m },
        new ItemCardapio { Nome = "Espetinho", Descricao = "Carne", Preco = 10.00m }
    },
    Mesas = new List<Mesa>
    {
        new Mesa { NumeroMesa = 1 },
        new Mesa { NumeroMesa = 2 },
        new Mesa { NumeroMesa = 3 }
    }
};

while (opcao != 4) { 

    Console.WriteLine($"Bem vindo ao {restaurante.NomeRestaurante}\n");

    Console.WriteLine("Digite 1 para ver o Cardápio: \n");
    Console.WriteLine("Digite 2 para adicionar um produto ao pedido: \n");
    Console.WriteLine("Digite 3 para verificar o pedido completo da Mesa: \n");
    Console.WriteLine("Digite 4 para fechar a conta de uma mesa: \n");

    opcao = int.Parse(Console.ReadLine() ?? "0");

    switch (opcao)
    {
        case 1:
            ExibirCardapio();
            break;
        case 2:
            AdicionarProduto();
            break;
        case 3:
            MostrarPedido();
            break;
        case 4: 
            SairDoApp();
            break;
        default:
            break;
    }

}
void ExibirCardapio()
{
    Console.WriteLine("---Cardápio---");
    int i = 1;

    foreach (var item in restaurante.Cardapio)
    {
        Console.WriteLine($"{i} | {item.Nome} - {item.Descricao} - R$ {item.Preco:F2}");
        i++;
    }
}
void AdicionarProduto()
{
    Console.WriteLine("\n Número da mesa: ");
    if(!int.TryParse(Console.ReadLine(), out int numeroMesa))
    {
        Console.WriteLine("Mesa inválida");
        return;
    }
    Console.Clear();

    var mesa = restaurante.Mesas.FirstOrDefault(m => m.NumeroMesa == numeroMesa);
    if (mesa == null)
    {
        Console.WriteLine("Mesa não existe.");
        return;
    }
    ExibirCardapio();

    Console.WriteLine("\n Digite o item: ");
    if(!int.TryParse(Console.ReadLine(), out int escolha) || escolha < 1 || escolha > restaurante.Cardapio.Count)
    {
        Console.WriteLine("Item inválido");
        return;
    }
    Console.Clear();

    Console.WriteLine("\nQuantidade: ");
    if (!int.TryParse(Console.ReadLine(), out int qtd) || qtd <= 0)
    {
        Console.WriteLine("Quantidade inválida");
        return;
    }
    Console.Clear();

    var itemEscolhido = restaurante.Cardapio[escolha - 1];

    mesa.Pedidos.Add(new Pedido
    {
        Item = itemEscolhido,
        Quantidade = qtd
    });

    Console.WriteLine($"\nAdicionado: {qtd}x {itemEscolhido.Nome} na mesa {mesa.NumeroMesa}.");
}

void MostrarPedido()
{
    Console.WriteLine("\nNúmero da Mesa: ");
    if (!int.TryParse(Console.ReadLine(), out int numeroMesa))
    {
        Console.WriteLine("Mesa inválida");
        return;
    }

    var mesa = restaurante.Mesas.FirstOrDefault(m => m.NumeroMesa == numeroMesa);
    if(mesa == null)
    {
        Console.WriteLine("Mesa não existe");
        return;
    }

    Console.WriteLine($"\n --- Conta da Mesa: {mesa.NumeroMesa}");

    if(mesa.Pedidos.Count == 0)
    {
        Console.WriteLine("Nenhum pedido feito ainda !");
        return;
    }

    foreach (var itens in mesa.Pedidos)
    {
        Console.WriteLine($"{itens.Quantidade} x {itens.Item.Nome} - R$ {itens.Total:F2}");
    }
    Console.WriteLine($"Total: {mesa.ValorDaMesa:F2}");
}
void SairDoApp()
{
    opcao = 4;
    Console.WriteLine("Saindo ...");
}
1 resposta

Oi, Mateus! Como vai?

Agradeço por compartilhar.

Gostei bastante da sua implementação, você organizou bem as responsabilidades e aplicou Orientação a Objetos de forma clara, criando relacionamento entre Restaurante, Mesa, Pedido e ItemCardapio. Ficou bem estruturado e com boas validações usando TryParse, o que é um ponto importante para evitar erros no sistema.

Continue evoluindo dessa forma, seu código já mostra um bom cuidado com organização e legibilidade.

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