1
resposta

[Projeto] Projeto Final

// Play Track
string mensagemInicial = "Bem-vindo ao Play Track";

Dictionary<string, List<int>> dicionarioBandas = [];

void ExibirLogo()
{
    Console.WriteLine(@"
██████╗░██╗░░░░░░█████╗░██╗░░░██╗  ████████╗██████╗░░█████╗░░█████╗░██╗░░██╗
██╔══██╗██║░░░░░██╔══██╗╚██╗░██╔╝  ╚══██╔══╝██╔══██╗██╔══██╗██╔══██╗██║░██╔╝
██████╔╝██║░░░░░███████║░╚████╔╝░  ░░░██║░░░██████╔╝███████║██║░░╚═╝█████═╝░
██╔═══╝░██║░░░░░██╔══██║░░╚██╔╝░░  ░░░██║░░░██╔══██╗██╔══██║██║░░██╗██╔═██╗░
██║░░░░░███████╗██║░░██║░░░██║░░░  ░░░██║░░░██║░░██║██║░░██║╚█████╔╝██║░╚██╗
╚═╝░░░░░╚══════╝╚═╝░░╚═╝░░░╚═╝░░░  ░░░╚═╝░░░╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝");
    Console.WriteLine(mensagemInicial);
}

void ExibirOpcoesMenu()
{
    ExibirLogo();

    Console.WriteLine("\n1. Registrar uma banda");
    Console.WriteLine("2. Exibir todas as bandas");
    Console.WriteLine("3. Avaliar uma banda");
    Console.WriteLine("4. Exibir a avaliação de uma banda");
    Console.WriteLine("5. Sair da aplicação");

    Console.Write("\nSelecione uma das opções acima: ");
    string opcaoSelecionada = Console.ReadLine()!; // Exclamação para não retornar nulo
    int opcaoSelecionadaNumerica = int.Parse(opcaoSelecionada);

    switch (opcaoSelecionadaNumerica)
    {
        case 1:
            RegistrarBanda();
            break;
        case 2:
            ExibirBandas();
            break;
        case 3:
            AvaliarBanda();
            break;
        case 4:
            ExibirAvaliacaoBanda();
            break;
        case 5:
            Console.WriteLine("\nAté logo!");
            break;
        default:
            Console.WriteLine("\nOpção inválida.");
            break;
    }
}

void RegistrarBanda()
{
    Console.Clear();
    Console.WriteLine("Registro de Bandas");
    Console.Write("\nDigite o nome de uma banda: ");
    string nomeBanda = Console.ReadLine()!; // Exclamação para não retornar nulo
    dicionarioBandas.Add(nomeBanda, new List<int>());
    Console.WriteLine($"\nA banda {nomeBanda} foi registrada com sucesso");
    Thread.Sleep(1000);
    Console.Clear();
    ExibirOpcoesMenu();
}

void ListarBandas()
{
    int index = 1;
    foreach (var bandas in dicionarioBandas.Keys)
    {
        Console.WriteLine($"{index}. {bandas}");
        index++;
    }
}

void ExibirBandas()
{
    Console.Clear();
    Console.WriteLine("Listagem de Bandas\n");

    ListarBandas();

    PressionarTeclaParaContinuar();
}

void VerificaSeBandaExiste(string nomeBanda)
{
    Console.WriteLine($"\nA banda {nomeBanda} não foi encontrada!");
    Thread.Sleep(750);
    Console.Clear();
    ExibirOpcoesMenu();
}

void PressionarTeclaParaContinuar()
{
    Console.Write("Pressione qualquer tecla para continuar");
    Console.ReadKey();
    Console.Clear();
    ExibirOpcoesMenu();
}
void AvaliarBanda()
{
    Console.Clear();
    Console.WriteLine("Avaliação de Bandas (Avaliar)\n");

    ListarBandas();

    Console.Write("\nSelecione o nome de uma das bandas acima: ");
    string nomeBanda = Console.ReadLine()!;
    if (dicionarioBandas.ContainsKey(nomeBanda))
    {
        Console.Write($"Dê uma nota para a banda {nomeBanda}: ");
        int nota = int.Parse(Console.ReadLine()!);
        dicionarioBandas[nomeBanda].Add(nota);
        Console.WriteLine($"\nBanda avaliada com sucesso!");
        Thread.Sleep(750);
        Console.Clear();
        ExibirOpcoesMenu();
    }
    else
    {
        VerificaSeBandaExiste(nomeBanda);
    }
}

void ExibirAvaliacaoBanda()
{
    Console.Clear();
    Console.WriteLine("Avaliação de Bandas (Avaliar)\n");
    ListarBandas();
    Console.Write("Digite o nome de uma das bandas acima: ");
    string nomeBanda = Console.ReadLine()!;
    if(dicionarioBandas.ContainsKey(nomeBanda))
    {
        List<int> notasBanda = dicionarioBandas[nomeBanda];
        Console.WriteLine($"\nA média da banda {nomeBanda} é {notasBanda.Average()}.");
        PressionarTeclaParaContinuar();
       
    } 
    else 
    {
        VerificaSeBandaExiste(nomeBanda);
    }
}

// Início do Programa
ExibirOpcoesMenu();
1 resposta

Oi, Eduarda! Tudo bem?

Parabéns pelo código bem estruturado, com funções claras, é muito gratificante ver você programando esse projeto! Somado a isso, caso tenha ficado alguma dúvida ou dificuldade, peço que informe aqui no fórum para que eu possa ajudar!

Um forte abraço e bons estudos!