using System;
namespace ExamHierarchy
{
// Базовый класс
class Ispytanie
{
public string Nazvanie { get; set; }
public int MaxBall { get; set; }
public Ispytanie(string nazvanie, int maxBall)
{
Nazvanie = nazvanie;
MaxBall = maxBall;
}
public virtual void ShowInfo()
{
Console.WriteLine($"Испытание: {Nazvanie}");
Console.WriteLine($"Максимальный балл: {MaxBall}");
}
}
// Класс Тест
class Test : Ispytanie
{
public int KolichestvoVoprosov { get; set; }
public Test(string nazvanie, int maxBall, int kolichestvoVoprosov)
: base(nazvanie, maxBall)
{
KolichestvoVoprosov = kolichestvoVoprosov;
}
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Количество вопросов: {KolichestvoVoprosov}");
}
}
// Класс Экзамен
class Ekzamen : Ispytanie
{
public string Predmet { get; set; }
public Ekzamen(string nazvanie, int maxBall, string predmet)
: base(nazvanie, maxBall)
{
Predmet = predmet;
}
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Предмет: {Predmet}");
}
}
// Класс Выпускной экзамен
class VypusknoiEkzamen : Ekzamen
{
public bool EstDiplom { get; set; }
public VypusknoiEkzamen(string nazvanie, int maxBall, string predmet, bool estDiplom)
: base(nazvanie, maxBall, predmet)
{
EstDiplom = estDiplom;
}
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Выдается диплом: {(EstDiplom ? "Да" : "Нет")}");
}
}
class Program
{
static void Main()
{
Test test = new Test("Тест по математике", 20, 10);
Ekzamen ekzamen = new Ekzamen("Семестровый экзамен", 100, "Физика");
VypusknoiEkzamen vypusknoi = new VypusknoiEkzamen("Выпускной экзамен", 100, "Информатика", true);
test.ShowInfo();
Console.WriteLine();
ekzamen.ShowInfo();
Console.WriteLine();
vypusknoi.ShowInfo();
}
}
}