- •Общие требования
- •1 Примеры реализации заданий
- •1.1 Основные элементы класса
- •1.2 Перегрузка операторов
- •1.3 Использование делегатов
- •1.4 Универсальные типы библиотеки .Net Framework
- •2 Варианты заданий
- •2.1 Основные элементы класса
- •2.2 Перегрузка операторов
- •2.3 Использование делегатов
- •2.4 Универсальные типы библиотеки .Net Framework
2.3 Использование делегатов
Задание: Для условий задачи: а) описать требуемые делегаты
1)делегат для обратного вызова, позволяющий вывести строку, содержащую идентификатор объекта и подробное описание выполненного действия;
2)делегат, позволяющий выполнить набор действий с элементом списка. Делегат имеет два параметра: параметр заданного типа и делегат типа «1»;
б) реализовать класс с указанными обязательными полями (возможно включение в класс дополнительных полей). Помимо указанных в задании полей, класс должен включать поля, хранящие:
1)идентификатор, int, уникальный;
2)ссылку на компонент, в котором отображается элемент;
в) реализовать перегрузку метода ToString() для обеспечения заданного отображения объекта. Примечание: при отображении информации о классе вместо данных в угловых скобках подставляются значения полей;
г) реализовать в классе указанные обязательные методы. Каждый метод должен соответствовать сигнатуре делегата типа«2» и вызывать делегат типа «1» для возврата требуемой строки;
д) реализовать в «основной программе» добавление и удаление объектов класса. Для отображения объектов использовать компонент класса CheckedListBox (возможно использование данного компонента для хранения объектов);
е) реализовать добавление к помеченным объектам операций. Список операции включает добавление выполнения или отмену выполнения каждого из обязательных методов класса, а также удаление всех операций. Операция добавления метода может быть назначена объекту несколько раз;
ж) реализовать активизацию выполнения всех операций, назначенных объектам.
Варианты заданий приведены в таблице 8.
Таблица 8 – Варианты заданий по использованию делегатов
№ |
Описание параметров задания |
1.тип первого параметра делегата «2»: целое число;
обязательные поля класса:
1.поле №1, int;
2.поле №2, int;
58
|
|
отображение: «<идентификатор> : <поле №1> – <поле №2>»; |
||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, производящий целочисленное деление каждого поля на |
|
|
|
|
переданное значение (если переданное значение равно 0, то де- |
|
|
|
|
ление не производится); |
|
|
|
2. |
метод, производящий вычитание переданного значения из |
|
|
|
|
наибольшего из полей. |
|
2. |
|
тип первого параметра делегата «2»: строка; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «а»; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : <поле №1> (<поле №2>)»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, производящий удаление из поля №1 всех букв, входящих |
|
|
|
|
в переданное значение (если поле №1 после удаления становит- |
|
|
|
|
ся пустым, то оно принимает значение по умолчанию); |
|
|
|
2. |
метод, добавляющий к полю №2 число, равное количеству букв |
|
|
|
|
в переданном значении. |
|
3. |
|
тип первого параметра делегата «2»: строка: |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «б»; |
|
|
2. |
поле №2, |
string, не пустая, по умолчанию «в»; |
|
|
отображение: «<идентификатор> : <поле №1> – <поле №2>»; |
||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, производящий добавление к каждому из полей тех букв |
|
|
|
|
из переданного значения, которые не входят в соответствующее |
|
|
|
|
поле; |
|
|
|
2. |
метод, удаляющий из полей все вхождения переданного значе- |
|
|
|
|
ния (если после удаления поле становится пустым, то оно при- |
|
|
|
|
нимает значение по умолчанию). |
|
4. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int, двухзначное, по умолчанию 10; |
|
|
2. |
поле №2, |
int, трехзначное, по умолчанию 100; |
|
|
отображение: «<идентификатор> : <поле №1> – <поле №2>»; |
||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, добавляющий к полю №1 переданное значение (если ре- |
|
|
|
|
зультат меньше 10 или больше 100, то поле принимает значение |
|
|
|
|
по умолчанию); |
|
|
|
2. |
метод, добавляющий к полю №2 все цифры, входящие в пере- |
|
|
|
|
данное значение (если результат становится больше 999, то поле |
59
принимает значение по умолчанию).
5.тип первого параметра делегата «2»: целое число;
обязательные поля класса:
1.поле №1, int;
2.поле №2, string, не пустая, по умолчанию «г»;
отображение: «<идентификатор> : [<поле №1>]<поле №2>»;
обязательные методы класса:
1.метод, добавляющий к полю №1 значение младшего разряда переданного числа;
2.метод, удаляющий с начала поля №2 первые буквы в количестве, равном значению переданного числа (если количество удаляемых букв больше или равно количеству букв поля №2, то поле принимает значение по умолчанию).
6.тип первого параметра делегата «2»: целое число;
обязательные поля класса:
1.поле №1, int, двухзначное, по умолчанию 50;
2.поле №2, double, отображать с двумя знаками дробной части;
отображение: «<идентификатор> : <поле №1> – <поле №2>»;
обязательные методы класса:
1.метод, вычитающий из каждого из полей переданное число (если поле №1 становится меньше 10 или больше 99, то оно принимает значение по умолчанию);
2.метод, вычитающий из поля №2 число N, рассчитываемое по
формуле |
N M |
M |
|
, где M – переданное значение, а деле- |
|
100 |
|||
|
|
|
|
ние целочисленное.
7.тип первого параметра делегата «2»: целое число;
обязательные поля класса:
1.поле №1, int;
2.поле №2, int;
отображение: «<идентификатор> : [<поле №1>][<поле №2>]»;
обязательные методы класса:
1.метод, вычитающий из поля с наибольшим значением переданное число;
2.метод, добавляющий переданное значение к полю, имеющему наибольшее значение младшего разряда.
8.тип первого параметра делегата «2»: строка;
обязательные поля класса:
1.поле №1, string, не пустая, по умолчанию «д»;
2.поле №2, string, не пустая, по умолчанию «е»;
отображение: «<идентификатор> : (<поле №1>)(<поле №2>)»;
60
|
|
обязательные методы класса: |
||
|
|
1. |
метод, добавляющий переданную строку к полю наименьшей |
|
|
|
|
длины; |
|
|
|
2. |
метод, заменяющий поле с наибольшей длиной на переданную |
|
|
|
|
строку. |
|
9. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «ж»; |
|
|
2. |
поле №2, |
string, не пустая, по умолчанию «з»; |
|
отображение: «<идентификатор> : [<поле №1>]{<поле №2>}»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, удаляющий с начала каждого поля первые буквы в коли- |
|
|
|
|
честве, равном переданному значению (если какое-либо поле |
|
|
|
|
после удаления становится пустым, то оно принимает значение |
|
|
|
|
по умолчанию); |
|
|
|
2. |
метод, добавляющий строковое представление переданного |
|
|
|
|
числа к полю с наименьшей длиной. |
|
10. |
|
тип первого параметра делегата «2»: строка; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : [<поле №1>]{<поле №2>}»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, добавляющий к полю №1 числовое представление пере- |
|
|
|
|
данной строки (если преобразование в число возможно), или |
|
|
|
|
значение количества букв в переданной строке (если преобразо- |
|
|
|
|
вание в число не возможно); |
|
|
|
2. |
метод, вычитающий из поля с наибольшим значением число, |
|
|
|
|
равное количеству букв в переданной строке. |
|
11. |
|
тип первого параметра делегата «2»: строка; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
string, не пустая, по умолчанию «и»; |
|
отображение: «<идентификатор> : ~<поле №1>~<поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, добавляющий к полю №2 первые буквы переданной |
|
|
|
|
строки в количестве, равном значению поля №1 (если значение |
|
|
|
|
поля №1 больше количества букв переданной строки, то добав- |
|
|
|
|
ляется вся строка); |
|
|
|
2. |
метод, записывающий в поле №1 количество букв переданной |
|
|
|
|
строки, если оно меньше текущего значения поля. |
61
12. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
double, отображать с двумя знаками дробной части; |
|
|
2. |
поле №2, |
double, отображать с двумя знаками дробной части; |
|
отображение: «<идентификатор> : <поле №1> - <поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, добавляющий переданное число, деленное на 100, к по- |
|
|
|
|
лю, имеющему меньшее значение целой части; |
|
|
|
2. |
метод, заменяющий на переданное число целую часть первого |
|
|
|
|
поля. |
|
13. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : [<поле №1>][<поле №2>]»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, заменяющей поле №2 суммой поля №1 и переданного |
|
|
|
|
числа; |
|
|
|
2. |
метод, делящий наименьшее из полей на переданное число. |
|
14. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : <поле №1> x <поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, заменяющей поле №1 старшим разрядом числа N, а поле |
|
|
|
|
№2 – младшим. Число N – остаток от деления переданного чис- |
|
|
|
|
ла на 100, взятый по абсолютной величине. Если N меньше 10, |
|
|
|
|
то считать, что старший разряд равен нулю; |
|
|
|
2. |
метод, добавляющий переданное число к наименьшему из по- |
|
|
|
|
лей. |
|
15. |
|
тип первого параметра делегата «2»: строка; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «к»; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : <поле №1>_<поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, удаляющий из поля №1 все буквы, имеющиеся в пере- |
|
|
|
|
данной строке (если после удаления поле становится пустым, то |
|
|
|
|
оно принимает значение по умолчанию); |
|
|
|
2. |
метод, вычитающий из поля №2 значение количества букв поля |
62
|
|
|
№1. |
|
16. |
|
тип первого параметра делегата «2»: символ; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «л»; |
|
|
2. |
поле №2, |
char, не пустой, по умолчанию «м»; |
|
отображение: «<идентификатор> : <поле №1> <поле №2>.»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, заменяющий в поле №1 все вхождения поля №2 на пере- |
|
|
|
|
данный символ; |
|
|
|
2. |
метод, добавляющий поле №2 к полю №1 и заменяющий поле |
|
|
|
|
№2 на переданный символ. |
|
17. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : <поле №1> ! <поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, заменяющий в поле №1 на переданное число, если пере- |
|
|
|
|
данное число и поле №1 оба четные или оба нечетные; |
|
|
|
2. |
метод, добавляющий к полю №2 переданное число. |
|
18. |
|
тип первого параметра делегата «2»: вещественное число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
double, отображать с двумя знаками дробной части; |
|
|
2. |
поле №2, |
double, отображать с двумя знаками дробной части; |
|
отображение: «<идентификатор> : <поле №1> х <поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, добавляющий к полю №1 целую часть переданного чис- |
|
|
|
|
ла, а к полю №2 – дробную; |
|
|
|
2. |
метод, заменяющий на переданное число то из полей, разница |
|
|
|
|
которого с переданным числом наименьшая. |
|
19. |
|
тип первого параметра делегата «2»: строка; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «н»; |
|
|
2. |
поле №2, |
int; |
|
отображение: «<идентификатор> : [<поле №1>]_<поле №2>_»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, вычитающий из поля №2 число, равное количеству букв |
|
|
|
|
в переданной строке; |
|
|
|
2. |
метод, добавляющий к полю №1 число, равное позиции послед- |
|
|
|
|
него вхождения переданной строки в поле №1. |
|
20. |
|
тип первого параметра делегата «2»: вещественное число; |
63
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
double, отображать с двумя знаками дробной части; |
|
отображение: «<идентификатор> : {<поле №1>}{<поле №2>}»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, вычитающий целую часть переданного числа из поля №1 |
|
|
|
|
и дробную – из поля №2; |
|
|
|
2. |
метод, заменяющий поле №2 на целую часть переданного числа, |
|
|
|
|
если поле №1 четное и на дробную часть – если поле №1 нечет- |
|
|
|
|
ное. |
|
21. |
|
тип первого параметра делегата «2»: вещественное число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
double, отображать с двумя знаками дробной части; |
|
|
2. |
поле №2, |
double, отображать с двумя знаками дробной части; |
|
отображение: «<идентификатор> : <поле №1> / <поле №2>»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, упорядочивающий три числа по возрастанию: поле №1, |
|
|
|
|
поле №2 и переданное число и записывающий в поле №1 мень- |
|
|
|
|
шее из них, а в поле №2 – среднее; |
|
|
|
2. |
метод, вычитающий из поля №1 дробную часть переданного |
|
|
|
|
числа, а из поля №2 – целую. |
|
22. |
|
тип первого параметра делегата «2»: целое число; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
int; |
|
|
2. |
поле №2, |
string, не пустая, по умолчанию «о»; |
|
отображение: «<идентификатор> : <поле №1> (<поле №2>)»; |
|||
|
|
обязательные методы класса: |
||
|
|
1. |
метод, копирующий N первых букв поля №2 (или все поле, если |
|
|
|
|
N больше числа букв поля №2) в конец этого же поля. N – зна- |
|
|
|
|
чение переданного числа; |
|
|
|
2. |
метод, вычитающий из поля №1 остаток от деления переданного |
|
|
|
|
числа на 5. |
|
23. |
|
тип первого параметра делегата «2»: строка; |
||
|
|
обязательные поля класса: |
||
|
|
1. |
поле №1, |
string, не пустая, по умолчанию «п»; |
|
|
2. |
поле №2, |
string, не пустая, по умолчанию «р»; |
|
|
отображение: «<идентификатор> : (<поле №1>) – (<поле |
||
|
|
№2>)»; |
|
|
|
|
обязательные методы класса: |
||
|
|
1. |
метод, заменяющий на переданную строку поле с наименьшей |
|
|
|
|
длиной (если поле становится пустым, то оно принимает значе- |
64