Cравнить время, необходимое для выполнения операций с элементами массивов - C#

Узнай цену своей работы

Формулировка задачи:

Можете помочь с работой Вот задание

Определить класс Person, который имеет

закрытое поле типа string, в котором хранится имя;  закрытое поле типа string, в котором хранится фамилия;  закрытое поле типа System.DateTime для даты рождения.

В классе Person определить конструкторы:

 конструктор c тремя параметрами типа string, string, DateTime для инициализации всех полей класса; конструктор без параметров, инициализирующий все поля класса некоторыми значениями по умолчанию.

В классе Person определить свойства c методами get и set

:  свойство типа string для доступа к полю с именем;  свойство типа string для доступа к полю с фамилией;  свойство типа DateTime для доступа к полю с датой рождения;  свойство типа int c методами get и set для получения информации(get) и изменения (set) года рождения в закрытом поле типа DateTime, в котором хранится дата рождения.

В классе Person определить

 перегруженную (override) версию виртуального метода string ToString() для формирования строки со значениями всех полей класса;  виртуальный метод string ToShortString(), который возвращает строку, содержащую только имя и фамилию.

Вариант 1. Требования к программе

Определить тип Education - перечисление(enum) со значениями Specialist, Вachelor, SecondEducation. Определить класс Exam, который имеет три открытых автореализуемых свойства, доступных для чтения и записи: свойство типа string, в котором хранится название предмета;  свойство типа int, в котором хранится оценка;  свойство типа System.DateTime для даты экзамена.

В классе Exam определить

:  конструктор с параметрами типа string, int и DateTime для инициализации всех свойств класса;  конструктор без параметров, инициализирующий все свойства класса некоторыми значениями по умолчанию;  перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех свойств класса.

Определить класс Student

, который имеет  закрытое поле типа Person, в котором хранятся данные студента;  закрытое поле типа Education для информации о форме обучения;  закрытое поле типа int для номера группы;  закрытое поле типа Exam *+ для информации об экзаменах, которые сдал студент.

В классе Student определить конструкторы:

 конструктор c параметрами типа Person, Education, int для инициализации соответствующих полей класса;  конструктор без параметров, инициализирующий поля класса значениями по умолчанию.

В классе Student определить свойства c методами get и set:

 свойство типа Person для доступа к полю с данными студента;  свойство типа Education для доступа к полю с формой обучения;  свойство типа int для доступа к полю с номером группы;  свойство типа Exam [] для доступа к полю со списком экзаменов.

В классе Student определить

 свойство типа double ( только с методом get), в котором вычисляется средний балл как среднее значение оценок в списке сданных экзаменов;  индексатор булевского типа (только с методом get) с одним параметром типа Education; значение индексатора равно true, если значение поля с формой обучения студента совпадает со значением индекса, и false в противном случае;  метод void AddExams ( params Exam [] ) для добавления элементов в список экзаменов;  перегруженную версию виртуального метода string ToString() для формирования строки со значениями всех полей класса, включая список экзаменов;  виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка экзаменов, но со значением среднего балла.

В методе Main() 1

