1
resposta

Minha Solução Escola

Se puderem dar dicas do que posso fazer para melhorar o código ou se tem algum erro que possa ser corrigido

Program.cs

Disciplina materia = new Disciplina();
materia.NomeDisciplina = "Matematica";

Aluno aluno1 = new Aluno();
aluno1.Nome = "Matheus";
aluno1.Idade = 15;
aluno1.Notas = 10;

Aluno aluno2 = new Aluno();
aluno2.Nome = "Carlos";
aluno2.Idade = 16;
aluno2.Notas = 8;

Professor prof1 = new Professor();
prof1.Nome = "Claudia";
//prof1.Materia = "Matematica";

materia.AdicionarAlunosMatriculados(aluno1);
materia.AdicionarAlunosMatriculados(aluno2);
materia.AdicionarProfessores(prof1);


materia.ExibirAlunos();

Alunos.cs

class Aluno
{
    public string Nome { get; set; }
    public int Idade { get; set; }
    public int Notas { get; set; }
}

Professor.cs

class Professor
{
    public string Nome { get; set; }
    //public string Materia { get; set; }
}

Disciplina.cs

class Disciplina
{   
    private List<Aluno> alunos = new List<Aluno>();
    private List<Professor> professores = new List<Professor>();
    public string NomeDisciplina { get; set; }

    public void AdicionarAlunosMatriculados(Aluno aluno)
    {
        alunos.Add(aluno);
    }

    public void AdicionarProfessores(Professor professor)
    {
        professores.Add(professor);
    }

    public void ExibirAlunos()
    {
        Console.WriteLine($"Alunos matriculados e suas notas na matéria de {NomeDisciplina}");
        foreach(var aluno in alunos)
        {
            Console.WriteLine($"Nome: {aluno.Nome}");
            Console.WriteLine($"Idade: {aluno.Idade}");
            Console.WriteLine($"Nota: {aluno.Notas}");
        }
        
        foreach(var professor in professores)
        {
            Console.WriteLine($"Matéria de {NomeDisciplina} lecionado pelo professor(a) {professor.Nome}");
        }
    }
}
1 resposta

Olá Samuel! Como vai?

Seu código está bem estruturado e já demonstra uma boa aplicação dos conceitos de orientação a objetos. Aqui estão algumas sugestões para melhorá-lo:

  1. Encapsulamento: Para seguir o princípio do encapsulamento, você pode tornar as listas de alunos e professores privadas e fornecer métodos para acessá-las, em vez de acessá-las diretamente.

  2. Validação de Dados: Considere adicionar validações ao adicionar alunos e professores, como verificar se já estão matriculados ou se o professor já leciona a disciplina.

  3. Uso de Coleções Genéricas: Caso queira explorar mais, você pode usar coleções genéricas para armazenar e manipular os dados de forma mais eficiente.

Essas são apenas algumas sugestões para refinar seu projeto. A prática contínua vai te ajudar a descobrir mais maneiras de otimizar e melhorar seu código.

Bons estudos!