1
resposta

Desafio: hora da prática - Escola, Restaurante

  1. Modelar o sistema de uma escola. Crie classes para Aluno, Professor e Disciplina. A classe Aluno deve ter informações como nome, idade e notas. A classe Professor deve ter informações sobre nome e disciplinas lecionadas. A classe Disciplina deve armazenar o nome da disciplina e a lista de alunos matriculados.
class Aluno
{
    private List<decimal> notas = new List<decimal>();
    public int Codigo { get; set; }
    public string Nome { get; set; }
    public DateTime DataNascimento { get; set; }
    public int Idade => DateTime.Now.Year - DataNascimento.Year;

    public void AdicionarNota(decimal nota)
    {
        notas.Add(nota);
    }
}

class Professor
{
    List<Disciplina> disciplinas = new List<Disciplina>();
    public int Codigo { get; set; }
    public string Nome { get; set; }

    public void AdicionarDisciplina(Disciplina disciplina)
    {
        disciplinas.Add(disciplina);
    }
}

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

    public void AdicionarAluno(Aluno aluno)
    {
        alunos.Add(aluno);
    }
}
var aluno1 = new Aluno();
aluno1.Nome = "Joao";
aluno1.DataNascimento = new DateTime(2000,05,01);
aluno1.Codigo = 1;

var aluno2 = new Aluno();
aluno1.Nome = "Mariah";
aluno1.DataNascimento = new DateTime(2000,06,01);
aluno1.Codigo = 2;

var disciplina = new Disciplina();
disciplina.Nome = "Matematica";
disciplina.AdicionarAluno(aluno1);
disciplina.AdicionarAluno(aluno2);

var professor = new Professor();
professor.Codigo = 1;
professor.Nome = "Luis";
professor.AdicionarDisciplina(disciplina);
  1. Modelar um sistema para um restaurante com classes como Restaurante, Mesa, Pedido e Cardapio. A classe Restaurante deve ter mesas que podem ser reservadas e um cardápio com itens que podem ser pedidos. Os pedidos podem estar associados a uma mesa.
class Restaurante
{
    private List<Mesa> mesas = new List<Mesa>();
    public string Nome {get; set; }    
}

class Mesa
{
    public int Numero {get; set;}
    public bool Reservado {get;set;}
    public int TotalCadeiras {get; set;}   
}

class Pedido
{
    private Mesa _mesa;
    private List<ItemCardapio> itens = new List<ItemCardapio>();
    public int Codigo {get; set;}
    public decimal Total => itens.Sum(x => x.Preco);

    public void AdicionarMesa(Mesa mesa)
    {
        _mesa = mesa;
    }

    public void AdicionarItem(ItemCardapio item)
    {
        itens.Add(item);
    }
}

class Cardapio
{
    private List<ItemCardapio> itensCardapios = new List<ItemCardapio>();

    public void AdicionarItens(ItemCardapio item)
    {
        itensCardapios.Add(item);
    }

    public void ExibirItensCardápio()
    {
        Console.WriteLine("Menu:");
        foreach (var item in itensCardapios)
        {
            Console.WriteLine($"Item: {item.Nome}");
            Console.WriteLine($"Preco: {item.Preco}");
        }
    }
}

class ItemCardapio
{
    public string Nome {get; set;}
    public decimal Preco { get; set; }
}
1 resposta

Olá, Eduardo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o encapsulamento para modelar entidades de uma escola e de um restaurante com C#, utilizou muito bem a coleção genérica List para organizar alunos, disciplinas, mesas e pedidos e ainda compreendeu a importância da orientação a objetos para estruturar sistemas distintos de forma clara e reutilizável.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!