Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс Person, который имеет • закрытое поле типа string, в котором хранится имя... В классе Person определить свойства c методами get и set: • свойство типа string для доступа к полю с... #1505195

Тема полностью: Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс Person, который имеет • закрытое поле типа string, в котором хранится имя... В классе Person определить свойства c методами get и set: • свойство типа string для доступа к полю с именем;... В классе Person определить • перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех полейкласса; Определить тип Education - перечисление(enum) со значениями Specialist, Вachelor, SecondEducation. Определить класс Exam, который имеет три открытых автореализуемых свойства, доступных для чтения и записи В классе Exam определить: • конструктор с параметрами типа string, int и DateTime для инициализации всех свойств класса; ...
Артикул: 1505195
  • Предмет: Методы автоматизации
  • Разместил(-а): 733 Дарья в 2015 году
  • Количество страниц: 3
  • Формат файла: zip
  • Последняя покупка: 13.09.2018
1 990p.
Оплатите артикул одним из 20 способов и сразу скачайте.
После оплаты он автоматически будет удален с сайта.
Никто кроме вас не сможет посмотреть его до 27.05.2024
Задание:
Задание 1.
Определить класс 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(), который возвращает строку, содержащую только имя и фамилию.
Определить тип 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.


Задание 2.
В классе Person из лабораторной работы 1 и в классах, дополнительно указанных в вариантах, надо
• переопределить (override) виртуальный метод bool Equals (object obj);
• определить операции == и != ;
• переопределить виртуальный метод int GetHashCode();
Реализация виртуального метода bool Equals (object obj) в классе System.Object определяет равенство объектов как равенство ссылокна объекты. Некоторые классы из базовой библиотеки BCL переопределяют метод Equals(). В классе System.String этот методпереопределен так, что равными считаются строки, которые совпадают посимвольно. Реализация метода Equals() в структурном типеDateTime равенство объектов DateTime определяет как равенство значений.
В лабораторной работе требуется переопределить метод Equals так, чтобы объекты считались равными, если равны все данныеобъектов. Для класса Person это означает, что равны даты рождения и посимвольно совпадают строки с именем и фамилией.
Определение операций == и != должно быть согласовано с переопределенным методом Equals, т.е. критерии, по которым проверяетсяравенство объектов в методе Equals, должны использоваться и при проверке равенства объектов в операциях == и !=.
Переопределение виртуального метода int GetHashCode() также должно быть согласовано с операциями == и !=. Виртуальный методGetHashCode() используется некоторыми классами базовой библиотеки, например, коллекциями-словарями. Классы базовойбиблиотеки, вызывающие метод GetHashCode() из пользовательского типа, предполагают, что равным объектам отвечают равныезначения хэш-кодов. Поэтому в случае, когда под равенством объектов понимается совпадение данных (а не ссылок), реализацияметода
GetHashCode() должна для объектов с совпадающими данными возвращать равные значения хэш-кодов.
В классах, указанных в вариантах лабораторной работы, требуется определить метод object DeepCopy() для создания полной копииобъекта. Определенные в некоторых классах базовой библиотеки методы Clone() и Copy() создают ограниченную (shallow) копиюобъекта – при копировании объекта копии создаются только для полей структурных типов, для полей ссылочных типов копируютсятолько ссылки. В результате в ограниченной копии объекта поля-ссылки указывают на те же объекты, что и в исходном объекте.
Метод DeepCopy() должен создать полные копии всех объектов, ссылки на которые содержат поля типа. После создания полная копияне зависит от исходного объекта - изменение любого поля или свойства исходного объекта не должно приводить к изменению копии.
При реализации метода DeepCopy() в классе, который имеет поле типа System.Collections.ArrayList, следует иметь в виду, чтоопределенные в классе ArrayList конструктор ArrayList(ICollection) и метод Clone() при создании копии коллекции, состоящей изэлементов ссылочных типов, копируют только ссылки. Метод DeepCopy() должен создать как копии элементов коллекции ArrayList,так и полные копии объектов, на которые ссылаются элементы коллекции. Для типов, содержащих коллекции, реализация методаDeepCopy() упрощается, если в типах элементов коллекций также определить метод
DeepCopy().
Требования к программе
Определить интерфейс

interface IDateAndCopy
{ object DeepCopy();
DateTime Date { get; set; }
}

