Me distanciei um pouco das atividades propostas da hora da prática XD
Estou aberto para conselhos e dicas de como fazer um código mais eficiente etc... :)
Em resumo, o código me permite fazer um Login, cadastrar nome e nota de aluno e acessar a média das notas.
Segue o código:
using System;
using System.Linq;
Dictionary<string, List> Alunos = new Dictionary<string, List>();
Dictionary<string, int> Login = new();
void TelaInicial()
{
Console.WriteLine(@"
██████╗░░█████╗░██████╗░████████╗░█████╗░██╗░░░░░ ██████╗░███████╗ ███╗░░██╗░█████╗░████████╗░█████╗░░██████╗
██╔══██╗██╔══██╗██╔══██╗╚══██╔══╝██╔══██╗██║░░░░░ ██╔══██╗██╔════╝ ████╗░██║██╔══██╗╚══██╔══╝██╔══██╗██╔════╝
██████╔╝██║░░██║██████╔╝░░░██║░░░███████║██║░░░░░ ██║░░██║█████╗░░ ██╔██╗██║██║░░██║░░░██║░░░███████║╚█████╗░
██╔═══╝░██║░░██║██╔══██╗░░░██║░░░██╔══██║██║░░░░░ ██║░░██║██╔══╝░░ ██║╚████║██║░░██║░░░██║░░░██╔══██║░╚═══██╗
██║░░░░░╚█████╔╝██║░░██║░░░██║░░░██║░░██║███████╗ ██████╔╝███████╗ ██║░╚███║╚█████╔╝░░░██║░░░██║░░██║██████╔╝
╚═╝░░░░░░╚════╝░╚═╝░░╚═╝░░░╚═╝░░░╚═╝░░╚═╝╚══════╝ ╚═════╝░╚══════╝ ╚═╝░░╚══╝░╚════╝░░░░╚═╝░░░╚═╝░░╚═╝╚═════╝░");
Console.WriteLine("\nDigite a opção desejada:");
Console.WriteLine(@"
1 - Cadastrar usuário
2 - Cadastrar aluno e notas do aluno
3 - Acessar média do aluno
4 - Sair
");
int opcaoEscolhida = int.Parse(Console.ReadLine()!);
switch (opcaoEscolhida)
{
case 1: CadastrarUsuario();
break;
case 2: CadastrarAluno();
break;
case 3: AcessarMediaAluno();
break;
case 4: Console.WriteLine("Até mais!");
break;
default: Console.WriteLine("Opção inválida");
break;
}
}
void CadastrarUsuario()
{
Console.Clear();
Console.WriteLine("CADASTRO DE USUÁRIO\n");
Console.Write("Digite seu usuário: ");
string usuario = Console.ReadLine()!;
Console.Write("Digite sua senha (apenas números): ");
int senha = int.Parse(Console.ReadLine()!);
Console.WriteLine("\nUsuário cadastrado com sucesso!");
Login.Add(usuario, senha);
Thread.Sleep(1000);
Console.Clear();
TelaInicial();
}
void CadastrarAluno()
{
Console.Clear();
LoginSenha();
Console.Clear();
Console.WriteLine("CADASTRO DE ALUNO\n");
Console.Write("Digite o nome de um aluno para cadastrar: ");
String NomeDoAluno = Console.ReadLine()!;
if (!Alunos.ContainsKey(NomeDoAluno))
{
Alunos.Add(NomeDoAluno, new List());
}
Console.Write($"Quantas notas você deseja cadastrar para {NomeDoAluno}? ");
if (int.TryParse(Console.ReadLine(), out int quantidade))
{
for (int i = 1; i <= quantidade; i++)
{
Console.Write($"Digite a nota {i}: ");
if (double.TryParse(Console.ReadLine(), out double nota))
{
Alunos[NomeDoAluno].Add(nota);
}
else
{
Console.WriteLine("Valor inválido! Esta nota será ignorada.");
i--;
}
}
}
Console.WriteLine($"\nCadastro de {NomeDoAluno} finalizado com {Alunos[NomeDoAluno].Count} notas.");
Thread.Sleep(2000);
Console.Clear();
TelaInicial();
}
void AcessarMediaAluno()
{
Console.Clear();
LoginSenha();
Console.Clear();
Console.WriteLine("MÉDIA DO ALUNO");
Console.Write("Digite o nome do aluno para acessar sua média de notas: ");
String AlunoDigitado = Console.ReadLine()!;
if (Alunos.ContainsKey(AlunoDigitado))
{
double media = Alunos[AlunoDigitado].Average();
Console.Write($"A média do {AlunoDigitado} é: {media} ");
Console.WriteLine("\nAperte qualquer tecla para voltar ao menu principal.");
Console.ReadKey();
Console.Clear();
TelaInicial();
}
else
{
Console.WriteLine("Aluno não encontrado!");
Thread.Sleep(1000);
Console.Clear();
TelaInicial();
}
}
void LoginSenha()
{
Console.WriteLine("FAÇA O LOGIN");
Console.Write("\nDigite seu usuário: ");
String usuario = Console.ReadLine()!;
if (Login.ContainsKey(usuario))
{
Console.Write("Digite sua senha: ");
int senha = int.Parse(Console.ReadLine()!);
if (Login[usuario] == (senha))
{
Console.WriteLine("Login realizado com sucesso!");
}
else
{
Console.WriteLine("Senha não encontrada!");
Thread.Sleep(700);
Console.Clear();
TelaInicial();
}
}
else
{
Console.WriteLine("Usuário não encontrado! ");
Thread.Sleep(700);
Console.Clear();
TelaInicial();
}
}
TelaInicial();