ПРАКТИЧЕСКАЯ РАБОТА №12 (2 часа)

Тема: «Использование стандартных интерфейсов»


Цель: Формирование умений использования интерфейсов при реализации иерархии классов как важного элемента объектно-ориентированного программирования и приобретение навыков реализации интерфейсов.
Задачи:


Формируемые компетенции: ПК 1.1., ОК 1-10.
Материально-техническое обеспечение: доска, учебники, сборник практических работ, комплект нормативных документов; классификация объектов технического регулирования, Общероссийский классификатор стандартов (ОКС), приложение 2-3.
Обеспечивающие средства: компьютеры, совместимые с IBM PC.

Ход работы:
1.     Проверка готовности к ПР: тестирование
2.     Выполнение заданий
3.     Заполнение отчета
Задание:
1. Создание и реализация интерфейса.
Создайте интерфейс IPubs с требуемой функциональностью
· Откройте проект MyClass.sln в папке install folder\Labs\Lab08\.
· Добавьте в проект новый интерфейс с именем IPubs: Projects (Проект) à Add class (Добавить класс). В окне Добавление нового элемента выберите Интерфейс и укажите его имя IPubs.
· В интерфейсе IPubs объявите его функциональные члены – метод для проверки оформлена ли подписка на издание Subs и свойство IfSubs для оформления подписки:
interface IPubs
{
void Subs();
bool IfSubs { get; set;}
}
Ø Реализуйте интерфейс в классе Magazine
· Откройте класс Magazine и добавьте интерфейс в список наследования:

class Magazine : Item, IPubs
{
· Реализуйте свойство и метод, объявленные в интерфейсе:

public bool IfSubs { get; set; }
public void Subs()
{
Console.WriteLine("Подписка на журнал \"{0}\": {1}." , title, IfSubs);
}
Ø Протестируйте новую функциональность
·        В методе Main класса Program добавьте для уже имеющегося журнала mag1 установку свойству IfSubs значения, устанавливающую подписку и вызовите метод Subs для отображения информации о подписке:

Magazine mag1 = new Magazine("О природе", 5,"Земля и мы", 2014, 1235, true);
mag1.TakeItem();
mag1.Show();
mag1.IfSubs = true;
mag1.Subs();
·        Постройте проект и исправьте ошибки, если это необходимо. Запустите и протестируйте программу
2. Использование стандартных интерфейсов
·        В библиотеке классов .Net определено множество стандартных интерфейсов, задающих желаемую функциональность объектов. В этом упражнении вы примените интерфейс IComparable, который задает метод сравнения объектов по принципу больше и меньше, что позволяет переопределить соответствующие операции в рамках класса, наследующего интерфейс IComparable.
·        Сравнение и дальнейшая сортировка будет реализована по полю invNumber Инвентарный номер.
Ø Реализуйте наследование интерфейса IComparable
·        Добавьте в объявление абстрактного класса Item наследование интерфейса IComparable:

abstract class Item : IComparable
{
. . .
Интерфейс IComparable определен в пространстве имен System и содержит единственный метод CompareTo, возвращающий результат сравнения двух объектов – текущего и переданного ему в качестве параметра. Реализация данного метода должна возвращать: 0 – если текущий объект и параметр равны, отрицательное число, если текущий объект меньше параметра и положительное число, если текущий объект больше параметра.
·        Добавьте в класс Item реализацию этого метода, причем сравнение реализуйте по полю invNumber:
int IComparable.CompareTo(object obj)
{
Item it = (Item)obj;
if (this.invNumber == it.invNumber) return 0;
else if (this.invNumber > it.invNumber) return 1;
else return -1;
}

Ø Протестируйте использование новой функциональности
·     В методе Main класса Program создайте массив ссылок на абстрактный базовый класс Item:
Item[] itmas = new Item[4];
·     Заполните массив созданными ранее книгами и журналом:

itmas[0] = b1;
itmas[1] = b2;
itmas[2] = b3;
itmas[3] = mag1;
·        Отсортируйте массив с помощью статического метода Sort класса Array:

Array.Sort(itmas);
·        Отобразите весь список книг и журналов, используя полиморфный вызов метода Show:

Console.WriteLine("\nСортировка по инвентарному номеру");
foreach (Item x in itmas)
{
x.Show();
}
·        Постройте проект и исправьте ошибки, если это необходимо. Запустите и протестируйте программу. Информация о каждом элементе хранения должна выводиться согласно возрастанию инвентарных номеров.
Технология выполнения задания
1.Прочитайте внимательно задание
2. Выполните задание.(по вариантам)
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website