Найди эксперта для помощи в учебе
Найти эксперта
+2
Пример заказа на Автор24
Студенческая работа на тему:
Наследование. Исключения. Интерфейсы. Итераторы и блоки итераторов
Создан заказ №3019835
15 мая 2018

Наследование. Исключения. Интерфейсы. Итераторы и блоки итераторов

Как заказчик описал требования к работе:
Разработать программу в соответствии с заданием. ВАРИАНТЫ 1-3 Классы, свойства, индексаторы. Одномерные, прямоугольные и ступенчатые массивы Общие требования к программе для вариантов 1-3 Определить класс 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(), который возвращает строку, содержащую только имя и фамилию. ВАРИАНТЫ 4-6 Наследование. Исключения. Интерфейсы. Итераторы и блоки итераторов Общие требования к программе для вариантов 4-6 В классе Person из вариантов заданий 1-3 и в классах, дополнительно указанных ниже, надо переопределить (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(). Вариант 5. Вариант 5. Требования к программе Определить интерфейс interface IRateAndCopy { double Rating { get;} object DeepCopy(); } Определить новые версии классов Person, Article и Magazine из лабораторной работы 1. Класс Magazine определить как производный от класса Edition. В классы Article и Magazine добавить реализацию интерфейса IRateAndCopy. В новой версии класса Person дополнительно  переопределить метод virtial bool Equals (object obj) и определить операции == и != так, чтобы равенство объектов типа Person трактовалось как совпадение всех данных объектов, а не ссылок на объекты Person;  переопределить виртуальный метод int GetHashCode();  определить виртуальный метод object DeepCopy(). В новой версии класса Article дополнительно  определить виртуальный метод object DeepCopy();  реализовать интерфейс IRateAndCopy. Определить класс Edition. Класс Edition имеет  защищенное(protected) поле типа string c названием издания;  защищенное поле типа DateTime c датой выхода издания;  защищенное поле типа int с тиражом издания; В классе Edition определить:  конструктор с параметрами типа string, DateTime, int для инициализации соответствующих полей класса;  конструктор без параметров для инициализации по умолчанию;  свойства c методами get и set для доступа к полям типа;  виртуальный метод object DeepCopy();  свойство типа int с методами get и set для доступа к полю с тиражом издания; в методе set свойства бросить исключение, если присваиваемое значение отрицательно. При создании объекта-исключения использовать один из определенных в библиотеке CLR классов-исключений, инициализировать объект-исключение с помощью конструктора с параметром типа string, в сообщении передать информацию о допустимых значениях свойства. В классе Edition переопределить (override):  виртуальный метод virtial bool Equals (object obj) и определить операции == и != так, чтобы равенство объектов типа Edition трактовалось как совпадение всех данных объектов, а не ссылок на объекты Edition;  виртуальный метод int GetHashCode();  перегруженную версию виртуального метода string ToString() для формирования строки со значениями всех полей класса. Новая версия класса Magazine имеет базовый класс Edition и следующие поля:  закрытое поле типа Frequency с информацией о периодичности выхода журнала;  закрытое поле типа System.Collections.ArrayList со списком редакторов журнала (объектов типа Person).  закрытое поле типа System.Collections.ArrayList, в котором хранится список статей в журнале (объектов типа Article). Код следующих конструкторов, методов и свойств из старой версии класса Magazine необходимо изменить с учетом того, что часть полей класса перемещена в базовый класс Edition, и в новой версии класса Magazine для списка статей используется тип System.Collections.ArrayList:  конструктор с параметрами типа string, Frequency, DateTime, int для инициализации соответствующих полей класса;  конструктор без параметров для инициализации по умолчанию;  свойство типа double (только с методом get), в котором вычисляется среднее значение рейтинга статей в журнале;  свойство типа System.Collections.ArrayList для доступа к полю со списком статей в журнале;  метод void AddArticles (params Article[]) для добавления элементов в список статей в журнале;  перегруженная версия виртуального метода string ToString() для формирования строки со значениями всех полей класса, включая список статей и список редакторов;  виртуальный метод string ToShortString(), который формирует строку со значениями всех полей класса без списка статей и списка редакторов, но со значением среднего рейтинга статей в журнале. Дополнительно в новой версии класса Magazine реализовать  свойство типа System.Collections.ArrayList для доступа к списку редакторов журнала;  метод void AddEditors (params Person[]) для добавления элементов в список редакторов;  перегруженную (override) версию виртуального метода object DeepCopy();  интерфейс IRateAndCopy;  свойство типа Edition; метод get свойства возвращает объект типа Edition, данные которого совпадают с данными подобъекта базового класса, метод set присваивает значения полям из подобъекта базового класса. В новой версии класса Magazine определить  итератор с параметром типа double для перебора статей с рейтингом больше некоторого заданного значения;  итератор с параметром типа string для перебора статей, в названии которых есть заданная строка. В методе Main() 1. Создать два объекта типа Edition с совпадающими данными и проверить, что ссылки на объекты не равны, а объекты равны, вывести значения хэш-кодов для объектов. 2. В блоке try/catch присвоить свойству с тиражом издания некорректное значение, в обработчике исключения вывести сообщение, переданное через объект-исключение. 3. Создать объект типа Magazine, добавить элементы в списки статей и редакторов журнала и вывести данные объекта Magazine. 4. Вывести значение свойства типа Edition для объекта типа Magazine. 5. С помощью метода DeepCopy() создать полную копию объекта Magazine. Изменить данные в исходном объекте Magazine и вывести копию и исходный объект, полная копия исходного объекта должна остаться без изменений. 6. С помощью оператора foreach для итератора с параметром типа double вывести список всех статей с рейтингом больше некоторого заданного значения. 7. С помощью оператора foreach для итератора с параметром типа string вывести список статей, в названии которых есть заданная строка.
подробнее
Заказчик
заплатил
200 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
20 дней
Заказчик принял работу без использования гарантии
16 мая 2018
Заказ завершен, заказчик получил финальный файл с работой
5
Заказ выполнил
IG1968
5
скачать
Наследование. Исключения. Интерфейсы. Итераторы и блоки итераторов.jpg
2018-12-14 23:04
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
С достаточно трудными заданиями (для 3го курса университета) автор успешно справился, В СРОК. Вообще за час решает, уже всё время у него только и заказываю))) Рекомендую!

