1
resposta

[Dúvida] Projeto Escola

No código que irei mandar a seguir, tive dificuldade para apresentar no console a segunda materia lecionada pelo professor, que seria "Portugues" de que forma eu conseguiria fazer isso e tambem fico grato se corrigirem algum outro erro que possa ter cometido durante o exercicio

class Disciplina
{
    private List<Aluno> alunos = new List<Aluno>();
    public string Nome { get; set; }
    public string Disciplinas => $"e suas disciplinas lecionadas são {Nome} ";
    public List<Aluno> Alunos => alunos; 
    public void Adicionar_Aluno(Aluno aluno)
    {
        alunos.Add(aluno);
    }
    public void Exibir_alunos()
    {

        
        foreach (var aluno in alunos)
        {
            Console.WriteLine($"\nAlunos cadastrados nas disciplinas:{aluno.Nome}\n ");
        }
        

        




    }

class Professor
{
    public string Nome { get; set; }
    public int Idade { get; set; }
    public string Resumo_professor => $"O Professor {Nome}, tem {Idade} anos";

    public Disciplina Disciplina { get; set; }
    public Aluno Aluno { get; set; }


    public void Disciplinas_lecionadas(string disciplina_selecionada)
    {
        List<string> disciplinas = new List<string> { "Matamática", "Português" };

        if (disciplinas.Contains(disciplina_selecionada))
        {
            Console.WriteLine($"\nDisciplina: {disciplina_selecionada}");
           
        }
       
        
    }
    public void Exibir_notas_alunos(string disciplina_selecionada)
    {
        if (Disciplina != null && Disciplina.Nome == disciplina_selecionada)
        {
            foreach (var aluno in Disciplina.Alunos)
            {
                Console.WriteLine($"{ aluno.Nome}:  Nota { aluno.Nota} ");
            }
        }
        else
        {
            Console.WriteLine("Nao existem alunos cadastrados nessa disciplina.");
        }
    }
    public void Exibindo_resumo() =>
        Console.WriteLine($"\n{Resumo_professor} {Disciplina.Disciplinas}\n ");
   
}

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

}

Aluno aluno = new Aluno();
aluno.Nota = 9.5;
aluno.Idade = 21;
aluno.Nome = "Leonardo";
Aluno aluno_2 = new Aluno();
aluno_2.Nota = 3.5;
aluno_2.Idade = 21;
aluno_2.Nome = "Big";
Aluno aluno_3 = new Aluno();
aluno_3.Nota = 10;
aluno_3.Idade = 21;
aluno_3.Nome = "Brito";




Disciplina disciplina = new Disciplina();
disciplina.Nome = "Matamática";
Disciplina disciplina_2 = new Disciplina();
disciplina_2.Nome = "Português";
disciplina.Adicionar_Aluno(aluno);
disciplina.Adicionar_Aluno(aluno_2);
disciplina.Adicionar_Aluno(aluno_3);



Professor professor = new Professor();
professor.Nome = "Rangel";
professor.Idade = 519;
professor.Disciplina = disciplina;
professor.Disciplinas_lecionadas("Matamática");
professor.Exibir_notas_alunos("Matamática");

disciplina.Exibir_alunos();
professor.Exibindo_resumo();
1 resposta

Oi, Leonardo! Beleza?

No seu código, você está instanciando e associando uma disciplina à disciplina do professor, mas o problema é que o professor está só "ministrando" a disciplina de Matemática, e você quer exibir também a Português. O que você precisa fazer é garantir que o professor leciona ambas as disciplinas, ou seja, você vai precisar alterar a lógica de como as disciplinas são associadas ao professor.

Aqui está o que você pode fazer para corrigir:

Ajustes no Código:

  1. Professor lecionando mais de uma disciplina: O professor vai lecionar uma lista de disciplinas, e não apenas uma, então vamos trocar a propriedade Disciplina do professor para uma lista de disciplinas.

  2. Exibir a segunda matéria ("Português"): Depois, no método Disciplinas_lecionadas, a ideia é mostrar todas as disciplinas que o professor está lecionando.

Aqui vai a versão corrigida:

using System;
using System.Collections.Generic;

class Disciplina
{
    private List<Aluno> alunos = new List<Aluno>();
    public string Nome { get; set; }
    public string Disciplinas => $"e suas disciplinas lecionadas são {Nome} ";
    public List<Aluno> Alunos => alunos;

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

    public void Exibir_alunos()
    {
        foreach (var aluno in alunos)
        {
            Console.WriteLine($"\nAluno: {aluno.Nome} está cadastrado na disciplina {Nome}\n ");
        }
    }
}

class Professor
{
    public string Nome { get; set; }
    public int Idade { get; set; }
    public string Resumo_professor => $"O Professor {Nome}, tem {Idade} anos";

    // Alterando para uma lista de disciplinas
    public List<Disciplina> Disciplinas { get; set; } = new List<Disciplina>();

    public void Disciplinas_lecionadas()
    {
        Console.WriteLine($"\nO professor {Nome} leciona as seguintes disciplinas:");
        foreach (var disciplina in Disciplinas)
        {
            Console.WriteLine($"- {disciplina.Nome}");
        }
    }

    public void Exibir_notas_alunos(string disciplina_selecionada)
    {
        // Checando se a disciplina está na lista do professor
        var disciplina = Disciplinas.Find(d => d.Nome == disciplina_selecionada);
        if (disciplina != null)
        {
            foreach (var aluno in disciplina.Alunos)
            {
                Console.WriteLine($"{aluno.Nome}: Nota {aluno.Nota}");
            }
        }
        else
        {
            Console.WriteLine("Não existem alunos cadastrados nessa disciplina.");
        }
    }

    public void Exibindo_resumo()
    {
        Console.WriteLine($"\n{Resumo_professor}");
    }
}

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

class Program
{
    static void Main()
    {
        // Criando os alunos
        Aluno aluno = new Aluno() { Nome = "Leonardo", Nota = 9.5, Idade = 21 };
        Aluno aluno_2 = new Aluno() { Nome = "Big", Nota = 3.5, Idade = 21 };
        Aluno aluno_3 = new Aluno() { Nome = "Brito", Nota = 10, Idade = 21 };

        // Criando as disciplinas
        Disciplina disciplina = new Disciplina() { Nome = "Matemática" };
        Disciplina disciplina_2 = new Disciplina() { Nome = "Português" };

        // Adicionando alunos às disciplinas
        disciplina.Adicionar_Aluno(aluno);
        disciplina.Adicionar_Aluno(aluno_2);
        disciplina.Adicionar_Aluno(aluno_3);
        
        // Adicionando alunos à disciplina de Português
        disciplina_2.Adicionar_Aluno(aluno_3);
        
        // Criando o professor
        Professor professor = new Professor() { Nome = "Rangel", Idade = 40 };
        
        // O professor leciona ambas as disciplinas
        professor.Disciplinas.Add(disciplina);
        professor.Disciplinas.Add(disciplina_2);

        // Exibindo informações
        professor.Disciplinas_lecionadas();
        professor.Exibir_notas_alunos("Matemática");
        professor.Exibir_notas_alunos("Português");

        disciplina.Exibir_alunos();
        professor.Exibindo_resumo();
    }
}

Agora o que acontece:

  • O professor "Rangel" leciona Matemática e Português.
  • O código vai mostrar as duas matérias que ele leciona e também as notas dos alunos nas duas disciplinas.

Agora o seu código deve funcionar certinho, exibindo a segunda disciplina ("Português") e tratando os alunos de acordo!

Qualquer coisa, fala ai