Определить новые версии классов Exam, Person и Student из лабораторной работы 1. В классы Exam, Person и Student добавитьреализацию интерфейса IDateAndCopy. Новую версию класса Student определить как класс, производный от класса Person.
Все поля новой версии класса Person определить с доступом protected, сохранить все свойства, определенные в первой версиикласса.
В новой версии класса Person дополнительно
• переопределить метод virtial bool Equals (object obj) и определить операции == и != так, чтобы равенство объектов типаPerson трактовалось как совпадение всех данных объектов, а не ссылок на объекты Person;
• переопределить виртуальный метод int GetHashCode();
• определить виртуальный метод object DeepCopy();
• реализовать интерфейс IDateAndCopy.
Определить класс Test, который имеет два открытых автореализуемых свойства, доступных для чтения и записи:
• свойство типа string, в котором хранится название предмета;
• свойство типа bool для информации о том, сдан зачет или нет.
В классе Test определить:
• конструктор c параметрами типа string и bool для инициализации свойств класса;
• конструктор без параметров, инициализирующий все свойства класса некоторыми значениями по умолчанию;
• перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех свойствкласса.
Класс Student определить как производный от класса Person. Новая версия класса Student имеет следующиеполя:
• закрытое поле типа Education для информации о форме обучения;
• закрытое поле типа int для номера группы;
• закрытое поле типа System.Collections.ArrayList, в котором хранится список зачетов (объекты типа Test);
• закрытое поле типа System.Collections.ArrayList для списка экзаменов (объекты типа Exam).
Код следующих конструкторов, методов и свойств из старой версии класса Student необходимо изменить с учетом того, что частьполей класса перемещена в базовый класс Person, и в новой версии класса Student список экзаменов хранится в коллекцииSystem.Collections.ArrayList:
• конструктор c параметрами типа Person, Education, int для инициализации соответствующих полей класса;
• конструктор без параметров для инициализации по умолчанию;
• свойство типа Person; метод get свойства возвращает объект типа Person, данные которого совпадают с данными подобъектабазового класса, метод set присваивает значения полям из подобъекта базового класса;
• свойство типа double ( только с методом get), в котором вычисляется средний балл как среднее значение оценок в спискесданных экзаменов;
• свойство типа System.Collections.ArrayList с методами get и set для доступа к полю со списком экзаменов;
• метод void AddExams ( params Exam[] ) для добавления элементов в список экзаменов;
• перегруженная версия виртуального метода string ToString() для формирования строки со значениями всех полей класса,включая список зачетов и экзаменов;
• виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка зачетов иэкзаменов, но со значением среднего балла.
Дополнительно в новой версии класса Student
• определить перегруженную версию виртуального метода object DeepCopy();
• реализовать интерфейс IDateAndCopy;
• определить свойство типа int с методами get и set для доступа к полю с номером группы. В методе set бросить исключение,если присваиваемое значение меньше или равно 100 или больше 599. При создании объекта- исключения использовать одиниз определенных в библиотеке CLR классов- исключений, инициализировать объект-исключение с помощью конструктора спараметром типа string, в сообщении передать информацию о допустимых границах для значения свойства.
В новой версии класса Student определить
• итератор для последовательного перебора всех элементов (объектов типа object) из списков зачетов и экзаменов(объединение);
• итератор c параметром для перебора экзаменов (объектов типа Exam) с оценкой больше заданного значения.
В методе Main()
1. Создать два объекта типа Person с совпадающими данными и проверить, что ссылки на объекты не равны, а объекты равны,вывести значения хэш- кодов для объектов.
2. Создать объект типа Student, добавить элементы в список экзаменов и зачетов, вывести данные объекта Student.
3. Вывести значение свойства типа Person для объекта типа Student.
4. С помощью метода DeepCopy() создать полную копию объекта Student. Изменить данные в исходном объекте Student и вывестикопию и исходный объект, полная копия исходного объекта должна остаться без изменений.
5. В блоке try/catch присвоить свойству с номером группы некорректное значение, в обработчике исключения вывести сообщение,переданное через объект-исключение.
6. С помощью оператора foreach для итератора, определенного в классе Student, вывести список всех зачетов и экзаменов.
7. С помощью оператора foreach для итератора с параметром, определенного в классе Student, вывести список всех экзаменов соценкой выше 3.


Дополнительное задание:
В методе Main()
8. С помощью оператора foreach для объекта типа Student вывести список предметов, которые есть как в списке зачетов, так и всписке экзаменов.
9. С помощью оператора foreach для итератора, определенного в классе Student, вывести список всех сданных зачетов и сданных экзаменов.
10.С помощью оператора foreach для итератора, определенного в классе Student, вывести список сданных зачетов, длякоторых сдан и экзамен.
Нарисовать UML диаграмму получившегося приложения (диаграммы классов и т.д.).
Материалы, размещаемые в каталоге, с согласия автора, могут использоваться только в качестве дополнительного инструмента для решения имеющихся у вас задач, сбора информации и источников, содержащих стороннее мнение по вопросу, его оценку, но не являются готовым решением. Пользователь вправе по собственному усмотрению перерабатывать материалы, создавать производные произведения, соглашаться или не соглашаться с выводами, предложенными автором, с его позицией.
Тема: Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий:
Определить класс Person, который имеет
• закрытое поле типа string, в котором хранится имя...
В классе Person определить свойства c методами get и set:
• свойство типа string для доступа к полю с именем;...
В классе Person определить
• перегруженную(override) версию виртуального метода string ToString() для формирования строки со значениями всех полейкласса;
Определить тип Education - перечисление(enum) со значениями Specialist, Вachelor, SecondEducation.
Определить класс Exam, который имеет три открытых автореализуемых свойства, доступных для чтения и записи
В классе Exam определить:
• конструктор с параметрами типа string, int и DateTime для инициализации всех свойств класса;
...
Артикул: 1505195
Дата написания: 13.05.2015
Тип работы: Контрольная работа
Предмет: Методы автоматизации
Количество страниц: 3
К работе прилагаются файлы программ.
А ты умеешь выполнять такие работы?

Файлы артикула: Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс Person, который имеет • закрытое поле типа string, в котором хранится имя... В классе Person определить свойства c методами get и set: • свойство типа string для доступа к полю с... по предмету методы автоматизации

Lab1.zip
65.79 КБ
Lab2.zip
86.2 КБ

Пролистайте "Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс Person, который имеет • закрытое поле типа string, в котором хранится имя... В классе Person определить свойства c методами get и set: • свойство типа string для доступа к полю с..." и убедитесь в качестве

После покупки артикул автоматически будет удален с сайта до 27.05.2024
Контрольная — Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс — 1
Контрольная — Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс — 2
Контрольная — Выполнить лабораторную работу по программированию на С#. Работа включает несколько заданий: Определить класс — 3
Гарантируем возврат денег! Гарантируем возврат денег!
Качество каждой готовой работы, представленной в каталоге, проверено и соответствует описанию. В случае обоснованных претензий мы гарантируем возврат денег в течение 24 часов.