1
resposta

Reutilizei o meu código da atividade passada alterando somente o tipo da lista e os tipos de entradas


List<double> notas = new List<double>
        {
    8.5,
    6.2,
    9.1,
    5.8,
    7.4
        };
bool loop = true;

void menu()
{
    Console.Clear();
    Console.WriteLine($"\n________________________");
    Console.Write("\n|1 - Adicionar notas   |\n|2 - Vizualizar notas  |\n|3 - Classificar notas |\n|0 - Encerrar Sistemas |\n");
    Console.WriteLine("________________________");
    Console.Write("digite uma opção : ");
    string entrada = Console.ReadLine()!;

    if(!int.TryParse(entrada, out int opcaoMenu))
    {
        Console.WriteLine("Digite uma opção do MENU válida ! ");
        return;
    }

    switch (opcaoMenu)
    {
        case 1:
            adionarNotas();
            break;
        case 2:
            visualizarNotas();
            break;
        case 3:
            classificarNota();
            break;
        case 0:
            Console.WriteLine("Saindo do sistema ...");
            Thread.Sleep(2000);
            loop = false;
            break;
        default:
            Console.WriteLine("Opção inválida");
            break;
    }
}

void adionarNotas(){
    Console.Write("Digite a nota que deseja adicionar : ");
    double notaNova = double.Parse(Console.ReadLine()!);
    notas.Add(notaNova);
    Console.Write($"Nota {notaNova} adicionada com sucesso ");
    Thread.Sleep(2000);
    Console.Clear();
}

void visualizarNotas()
{
    Console.WriteLine("Lista de notas ");
    foreach (var nota in notas)
    {
        Console.WriteLine($"{nota}");
    }
    Console.Write("Presione ENTER para voltar ao MENU");
    Console.ReadKey();
    Console.Clear();
}

void classificarNota()
{
    foreach(var nota in notas)
    {

        if (nota >= 6 && nota <= 10)
        {
            Console.WriteLine($"\nNota - {nota} - Aprovada");
        }
        else
        {
            Console.WriteLine($"\nNota - {nota} - Reprovada");
        }
    }
    Console.Write("Presione ENTER para voltar ao MENU");
    Console.ReadKey();
    Console.Clear();
}

do
{
    menu();
} while (loop);
1 resposta

Oi, Cauan! Como vai?

Do jeito que você explicou, ficou claro que você reaproveitou bem a lógica da atividade anterior. A organização do menu e o uso do foreach ficaram bem estruturados, mantendo o fluxo simples e direto.

Uma dica interessante para o futuro é usar o método TryParse também ao adicionar novas notas, evitando erros caso o usuário digite algo que não seja número. Veja este exemplo:


Console.Write("Digite a nova nota: ");
string entrada = Console.ReadLine();
double novaNota;

if(double.TryParse(entrada, out novaNota)) {
    notas.Add(novaNota);
}

Esse código valida a entrada antes de adicionar, evitando falhas no programa.

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