Хочешь такую же работу?

Оставляя свои контактные данные и нажимая «Создать задание», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.
Хочешь написать работу самостоятельно?
Используй нейросеть
Мы создали собственный искусственный интеллект,
чтобы помочь тебе с учебой за пару минут 👇
Использовать нейросеть
Тебя также могут заинтересовать
Формирование значений случайных величин с заданным законом распределения
Лабораторная работа
Программирование
Стоимость:
300 ₽
Интеграция IoT в многоуровневую структуру корпоративной сети
Курсовая работа
Программирование
Стоимость:
700 ₽
разработка web приложения
Курсовая работа
Программирование
Стоимость:
700 ₽
ОПРЕДЕЛЕНИЕ ИЗБЫТОЧНОСТИ СООБЩЕНИЙ. ОПТИМАЛЬНОЕ НЕРАВНОМЕРНОЕ КОДИРОВАНИЕ
Лабораторная работа
Программирование
Стоимость:
300 ₽
Мобильное приложение: электронная книга.
Курсовая работа
Программирование
Стоимость:
700 ₽
Введение в оптимизацию_1
Контрольная работа
Программирование
Стоимость:
300 ₽
Контрольная работа по численным методам и программированию
Контрольная работа
Программирование
Стоимость:
300 ₽
с++ подключить библиотеку libcurl к готовому коду в visual studio
Лабораторная работа
Программирование
Стоимость:
300 ₽
бота с Функция: показать время заката солнца в нн
Лабораторная работа
Программирование
Стоимость:
300 ₽
Сделать лабораторные работы по ооп на языке c#
Лабораторная работа
Программирование
Стоимость:
300 ₽
Компьютерная графика. Визуализация геометрических тел. Построение кривых
Лабораторная работа
Программирование
Стоимость:
300 ₽
Выполнить 4 лабораторных работы
Лабораторная работа
Программирование
Стоимость:
300 ₽
Лабораторные работы “Основы программирования” в среде Microsoft Visual Studio 2005
Лабораторная работа
Программирование
Стоимость:
300 ₽
Алгоритм Брезенхема для параболы
Лабораторная работа
Программирование
Стоимость:
300 ₽
Компьютерное моделирование. Математический аппарат баз знаний и СППР.
Лабораторная работа
Программирование
Стоимость:
300 ₽
Читай полезные статьи в нашем
Объектно-ориентированное программирование
Основной целью ООП является повышение эффективности разработки программ.
Появление ООП было связано с наблюдениями, что компьютерные программы являются описанием действий, которые выполняются над различными объектами, в качестве которых выступают, например, совокупности числовых значений, графические объекты, записи в базах данных. В традиционных методах программирования, чтобы изменить данные или ...
подробнее
Программирование на языке Visual Basic
Язык VB – современный язык программирования, который сочетает процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. В среду разработки VB входят инструменты для визуального конструирования интерфейса пользователя. Программист может создать приложение с помощью компонентов, предоставленных в VB. Приложения, созданные на VB, могут также использовать Win...
подробнее
Списки в HTML
Информация, представленная списками в языке HTML, строится с помощью специального набора тегов. Списки являются одной из самых популярных форм представления данных, как в электронном виде, так и в печатном. Со списками человек встречается практически ежедневно и повсеместно (список покупок в магазине, учащихся в кабинете и т.д.).
В языке HTML используются основные типы списков:
При организации раз...
подробнее
Работа с логическими выражениями. Использование скриптов на HTML-страницах
При использовании в кодах программ логических условий применяются операции сравнения различных типов данных:
= равно
не равно

