1
resposta

[Projeto] Minha Solução

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

public void AdiconarNota(double nota)
{
    if (nota >= 0 && nota <= 10)
    {
        Notas.Add(nota);
    }
    else
    {
        throw new Exception("A nota deve está entre 0 e 10");
    }
}

public string MediaNota()
{
    return Notas.Any() ? $"Médias de notas: {Notas.Average():F2}"
        : "Nehuma nota cadastrada";
}

public Aluno(string nome, int idade)
{
    Nome = nome;
    Idade = idade;
    Notas = new List<double>();
}

public void ExibirDados()
{
    Console.WriteLine($"Nome: {Nome}\n" +
        $"Idade: {Idade}\n" +
        $"Notas: {(Notas.Any()? string.Join(",", Notas) : "Nenhuma nota adicionada")}\n" +
        $"Média de notas: {MediaNota()}");
}

    

}

class Professor { public string Nome { get; set; } public Disciplina Disciplina { get; set; }

public Professor(string nome, Disciplina disciplina)
{
    Nome = nome;     
    Disciplina = disciplina;
}

public void ExibirDados()
{
    Console.WriteLine($"Nome: {Nome}\n" +
        $"Discipla: {Disciplina.Nome}");
}

public void AdicionarDisciplina(Disciplina disciplina)
{
    Disciplina = disciplina;
}

}

class Disciplina { public string Nome { get; set; } List Alunos { get; set; }

public Disciplina(string nome)
{
    Nome = nome;
    Alunos = new List<Aluno>();
}

public void AdicionarAluno(Aluno aluno)
{
    Alunos.Add(aluno);
}

public void AdicionarVariosAlunos(LinkedList<Aluno> alunos)
{
    Alunos.AddRange(alunos);
}

public void ExibirDados()
{
    Console.WriteLine($"Disciplina - {Nome}\n");
    
    if (Alunos.Any())        {
        Console.WriteLine("Alunos matriculados:\n");
        foreach (var aluno in Alunos)
        {
            Console.WriteLine($"- {aluno.Nome}");
        }
    }
    else
    {
        Console.WriteLine("Não há alunos matriculados");
    }
}

}

1 resposta

Olá, Bruno, bom dia! Tudo bom?

Parece que você está no caminho certo com o seu projeto de modelagem de um sistema escolar. Você já criou as classes Aluno, Professor e Disciplina, que são os componentes principais para esse tipo de sistema. Vou fazer algumas observações e sugestões que podem ajudar a melhorar ou ajustar seu código:

  1. Classe Aluno:

    • O método AdiconarNota possui um pequeno erro de digitação no nome. O correto seria AdicionarNota.
    • A lógica para calcular a média das notas está correta, mas o método MediaNota poderia retornar um double em vez de uma string, caso você queira usar esse valor para outros cálculos no futuro.
  2. Classe Professor:

    • Atualmente, um Professor pode lecionar apenas uma Disciplina. Se o objetivo for permitir que um professor lecione várias disciplinas, você pode considerar usar uma lista de disciplinas (List<Disciplina>).
  3. Classe Disciplina:

    • No método AdicionarVariosAlunos, você está tentando usar AddRange com um LinkedList<Aluno>, mas esse método é específico para List<Aluno>. Você pode converter o LinkedList em uma List ou iterar sobre o LinkedList para adicionar os alunos individualmente.
    • A lista de alunos (List<Aluno>) na classe Disciplina está como privada. Se precisar acessá-la fora da classe, considere adicionar um método público que retorne a lista de alunos ou torná-la uma propriedade pública.

Essas são algumas sugestões para aprimorar seu código. Lembre-se de sempre testar seu código após fazer alterações para garantir que tudo esteja funcionando conforme o esperado.

Espero ter ajudado e bons estudos!