. Создать один объект типа Student, преобразовать данные в текстовый вид с помощью метода ToShortString() и вывести данные. 2. Вывести значения индексатора для значений индекса Education.Specialist, Education.Bachelor и Education.SecondEducation. 3. Присвоить значения всем определенным в типе Student свойствам, преобразовать данные в текстовый вид с помощью метода ToString() и вывести данные. 4. C помощью метода AddExams( params Exam [] ) добавить элементы в список экзаменов и вывести данные объекта Student, используя метод ToString(). 5. Сравнить время выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов типа Exam.
Cравнить время, необходимое для выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов. Для этого в методе Main() создать  одномерный массив;  двумерный прямоугольный массив;  двумерный ступенчатый массив. Тип элементов массивов зависит от варианта лабораторной работы. Массивы должны иметь одинаковое число элементов. Если число строк в двумерном прямоугольном массиве равно nrow, а число столбцов ncolumn, то одномерный массив должен содержать nrow*ncolumn элементов, в двумерном ступенчатом массиве общее число элементов также должно быть равно nrow*ncolumn. 2 Значения nrow и ncolumn вводятся в процессе работы приложения в виде одной строки с разделителями. В приглашении, которое получает пользователь, должна быть информация о том, какие символы можно использовать как разделители, число разделителей должно быть больше 1. С помощью метода Split класса System.String приложение разбирает введенную пользователем текстовую строку с информацией о числе строк и числе столбцов двумерного массива и присваивает значения переменным, которые содержат значения nrow и ncolumn. В первой лабораторной работе не требуется обрабатывать ошибки ввода, предполагается, что пользователь правильно ввел данные. Приложение распределяет память для всех массивов и инициализирует элементы массивов. Для инициализации элементов можно использовать конструктор без параметров. Для всех элементов массивов выполняется одна и та же операция, например, присваивается значение одному из свойств, определенных для элементов массива. В лабораторной работе требуется сравнить время выполнения этой операции для одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов. Для измерения времени выполнения операций можно использовать свойство Environment.TickCount. Cтатическое свойство TickCount класса Environment имеет тип int, использует информацию системного таймера и содержит время в миллисекундах, которое прошло с момента перезагрузки компьютера. Чтобы получить время выполнения некоторого блока кода, необходимо вызвать Environment.TickCount непосредственно перед блоком и сразу же после последнего оператора блока и взять разность значений. В блоке кода, для которого измеряется время, не должно быть операций распределения памяти для массивов, инициализации элементов массивов и операций вывода данных на консоль. Блоки кода должны содержать только операции с элементами массива. Вычисленные значения времени выполнения операций для трех типов массивов, а также число строк nrow и столбцов ncolumn выводятся на консоль. Вывод должен быть подписан, т.е. вывод должен содержать информацию о том, какому типу массива отвечает выведенное значение.
Вот мой код
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace laba1
  7. {
  8. class Person
  9. {
  10. private string name;
  11. private string secondname;
  12. private System.DateTime DateOfBirth;
  13. public Person(string name, string secondname, System.DateTime birthday)
  14. {
  15. this.name = name;
  16. this.secondname = secondname;
  17. this.DateOfBirth = birthday;
  18. }
  19. public Person()
  20. {
  21. this.name = "Данил";
  22. this.secondname = "Дегтярев";
  23. this.DateOfBirth = new DateTime(1996, 11, 10);
  24. }
  25. public string NamePro
  26. {
  27. get { return name; }
  28. set { name = value; }
  29. }
  30. public string SecondNamePro
  31. {
  32. get { return secondname; }
  33. set { secondname = value; }
  34. }
  35. public DateTime DateOfBirthPro
  36. {
  37. get { return DateOfBirth; }
  38. set { DateOfBirth = value; }
  39. }
  40. public int YearOfDateTimePro
  41. {
  42. get { return DateOfBirth.Year; }
  43. set { DateOfBirth = new DateTime(value, DateOfBirth.Month, DateOfBirth.Day); }
  44. }
  45. public override string ToString()
  46. {
  47. return base.ToString() + DateOfBirth.ToString() + secondname.ToString() + name.ToString();
  48. }
  49. public string ToShortString()
  50. {
  51. return name.ToString() + secondname.ToString();
  52. }
  53. static void Main()
  54. {
  55. }
  56. }
  57. enum Education { Specialist,Bachelor, SecondEducation}
  58. class Exam
  59. {
  60. public string objecti{get;set;}
  61. public int mark{get;set;}
  62. public System.DateTime DateOfExams{get;set;}
  63. public Exam(string objecti, int mark, System.DateTime DateOfExams)
  64. {
  65. this.objecti = objecti;
  66. this.mark = mark;
  67. this.DateOfExams = DateOfExams;
  68. }
  69. public Exam()
  70. {
  71. this.objecti = "english";
  72. this.mark = 5;
  73. this.DateOfExams= new DateTime(2016, 01, 15);
  74. }
  75. public override string ToString()
  76. {
  77. return base.ToString() + objecti.ToString() + mark.ToString() + DateOfExams.ToString();
  78. }
  79. }
  80. class Student
  81. {
  82. private Person datastudent;
  83. private Education FormOfEducation;
  84. private int groupnumber;
  85. private readonly List<Exam> informationExams=new List<Exam>();
  86. public Student()
  87. {
  88. this.datastudent = new Person();
  89. this.FormOfEducation = Education.Bachelor;
  90. this.groupnumber = 204;
  91. }
  92. public override string ToString()
  93. {
  94. return base.ToString() + datastudent.ToString() + FormOfEducation.ToString() + groupnumber.ToString();
  95. }
  96. public Person Datastudent
  97. {
  98. get { return datastudent; }
  99. set { datastudent = value; }
  100. }
  101. public Education formOfEducation
  102. {
  103. get { return FormOfEducation; }
  104. set { FormOfEducation = value; }
  105. }
  106. public int groupnumberProp
  107. {
  108. get { return groupnumber; }
  109. set { groupnumber = value; }
  110. }
  111. public List<Exam> informationExamsPro
  112. {
  113. get { return informationExams; }
  114. }
  115. /*public double Srmark
  116. {
  117. get { return groupnumber; }
  118. }
  119. */
  120. public bool this [Education index]
  121. {
  122. get
  123. {
  124. if (this.formOfEducation == index)
  125. return true;
  126. return false;
  127. }
  128. }
  129. public void AddExams(params Exam[] InfExamsStud)
  130. {
  131. informationExams.AddRange(InfExamsStud);
  132. }
  133. public override string ToString()
  134. {
  135. return base.ToString() + datastudent.ToString() + FormOfEducation.ToString() + groupnumber.ToString() + informationExamsPro.ToString();
  136. }
  137. // //public string ToShortString()
  138. // {
  139. // return name.ToString() + secondname.ToString();
  140. // }
  141. ////
  142. }
  143. }
Я не выполнил задания:
Cравнить время, необходимое для выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов свойство типа double ( только с методом get), в котором вычисляется средний балл как среднее значение оценок в списке сданных экзаменов; метод void AddExams ( params Exam [] ) для добавления элементов в список экзаменов; виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка экзаменов, но со значением среднего балла.

В методе Main()

1. Создать один объект типа Student, преобразовать данные в текстовый вид с помощью метода ToShortString() и вывести данные. 2. Вывести значения индексатора для значений индекса Education.Specialist, Education.Bachelor и Education.SecondEducation. 3. Присвоить значения всем определенным в типе Student свойствам, преобразовать данные в текстовый вид с помощью метода ToString() и вывести данные. 4. C помощью метода AddExams( params Exam [] ) добавить элементы в список экзаменов и вывести данные объекта Student, используя метод ToString(). 5. Сравнить время выполнения операций с элементами одномерного, двумерного прямоугольного и двумерного ступенчатого массивов с одинаковым числом элементов типа Exam.
И посмотрите пожалуйста код, вдруг где то неправильно сделал, спасибо всем большое

Решение задачи: «Cравнить время, необходимое для выполнения операций с элементами массивов»

textual
Листинг программы
  1. using System.Diagnostics;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы