Advertisement
Guest User

56465

a guest
Feb 20th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.28 KB | None | 0 0
  1.  
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace ConsoleApplication1
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. /* ResearchTeam std = new ResearchTeam(); //Создать один объект типа ResearchTeam
  16. Console.WriteLine(std.ToShortString()); //Преобразовать данные в текстовый вид с помощью метода ToShortString() и вывести данные
  17. static void Main(string[] args)
  18. {*/
  19. Console.WriteLine("объект типа ResearchTeam, преобразовать данные в текстовый вид с помощью метода ToShortString() и вывести данные");
  20. Console.WriteLine();
  21. ResearchTeam RS = new ResearchTeam();
  22. Console.WriteLine(RS.ToShortString());
  23. Console.WriteLine();
  24. Console.ReadLine();
  25.  
  26. //TimeFrame.Year, TimeFrame.TwoYears, TimeFrame.Long
  27. Console.WriteLine(RS[TimeFrame.Year]);
  28. Console.WriteLine(RS[TimeFrame.TwoYears]);
  29. Console.WriteLine(RS[TimeFrame.Long]);
  30.  
  31. }
  32.  
  33. }
  34.  
  35. class Person
  36. {
  37.  
  38.  
  39. private string Name;
  40. private string Lastname;
  41. private System.DateTime date;
  42.  
  43.  
  44. //конструктор c тремя параметрами типа string, string, DateTime для инициализации всех полей класса
  45. public Person(string name1, string Lastname1, DateTime date1)
  46. {
  47. Name = name1;
  48. Lastname = Lastname1;
  49. date = date1;
  50. }
  51.  
  52. //конструктор без параметров
  53. public Person() : this("Default_Name", "Default_Sname", new DateTime(2020, 02, 19))
  54. {
  55. }
  56.  
  57. // Свойства c методами get и set:
  58.  
  59. string StdName
  60. {
  61. get
  62. {
  63. return Name;
  64. }
  65. set
  66. {
  67. Name = value;
  68. }
  69. }
  70.  
  71. string StdLastName
  72. {
  73. get
  74. {
  75. return Lastname;
  76. }
  77. set
  78. {
  79. Lastname = value;
  80. }
  81.  
  82. }
  83.  
  84. DateTime StdDate
  85. {
  86. get
  87. {
  88. return date;
  89. }
  90. set
  91. {
  92. date = value;
  93. }
  94.  
  95. }
  96.  
  97. //Свойство типа int c методами get и set для получения информации(get) и изменения (set) года рождения в закрытом поле типа DateTime, в котором хранится дата рождения
  98. int date1
  99. {
  100. get
  101. {
  102. return Convert.ToInt32(date);
  103. }
  104. set
  105. {
  106. date = Convert.ToDateTime(value);
  107. }
  108. }
  109.  
  110.  
  111. //Перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех полей класса
  112. public override string ToString()
  113. {
  114. return string.Format("{0} {1}\nDate of birth: {2}", Name, Lastname, date);
  115. }
  116.  
  117.  
  118. //Виртуальный метод string ToShortString(), который возвращает строку, содержащую только имя и фамилию.
  119. public string ToShortString()
  120. {
  121. return "\n" + "Имя: " + Name + "\n" + "Фамилия: " + Lastname;
  122. }
  123. }
  124.  
  125.  
  126. //тип TimeFrame  перечисление(enum) со значениями Year, TwoYears, Long.
  127. enum TimeFrame { Year, TwoYears, Long }
  128.  
  129. // класс Paper, который имеет три открытых автореализуемых свойства, доступных для чтения и записи
  130. class Paper
  131. {
  132. public
  133.  
  134. string NameP
  135. { get; set; }
  136. Person Author { get; set; }
  137. DateTime Data { get; set; }
  138.  
  139.  
  140. public Paper(string name, Person author, DateTime data)
  141. {
  142. NameP = name;
  143. Author = author;
  144. Data = data;
  145. }
  146.  
  147. // конструктор без параметров, инициализирующий все свойства класса некоторыми значениями по умолчанию
  148. private Paper() : this("WarandWorld", "Tolstoy", new DateTime(1889, 6, 1))
  149. { }
  150.  
  151. public Paper(string v1, string v2, DateTime dateTime)
  152. {
  153. }
  154.  
  155.  
  156. // перегруженную версию виртуального метода string To-String() для формирования строки со значениями всех полей класса
  157. public override string ToString()
  158. {
  159. return string.Format("Author {0} write book {1}. Data = {2}", NameP, Author, Data);
  160. }
  161. }
  162.  
  163.  
  164. class ResearchTeam
  165. {
  166. private string Theme;
  167. private string NameOfOrg;
  168. private int Number;
  169. private TimeFrame Last;
  170. private List<Paper> _publications = new List<Paper>();
  171.  
  172.  
  173.  
  174.  
  175. //конструктор
  176. public ResearchTeam(string theme, string nameoforg, int number, TimeFrame last)
  177. {
  178. Theme = theme;
  179. NameOfOrg = nameoforg;
  180. Number = number;
  181. Last = last;
  182. }
  183.  
  184. //Конструктор без параметров, инициализирующий поля класса значениями по умолчанию
  185. public ResearchTeam() : this("Mir", "Win", 27, TimeFrame.Long) { }
  186.  
  187.  
  188. //В классе ResearchTeam определить свойства c методами get и set
  189.  
  190. public string theme
  191. {
  192. get
  193. {
  194. return Theme;
  195. }
  196. set
  197. {
  198. Theme = value;
  199. }
  200. }
  201.  
  202.  
  203. public string nameofogr
  204. {
  205. get
  206. {
  207. return NameOfOrg;
  208. }
  209. set
  210. {
  211. NameOfOrg = value;
  212. }
  213. }
  214.  
  215.  
  216. public int number
  217. {
  218. get
  219. {
  220. return Number;
  221. }
  222. set
  223. {
  224. Number = value;
  225. }
  226. }
  227.  
  228. //Cвойство типа TimeFrame для доступа к полю с продолжительностью исследований
  229. public TimeFrame last
  230. {
  231. get
  232. {
  233. return Last;
  234. }
  235. set
  236. {
  237. Last = value;
  238. }
  239. }
  240.  
  241. //Cвойство типа Paper[] для доступа к полю со списком публикаций по те-ме исследований
  242. public IReadOnlyList<Paper> Publications // свойство типа Exam [] для доступа к полю со списком экзаменов
  243. {
  244. get
  245. {
  246. return _publications.AsReadOnly();
  247. }
  248. }
  249.  
  250.  
  251. //Cвойство типа Paper[] для доступа к полю со списком публикаций по те-ме исследований
  252. //Cвойство типа Paper ( только с методом get), которое возвращает ссылку на публикацию с самой поздней датой выхода; если список публикаций пустой, свойство возвращает значение null
  253. public Paper ListPublic
  254. {
  255. get
  256. {
  257. /*double averageGrade = _passedExams.Average(avgrade => avgrade.Grade);
  258. return averageGrade;*/
  259. return null;
  260. }
  261. }
  262.  
  263.  
  264. //Индексатор булевского типа (только с методом get) с одним параметром типа Education; значение индексатора равно true, если значение поля с формой обучения студента совпадает со значением индекса, и false в противном случае
  265. public bool this[TimeFrame rez1]
  266. {
  267. get
  268. {
  269. bool rez;
  270. if (rez1 == Last) rez = true;
  271. else rez = false;
  272. return rez;
  273. }
  274. }
  275.  
  276.  
  277. //Метод void AddPapers ( params Paper[] ) для добавления элементов в список публикаций
  278. public void AddPapers(Paper[] papers)
  279. {
  280. _publications.AddRange(papers);
  281. }
  282.  
  283.  
  284. //Gерегруженную версию виртуального метода string ToString() для фор-мирования строки со значениями всех полей класса, включая список пуб-ликаций
  285. public override string ToString()
  286. {
  287. return string.Format("\nTheme: {0}\nNameOfOrg: {1}\nNumberOfRed: {2}\nLast: {3}\nPublications: {4} ", Theme, NameOfOrg, Number, Last, _publications);
  288. }
  289.  
  290. //Виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка публикаций
  291. public string ToShortString() // виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка экзаменов, но со значением среднего балла.
  292. {
  293. return string.Format("\nTheme: {0}\nNameOfOrg: {1}\nNumberOfRed: {2}\nLast: {3}\n", Theme, NameOfOrg, Number, Last);
  294. }
  295.  
  296. }
  297.  
  298.  
  299.  
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement