Estudante.cs
internal class Estudante(string nome)
{
public string Nome { get; } = nome;
}
Curso.cs
internal class Curso(string nome, int vagasTotais)
{
private readonly List<Estudante> _matriculas = [];
public string Nome { get; } = nome;
public int VagasTotais = vagasTotais;
public int VagasDisponiveis { get; private set; } = vagasTotais;
public bool Matricular(Estudante estudante)
{
if (VagasDisponiveis > 0)
{
_matriculas.Add(estudante);
VagasDisponiveis -= 1;
Console.WriteLine($"Aluno(a) {estudante.Nome} adicionado com sucesso! O curso possui {VagasDisponiveis} {(VagasDisponiveis == 1 ? "vaga disponível" : "vagas disponíveis")}.");
return true;
}
Console.WriteLine($"Erro: O(a) aluno(a) {estudante.Nome} não pode ser incluso no curso, pois não há mais vagas disponíveis.");
return false;
}
public void ListarMatriculados()
{
StringBuilder sb = new();
sb.AppendLine($"Estudantes matriculados em {Nome}:");
foreach (var estudante in _matriculas)
sb.AppendLine($" - {estudante.Nome}");
sb.AppendLine($"Vagas disponíveis: {VagasDisponiveis}");
Console.WriteLine(sb.ToString());
}
}
Program.cs
Curso curso = new("Lógica de Programação", 2);
curso.Matricular(new Estudante("Rafaela"));
curso.Matricular(new Estudante("João"));
curso.Matricular(new Estudante("Mirela"));
curso.ListarMatriculados();