> больше
> = больше или равно.
Также применяются логические функции и операторы:

Результат выполнения логической операции может принимать одно из двух возможных значений: True (истина) или False (ложь).
Переменным можно присваивать только английские значения...
подробнее
Объектно-ориентированное программирование
Основной целью ООП является повышение эффективности разработки программ.
Появление ООП было связано с наблюдениями, что компьютерные программы являются описанием действий, которые выполняются над различными объектами, в качестве которых выступают, например, совокупности числовых значений, графические объекты, записи в базах данных. В традиционных методах программирования, чтобы изменить данные или ...
подробнее
Программирование на языке Visual Basic
Язык VB – современный язык программирования, который сочетает процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. В среду разработки VB входят инструменты для визуального конструирования интерфейса пользователя. Программист может создать приложение с помощью компонентов, предоставленных в VB. Приложения, созданные на VB, могут также использовать Win...
подробнее
Списки в HTML
Информация, представленная списками в языке HTML, строится с помощью специального набора тегов. Списки являются одной из самых популярных форм представления данных, как в электронном виде, так и в печатном. Со списками человек встречается практически ежедневно и повсеместно (список покупок в магазине, учащихся в кабинете и т.д.).
В языке HTML используются основные типы списков:
При организации раз...
подробнее
Работа с логическими выражениями. Использование скриптов на HTML-страницах
При использовании в кодах программ логических условий применяются операции сравнения различных типов данных:
= равно
не равно

> больше
> = больше или равно.
Также применяются логические функции и операторы:

Результат выполнения логической операции может принимать одно из двух возможных значений: True (истина) или False (ложь).
Переменным можно присваивать только английские значения...
подробнее
Теперь вам доступен полный отрывок из работы
Также на e-mail вы получите информацию о подробном расчете стоимости аналогичной работы