


1b
2а
3b
4b
5а
6b
7b
8а
9а
10b
11а
12а
13а
14а
15d
16a
17a
18b
19b
20a
21a
22a
23a
24c
25a
Задача 3
Создать иерархию классов Person-Student-Teacher. Каждый класс – в своей сборке. В каждом классе должны быть свойства, а также виртуальная функция Print и переопределенная функция ToString(). Основная программа создает массив объектов Person или их наследников, после чего выдает его на экран. У каждого Teacher должен быть список Students, которыми он руководит, у каждого Student - Teacher, который им руководит.
С помощью is, as, GetType определить, сколько в массиве персон, студентов и преподавателей и перевести всех студентов на следующий курс.
Прикрепить скриншоты программы и код

Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Person
{
private byte age;
private string first_name;
private string last_name;
public byte Age
{
get
{
return age;
}
set
{
age = value;
}
}
public string First_name
{
get
{
return first_name;
}
set
{
first_name = value;
}
}
public string Last_name
{
get
{
return last_name;
}
set
{
last_name = value;
}
}
virtual public void Print()
{
Console.WriteLine("Имя: " + first_name);
Console.WriteLine("Фамилия: " + last_name);
Console.WriteLine("Возраст: " + age);
}
public override string ToString()
{
string str = "Имя: " + first_name + "; " + "Фамилия: " + last_name + "; " + "Возраст: " + age;
return str;
}
}
class Student : Person
{
private string teacher;
private string gruppa;
private byte kurs;
public string Teacher
{
get
{
return teacher;
}
set
{
teacher = value;
}
}
public string Gruppa
{
get
{
return gruppa;
}
set
{
gruppa = value;
}
}
public byte Kurs
{
get
{
return kurs;
}
set
{
kurs = value;
}
}
public override void Print()
{
Console.WriteLine("Имя: " + base.First_name);
Console.WriteLine("Фамилия: " + base.Last_name);
Console.WriteLine("Возраст: " + base.Age);
Console.WriteLine("Учитель: " + Teacher);
Console.WriteLine("Группа: " + Gruppa);
}
}
class Teacher : Person
{
private List<Student> list_student = new List<Student>();
public void AddStudent(Student student)
{
list_student.Add(student);
}
public bool RemoveStudent(Student student)
{
//var test=list_student.Select(x => x == student);
if (list_student.Exists(x => x == student))
{
return list_student.Remove(student);
}
else
{
return false;
}
}
public override void Print()
{
Console.WriteLine("Учитель: " + base.Last_name);
Console.WriteLine("Возраст: " + base.Age);
Console.WriteLine("Студенты: ");
byte count = 0;
foreach (var student in list_student)
{
Console.WriteLine(count + ")");
student.Print();
Console.WriteLine();
count++;
}
Console.WriteLine("----------------------------------------------------");
Console.WriteLine();
}
}
class Program
{
static void Main(string[] args)
{
List<Student> students = new List<Student>();
List<Teacher> teacher = new List<Teacher>();
students.Add(new Student() { Age = 22, First_name = "Иван", Last_name = "Иванов", Gruppa = "KSM-08-5", Kurs = 6, Teacher = "Вава" });
students.Add(new Student() { Age = 23, First_name = "Вася", Last_name = "Ивано", Gruppa = "KSM-08-5", Kurs = 6, Teacher = "Фпапппк" });
students.Add(new Student() { Age = 23, First_name = "Лера", Last_name = "Ива", Gruppa = "KSM-08-5", Kurs = 6, Teacher = "Ваысыыыс" });
students.Add(new Student() { Age = 23, First_name = "Даша", Last_name = "Ив", Gruppa = "KSM-08-5", Kurs = 6, Teacher = "Вава" });
teacher.Add(new Teacher() { Age = 65, First_name = "Михаил", Last_name = "Вава" });
teacher.Add(new Teacher() { Age = 63, First_name = "Геннадий", Last_name = "Фпапппк" });
teacher.Add(new Teacher() { Age = 60, First_name = "Антон", Last_name = "Ваысыыыс" });
for (int i = 0; i <= students.Count - 1; i++)
{
for (int j = 0; j <= teacher.Count - 1; j++)
{
if (teacher[j].Last_name == students[i].Teacher)
{
teacher[j].AddStudent(students[i]);
}
}
}
foreach (var teacher1 in teacher)
{
teacher1.Print();
}
Console.Read();
}
}
}