Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- /* ResearchTeam std = new ResearchTeam(); //Создать один объект типа ResearchTeam
- Console.WriteLine(std.ToShortString()); //Преобразовать данные в текстовый вид с помощью метода ToShortString() и вывести данные
- static void Main(string[] args)
- {*/
- Console.WriteLine("объект типа ResearchTeam, преобразовать данные в текстовый вид с помощью метода ToShortString() и вывести данные");
- Console.WriteLine();
- ResearchTeam RS = new ResearchTeam();
- Console.WriteLine(RS.ToShortString());
- Console.WriteLine();
- Console.ReadLine();
- //TimeFrame.Year, TimeFrame.TwoYears, TimeFrame.Long
- Console.WriteLine(RS[TimeFrame.Year]);
- Console.WriteLine(RS[TimeFrame.TwoYears]);
- Console.WriteLine(RS[TimeFrame.Long]);
- }
- }
- class Person
- {
- private string Name;
- private string Lastname;
- private System.DateTime date;
- //конструктор c тремя параметрами типа string, string, DateTime для инициализации всех полей класса
- public Person(string name1, string Lastname1, DateTime date1)
- {
- Name = name1;
- Lastname = Lastname1;
- date = date1;
- }
- //конструктор без параметров
- public Person() : this("Default_Name", "Default_Sname", new DateTime(2020, 02, 19))
- {
- }
- // Свойства c методами get и set:
- string StdName
- {
- get
- {
- return Name;
- }
- set
- {
- Name = value;
- }
- }
- string StdLastName
- {
- get
- {
- return Lastname;
- }
- set
- {
- Lastname = value;
- }
- }
- DateTime StdDate
- {
- get
- {
- return date;
- }
- set
- {
- date = value;
- }
- }
- //Свойство типа int c методами get и set для получения информации(get) и изменения (set) года рождения в закрытом поле типа DateTime, в котором хранится дата рождения
- int date1
- {
- get
- {
- return Convert.ToInt32(date);
- }
- set
- {
- date = Convert.ToDateTime(value);
- }
- }
- //Перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех полей класса
- public override string ToString()
- {
- return string.Format("{0} {1}\nDate of birth: {2}", Name, Lastname, date);
- }
- //Виртуальный метод string ToShortString(), который возвращает строку, содержащую только имя и фамилию.
- public string ToShortString()
- {
- return "\n" + "Имя: " + Name + "\n" + "Фамилия: " + Lastname;
- }
- }
- //тип TimeFrame перечисление(enum) со значениями Year, TwoYears, Long.
- enum TimeFrame { Year, TwoYears, Long }
- // класс Paper, который имеет три открытых автореализуемых свойства, доступных для чтения и записи
- class Paper
- {
- public
- string NameP
- { get; set; }
- Person Author { get; set; }
- DateTime Data { get; set; }
- public Paper(string name, Person author, DateTime data)
- {
- NameP = name;
- Author = author;
- Data = data;
- }
- // конструктор без параметров, инициализирующий все свойства класса некоторыми значениями по умолчанию
- private Paper() : this("WarandWorld", "Tolstoy", new DateTime(1889, 6, 1))
- { }
- public Paper(string v1, string v2, DateTime dateTime)
- {
- }
- // перегруженную версию виртуального метода string To-String() для формирования строки со значениями всех полей класса
- public override string ToString()
- {
- return string.Format("Author {0} write book {1}. Data = {2}", NameP, Author, Data);
- }
- }
- class ResearchTeam
- {
- private string Theme;
- private string NameOfOrg;
- private int Number;
- private TimeFrame Last;
- private List<Paper> _publications = new List<Paper>();
- //конструктор
- public ResearchTeam(string theme, string nameoforg, int number, TimeFrame last)
- {
- Theme = theme;
- NameOfOrg = nameoforg;
- Number = number;
- Last = last;
- }
- //Конструктор без параметров, инициализирующий поля класса значениями по умолчанию
- public ResearchTeam() : this("Mir", "Win", 27, TimeFrame.Long) { }
- //В классе ResearchTeam определить свойства c методами get и set
- public string theme
- {
- get
- {
- return Theme;
- }
- set
- {
- Theme = value;
- }
- }
- public string nameofogr
- {
- get
- {
- return NameOfOrg;
- }
- set
- {
- NameOfOrg = value;
- }
- }
- public int number
- {
- get
- {
- return Number;
- }
- set
- {
- Number = value;
- }
- }
- //Cвойство типа TimeFrame для доступа к полю с продолжительностью исследований
- public TimeFrame last
- {
- get
- {
- return Last;
- }
- set
- {
- Last = value;
- }
- }
- //Cвойство типа Paper[] для доступа к полю со списком публикаций по те-ме исследований
- public IReadOnlyList<Paper> Publications // свойство типа Exam [] для доступа к полю со списком экзаменов
- {
- get
- {
- return _publications.AsReadOnly();
- }
- }
- //Cвойство типа Paper[] для доступа к полю со списком публикаций по те-ме исследований
- //Cвойство типа Paper ( только с методом get), которое возвращает ссылку на публикацию с самой поздней датой выхода; если список публикаций пустой, свойство возвращает значение null
- public Paper ListPublic
- {
- get
- {
- /*double averageGrade = _passedExams.Average(avgrade => avgrade.Grade);
- return averageGrade;*/
- return null;
- }
- }
- //Индексатор булевского типа (только с методом get) с одним параметром типа Education; значение индексатора равно true, если значение поля с формой обучения студента совпадает со значением индекса, и false в противном случае
- public bool this[TimeFrame rez1]
- {
- get
- {
- bool rez;
- if (rez1 == Last) rez = true;
- else rez = false;
- return rez;
- }
- }
- //Метод void AddPapers ( params Paper[] ) для добавления элементов в список публикаций
- public void AddPapers(Paper[] papers)
- {
- _publications.AddRange(papers);
- }
- //Gерегруженную версию виртуального метода string ToString() для фор-мирования строки со значениями всех полей класса, включая список пуб-ликаций
- public override string ToString()
- {
- return string.Format("\nTheme: {0}\nNameOfOrg: {1}\nNumberOfRed: {2}\nLast: {3}\nPublications: {4} ", Theme, NameOfOrg, Number, Last, _publications);
- }
- //Виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка публикаций
- public string ToShortString() // виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка экзаменов, но со значением среднего балла.
- {
- return string.Format("\nTheme: {0}\nNameOfOrg: {1}\nNumberOfRed: {2}\nLast: {3}\n", Theme, NameOfOrg, Number, Last);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement