using static System.Console;
using System.Collections.Generic;
public class Program {
public static void Main(string[] args) {
var vizu = new Aluno() {
Nome = "Joao Vizu",
Ra = "N300361",
NotaB1 = 7.5M,
NotaB2 = 10M
};
var lais = new AlunoTecnologo() {
Nome = "Lais Silva",
Ra = "545454",
NotaB1 = 7.5M,
NotaB2 = 10M,
NotaPim = 9M
};
var dao = new AlunoDao();
dao.Adicionar(vizu);
dao.Adicionar(lais);
foreach (Aluno aluno in dao.Listar()) WriteLine($"Nome: {aluno.Nome}\tNotaB1: {aluno.NotaB1}\tNotaB2: {aluno.NotaB2}\tMedia: {aluno.Media}");
}
}
public class Aluno {
public string Nome { get; set; }
public string Ra { get; set; }
public decimal NotaB1 { get; set; }
public decimal NotaB2 { get; set; }
public virtual decimal Media => (NotaB1 + NotaB2) / 2;
}
public class AlunoTecnologo : Aluno {
public decimal NotaPim { get; set; }
public override decimal Media => NotaPim * 0.2m + base.Media;
}
public class AlunoDao {
private List<Aluno> alunos;
public AlunoDao() => alunos = new List<Aluno>();
public void Adicionar(Aluno aluno) => alunos.Add(aluno);
public List<Aluno> Listar() => new List<Aluno>(alunos);
}
//https://pt.stackoverflow.com/q/404829/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICB2YXIgdml6dSA9IG5ldyBBbHVubygpIHsKICAgICAgICAgICAgTm9tZSA9ICJKb2FvIFZpenUiLAogICAgICAgICAgICBSYSA9ICJOMzAwMzYxIiwKICAgICAgICAgICAgTm90YUIxID0gNy41TSwKICAgICAgICAgICAgTm90YUIyID0gMTBNCiAgICAgICAgfTsKICAgICAgICB2YXIgbGFpcyA9IG5ldyBBbHVub1RlY25vbG9nbygpIHsKICAgICAgICAgICAgTm9tZSA9ICJMYWlzIFNpbHZhIiwKICAgICAgICAgICAgUmEgPSAiNTQ1NDU0IiwKICAgICAgICAgICAgTm90YUIxID0gNy41TSwKICAgICAgICAgICAgTm90YUIyID0gMTBNLAogICAgICAgICAgICBOb3RhUGltID0gOU0KICAgICAgICB9OwogICAgICAgIHZhciBkYW8gPSBuZXcgQWx1bm9EYW8oKTsKICAgICAgICBkYW8uQWRpY2lvbmFyKHZpenUpOwogICAgICAgIGRhby5BZGljaW9uYXIobGFpcyk7CiAgICAgICAgZm9yZWFjaCAoQWx1bm8gYWx1bm8gaW4gZGFvLkxpc3RhcigpKSBXcml0ZUxpbmUoJCJOb21lOiB7YWx1bm8uTm9tZX1cdE5vdGFCMToge2FsdW5vLk5vdGFCMX1cdE5vdGFCMjoge2FsdW5vLk5vdGFCMn1cdE1lZGlhOiB7YWx1bm8uTWVkaWF9Iik7CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBBbHVubyB7CiAgICBwdWJsaWMgc3RyaW5nIE5vbWUgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIHN0cmluZyBSYSB7IGdldDsgc2V0OyB9CiAgICBwdWJsaWMgZGVjaW1hbCBOb3RhQjEgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIGRlY2ltYWwgTm90YUIyIHsgZ2V0OyBzZXQ7IH0KICAgIHB1YmxpYyB2aXJ0dWFsIGRlY2ltYWwgTWVkaWEgPT4gKE5vdGFCMSArIE5vdGFCMikgLyAyOwp9CgogcHVibGljIGNsYXNzIEFsdW5vVGVjbm9sb2dvIDogQWx1bm8gewogICAgcHVibGljIGRlY2ltYWwgTm90YVBpbSB7IGdldDsgc2V0OyB9CiAgICBwdWJsaWMgb3ZlcnJpZGUgZGVjaW1hbCBNZWRpYSA9PiBOb3RhUGltICogMC4ybSArIGJhc2UuTWVkaWE7Cn0KCnB1YmxpYyBjbGFzcyBBbHVub0RhbyB7CiAgICBwcml2YXRlIExpc3Q8QWx1bm8+IGFsdW5vczsKICAgIHB1YmxpYyBBbHVub0RhbygpID0+IGFsdW5vcyA9IG5ldyBMaXN0PEFsdW5vPigpOwogICAgcHVibGljIHZvaWQgQWRpY2lvbmFyKEFsdW5vIGFsdW5vKSA9PiBhbHVub3MuQWRkKGFsdW5vKTsKICAgIHB1YmxpYyBMaXN0PEFsdW5vPiBMaXN0YXIoKSA9PiBuZXcgTGlzdDxBbHVubz4oYWx1bm9zKTsKfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvNDA0ODI5LzEwMQ==