Olá, estarei dividindo em 4 postagem seguidas com minha resolução. Obs: Segue o padrão das aulas.
Segue resolução do primeiro Exercício:
Dictionary<string, List<int>> notaAlunos = new Dictionary<string, List<int>>()
{
{"Cristin", new List<int>{10,7,6} },
{"Pedro", new List<int>{6,8,9} },
};
void ExibirLogo()
{
Console.Clear();
Console.WriteLine(@"
██████╗░███████╗░██████╗░█████╗░███████╗██╗░█████╗░
██╔══██╗██╔════╝██╔════╝██╔══██╗██╔════╝██║██╔══██╗
██║░░██║█████╗░░╚█████╗░███████║█████╗░░██║██║░░██║
██║░░██║██╔══╝░░░╚═══██╗██╔══██║██╔══╝░░██║██║░░██║
██████╔╝███████╗██████╔╝██║░░██║██║░░░░░██║╚█████╔╝
╚═════╝░╚══════╝╚═════╝░╚═╝░░╚═╝╚═╝░░░░░╚═╝░╚════╝░");
Console.WriteLine(mensagemDeBoasVindas);
}
/*===============================================================
Exercicio 1
==============================================================*/
void ExibirOpcoesExercicio_1()
{
ExibirLogo();
Console.WriteLine("\nDigite 1: Mostra notas dos alunos ");
Console.WriteLine("Digite 2: Registrar um aluno ");
Console.WriteLine("Digite 3: Registrar nota para o Aluno");
Console.WriteLine("Digite 4: Mostrar média dos Alunos");
Console.WriteLine("Digite -1 para sair");
Console.Write("\n Digite a sua opção: ");
string opcaoEscolhida = Console.ReadLine()!;
int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);
switch (opcaoEscolhidaNumerica)
{
case 1:
MostrasNotasDosAlunos_1();
break;
case 2:
RegistrarAluno_1();
break;
case 3:
RegistrarNota_1();
break;
case 4:
MostrarMediaDosAlunos_1();
break;
case -1:
Console.WriteLine("Tchau tchau :)");
break;
default:
Console.WriteLine("Opção inválida");
break;
}
}
ExibirOpcoesExercicio_1();
void MostrasNotasDosAlunos_1()
{
Console.Clear();
ExibirTituloDaOpcao("Notas dos Alunos");
foreach (var pessoa in notaAlunos)
{
string notas = string.Join(", ", pessoa.Value);
Console.WriteLine($"Nome: {pessoa.Key}, Notas: {notas}");
}
Thread.Sleep(1000);
Console.Clear();
ExibirOpcoesExercicio_1();
}
void RegistrarAluno_1()
{
Console.Clear();
ExibirTituloDaOpcao("Registar Aluno");
Console.Write("Digite o nome do aluno que deseja registrar: ");
string nomeDoAluno = Console.ReadLine()!;
notaAlunos.Add(nomeDoAluno, new List<int>());
Console.WriteLine($"Aluno: {nomeDoAluno} cadastrado com sucesso!");
Thread.Sleep(3000);
ExibirOpcoesExercicio_1();
}
void RegistrarNota_1()
{
Console.Clear();
ExibirTituloDaOpcao("Registar Nota para um Aluno");
//Alunos cadastrados já:
Console.WriteLine("Alunos já cadastrados");
foreach (string banda in notaAlunos.Keys)
{
Console.WriteLine($"Banda: {banda}");
}
Console.Write("Digite o nome do aluno que deseja avaliar: ");
string nomeDoAluno = Console.ReadLine()!;
if (notaAlunos.ContainsKey(nomeDoAluno))
{
Console.Write($"Qual a nota que a aluno {nomeDoAluno} merece: ");
int nota = int.Parse(Console.ReadLine()!);
notaAlunos[nomeDoAluno].Add(nota);
Console.WriteLine($"Nota {nota} para {nomeDoAluno} registrado com sucesso!");
}
else
{
Console.WriteLine("Aluno não encotrando.");
}
Thread.Sleep(2000);
ExibirOpcoesExercicio_1();
}
void MostrarMediaDosAlunos_1()
{
Console.Clear();
ExibirTituloDaOpcao("Media do Aluno");
foreach (string aluno in notaAlunos.Keys)
{
Console.WriteLine($"{aluno}");
}
Console.Write("\n Digite o nome que deseja calcular a média: ");
string nomeDoAluno = Console.ReadLine()!;
//Verifica se possui
List<int> notas = notaAlunos[nomeDoAluno];
if (notas.Count > 0)
{
double media = notas.Average();
Console.WriteLine($"\nA média do {nomeDoAluno} é: {media:F2}");
}
Thread.Sleep(2000);
ExibirOpcoesExercicio_1();
}
void ExibirTituloDaOpcao(string titulo)
{
int quantidadeDeLetras = titulo.Length;
string asteriscos = string.Empty.PadLeft(quantidadeDeLetras, '*');
Console.WriteLine(asteriscos);
Console.WriteLine(titulo);
Console.WriteLine(asteriscos + "\n");
}