1
resposta

O que tem de errado no codigo?

// Screen Sound string mensagemDeBoasVindas = "Boas vindas ao Screen Sound"; List listaDasBandas = new List {"Queen", "The Beatles", "A-ha", "Coldplay" };

void ExibirMensagemDeBoasVindas() { Console.WriteLine("\r\n█▀ █▀▀ █▀█ █▀▀ █▀▀ █▄ █   █▀ █▀█ █ █ █▄ █ █▀▄\r\n▄█ █▄▄ █▀▄ ██▄ ██▄ █ ▀█   ▄█ █▄█ █▄█ █ ▀█ █▄▀"); Console.WriteLine(); Console.WriteLine(mensagemDeBoasVindas);

}

void ExibirOpcoesDoMenu() { ExibirMensagemDeBoasVindas(); Console.WriteLine("\nDigite 1 para registrar uma banda"); Console.WriteLine("Digite 2 para mostrar as bandas"); Console.WriteLine("Digite 3 para avaliar uma banda"); Console.WriteLine("Digite 4 para exibir a média"); Console.WriteLine("Digite 0 para sair");

Console.Write("\nDigite a sua opção: ");
string opcaoEscolhida = Console.ReadLine()!;
int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);

switch (opcaoEscolhidaNumerica)
{
    case 1:
        RegistrarBanda();
        break;
    case 2:
        MostrarBandasRegistradas();
        break;
    case 3:
        Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
        break;
    case 4:
        Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
        break;
    case 0: // Alterado de -1 para 0
        Console.WriteLine("Tchau tchau :)");
        break;
    default:
        Console.WriteLine("Opção inválida");
        break;
}

void RegistrarBanda()

{ Console.Clear(); ExibirTituloDaOpcao("Registro das Bandas"); Console.Write("Digite o nome da banda: "); string nomeDaBanda = Console.ReadLine()!; listaDasBandas.Add(nomeDaBanda); Console.WriteLine($"A banda {nomeDaBanda} foi registrada com sucesso"); Thread.Sleep(2000); Console.Clear(); ExibirOpcoesDoMenu(); }

void MostrarBandasRegistradas() { Console.Clear(); ExibirTituloDaOpcao("Exibindo todas as bandas registradas"); //for (int i = 0; i < listaDasBandas.Count; i++) //{ //Console.WriteLine($"Banda: {listaDasBandas[i]}"); //} foreach (string banda in listaDasBandas ) { Console.WriteLine($"Banda: {banda}"); } } Console.WriteLine("\nDigite uma tecla para voltar ao menu principal"); Console.ReadKey(); Console.Clear(); ExibirOpcoesDoMenu(); }

void ExibirTituloDaOpcao(string titulo) { int quantidadeDeLetras = titulo.Length; string asteriscos = string.Empty.PadLeft(quantidadeDeLetras, "*"); Console.WriteLine(asteriscos); Console.WriteLine(titulo); Console.WriteLine(asteriscos + "\n");

}

ExibirOpcoesDoMenu();

1 resposta

Olá Vinícius, bom dia.

Pelo que pude observar do seu código, parece que você está tentando criar um menu para gerenciar bandas com algumas opções, e o problema pode estar relacionado à exibição do título das opções com a formatação correta. Vamos analisar o que pode estar acontecendo.

  1. Função ExibirTituloDaOpcao: Essa função parece estar correta, pois ela gera uma linha de asteriscos com base no comprimento do título. No entanto, certifique-se de que ela está sendo chamada corretamente em todas as partes do seu código onde você deseja exibir um título formatado.

  2. Chamada das funções: Verifique se você está chamando a função ExibirTituloDaOpcao corretamente em todas as funções que exibem títulos. No seu código, você já está fazendo isso em RegistrarBanda e MostrarBandasRegistradas. Certifique-se de que não há chamadas duplicadas ou fora de ordem que possam estar causando problemas.

  3. Exibição do Menu: Quando você exibe as opções do menu, você pode querer garantir que o console seja limpo antes de exibir as opções novamente, para evitar sobreposição de texto. Você já está usando Console.Clear() em algumas partes, mas certifique-se de que está sendo usado onde necessário.

  4. Teste de Títulos: Para garantir que a função ExibirTituloDaOpcao está funcionando corretamente, você pode testar com diferentes comprimentos de título e verificar se a quantidade de asteriscos corresponde ao comprimento do título.

Aqui está um exemplo de como você pode testar a função ExibirTituloDaOpcao:

void TestarExibicaoDeTitulos()
{
    ExibirTituloDaOpcao("Teste curto");
    ExibirTituloDaOpcao("Um título um pouco mais longo");
    ExibirTituloDaOpcao("Título extremamente longo para testar a exibição de asteriscos");
}

TestarExibicaoDeTitulos();

Execute esse teste para ver se a função está gerando a quantidade correta de asteriscos para diferentes comprimentos de título.

Espero ter ajudado e bons estudos!