Практическая работа №36, 37, 38, 39

Название практической работы:использование интерфейсов в проектах.

Создание проектов с использованием интерфейсов.

Цель работы: 1) освоить процесс создания интерфейсов;

2) освоить использование интерфейсов в проектах.

знания (актуализация)

· понятие класса;

· понятие интерфейса;

· правила работы с интерфейсами

умения:

· создавать проекты для решения задач с использованием интерфейсов.

Теоретический материал

В объектно-ориентированном программировании иногда требуется определить то, что должен делать класс, а не то, как он это будет делать. Такой подход может быть реализован с помощью абстрактного класса, при этом в абстрактном классе часть методов может быть реализована, часть нет. Кроме этого в С# предусмотрена возможность полностью отделить структуру класса от его реализации. Это делается с помощью интерфейса.

Интерфейс – это «крайний случай» абстрактного класса, в котором не предусмотрена ни одна реализация члена класса. Таким образом, интерфейс описывает функциональность классов, но не определяет способа ее реализации. Каждый класс, наследуя интерфейс, может реализовать его элементы по-своему. Так достигается полиморфизм – объекты разных классов по-разному реагируют на вызовы одного и того же метода.

Примерработы с интерфейсом:

предположим, что у нас имеется множество компаний, которые могут реализовывать некоторые банковские счета. В этом случае нам понадобится интерфейс, обеспечивающий работу со счетами.

// Создание интерфейса

Практическая работа №36, 37, 38, 39 - student2.ru

// Реализация интерфейса

Практическая работа №36, 37, 38, 39 - student2.ru

Практическая работа №36, 37, 38, 39 - student2.ru

Планетарный банк Юпитера также реализует собственный класс, представляющий работу со счетом (код будет практически идентичен реализации класса «КоролевскийБанк».Исключение составляет пополнение баланса: БанкЮпитера дает дополнительно 10% на каждое пополнение баланса):

Практическая работа №36, 37, 38, 39 - student2.ru

// Поработаем с только что созданными классами

Практическая работа №36, 37, 38, 39 - student2.ru

Ход работы

1. Создайте проект для решения одной из приведенных ниже задач.

Создайте следующие классы: · пирожное (название, вид теста, вид крема, вес, калорийность, цена, количество, дата изготовления, срок хранения); · обувь (название, материал, производитель, размер, сезон) Создайте интерфейс, позволяющий: - выводить информацию о товаре; - учитывать новые поступления; - учитывать продажи товаров; - рассчитывать стоимость партии товара. Реализуйте данный интерфейс на созданных классах. Организуйте работу с объектами созданных классов: - заполнение информацией из файла; - вывод информации по выбранной категории товаров на экран; - поступление товаров на склад; - продажу товаров; - поиск товаров по категории по различным признакам (в определенном ценовом диапазоне, по производителю и т.д.)
Создайте следующие классы: · свободное ПО (название, производитель), · коммерческое ПО (название, производитель, цена, дата установки, срок использования) Создайте интерфейс, позволяющий выводить на экран информацию о программном обеспечении, а также определять возможность использования на текущую дату. Организуйте работу с объектами данных классов: - заполнение информацией из файла; - вывод информации по выбранному виду ПО на экран; - вывод полного списка всех программных продуктов; - поиск программных продуктов (с указанием их вида), которое допустимо использовать на текущую дату (в определенном промежутке)
Создайте следующие классы: · игрушка (название, цена, производитель, материал, рекомендуемый возраст) · книга (название, автор, цена, издательство, рекомендуемый возраст) Создайте интерфейс, позволяющий выводить на экран информацию о товаре, а также определять, соответствует ли она определенному возрасту. Организуйте работу с объектами данных классов. - заполнение информацией из файла; - вывод информации по выбранному виду товара (с определением количества товаров): - вывод полного списка всех товаров; - вывод списка товаров, рассчитанных на определенный возраст; - поиск товаров определенной категории в некотором ценовом диапазоне.

2. Ответьте на контрольные вопросы:

- Что такое интерфейс?

- Опишите особенности использования интерфейсов в программе.

- В чем заключаются, на ваш взгляд, преимущества использования интерфейсов?

3. Оформите и сдайте отчет преподавателю.

Практическая работа №40, 41

Название практической работы:создание проектов с использованием структур

Цель работы: 1) освоить создание структур;

2) освоить использование структур в проектах.

знания (актуализация)

· понятие структуры;

· особенности написания структур;

умения:

· создавать и использовать структуры в своих проектах.

Теоретический материал

В С# реализован тип данных, аналогичный классу, но который, в отличие от классов, является размерным типом. Таким типом является структура.

Так как структура является размерным типом, то экземпляр структуры хранит значение своих элементов, а не ссылки на них, и располагается в стеке данных, а не в куче. В связи этим фактом структура не может участвовать в иерархии наследования, а может только реализовывать интерфейсы. Кроме того, структуре запрещено:

1) определять конструктор по умолчанию, поскольку он определен неявно и присваивает всем своим элементам значения по умолчанию (нули соответствующего типа);

2) определять деструктор, поскольку это бессмысленно.

Пример работы со структурой:

// Определение структуры

struct Book

{

public string Avtor;

public string Title;

public int Copyright;

public Book (string Avtor, string Title, int Copyright)

{

this.Avtor = Avtor;

this.Title = Title;

this.Copyright = Copyright;

}

}

// Работа со структурой

{

// Вызов явно заданного конструктора

Book book1 = new Book("А.C. Пушкин", "Сказки", 1970);

// Вызов конструктора по умолчанию

Book book2 = new Book();

// Создание объекта без вызова конструктора

Book bоокЗ;

book3.Avtor = “Джек Лондон”;

book3.Title = “Мартин Иден”;

Book3.Copyright = “1982”;

listBox1.Items.Add(book1.Title+", автор "+book1.Author+

”,(с) "+book1.Copyright);

if (book2.Title == null)

listBox1.Items.Add ("Член book2.Title содержит null.");

// Теперь поместим в структуру book2 данные

book2.Title = "М.Ю. Лермонтов";

book2.Author = "Мцыри";

book2.Copyright = 1987;

listBox1.Items.Add("Теперь структура book2 содержит:");

listBox1.Items.Add(book2.Title+", автор "+book2.Author+

", (c) "+book2.Copyright);

bоокЗ.Title = "Избранное";

listBox1.Items.Add(bоокЗ.Title);

}

Ход работы

1) Создайте проект для решения одной из приведенных ниже задач.

Примечание: в своей работе вам необходимо

- сначала создать нужные структуры,

- после чего – создать список из объектов созданной структуры,

- затем – заполнить этот список данными из текстового файла и

- выполнить обработку.

Известны данные о 30 студентах: фамилия, группа, группа и оценка по иностранному языку. Определите фамилии учеников вторых курсов (К-ых курсов), имеющих оценку «5».
Известна информация о 20 сотрудниках фирмы: фамилия, имя, отчество, адрес и дата поступления на работу (месяц, год). Выведите фамилию, имя, отчество и адрес сотрудников, которые на сегодняшний день проработали в фирме не менее трех лет. День месяца не учитывать.
Известны данные о стоимости каждого из 20 товаров: число рублей и число копеек. Составьте программу, сравнивающую стоимость любых двух наименований товаров (определяющую: какой из товаров стоит дороже). Определить три самых дорогих товара.
В записной книжке указаны фамилии и номера телефонов 15 человек. Составьте программу, которая выполняет поиск: - по номеру телефона выдает фамилию человека; - по фамилии выдает номер телефона; - формирует список людей, фамилии которых начинаются с некоторых символов; - формирует список людей (фамилии + телефоны), телефоны которых начинаются с определенных символов
Имеется информация о количестве осадков, выпавших за каждый день месяца, и о температуре воздуха в эти дни. Определите, какое количество осадков выпало в виде снега (t<0o) и какое – в виде дождя (t>=0 o).
Известен рост каждого студента в группе (20 человек), причем: нет ни одной пары учеников, имеющих одинаковый рост. Определите: - фамилии самого высокого и самого низкого студентов; - фамилии двух студентов, являющихся самыми высокими без учета действительно самого высокого студента группы; - средний рост студентов группы.
Известна информация о багаже (количество вещей и общий вес багажа) 10 пассажиров. - Найдите количество пассажиров, имеющих более двух вещей. - Выясните, имеется ли хотя бы один пассажир, багаж которого состоит из одной вещи весом, менее 25 кг. - Найдите количество пассажиров, количество вещей которых превосходит среднее число вещей всех пассажиров. - Найдите номер багажа, в котором средний вес одной вещи отличается от общего среднего веса одной вещи не более, чем на 0,5 кг.

2) Ответьте на контрольные вопросы:

- Что такое структура?

- Чем отличается структура от класса?

- Когда, на ваш взгляд, удобнее использовать классы, а когда - структуры?

- Опишите план работы со структурой.

- Существует ли конструктор у структур?

3) Оформите и сдайте отчет преподавателю.

Практическая работа №42

Название практической работы:создание проектов с использованием перечислений

Цель работы: 1) научиться создавать перечисления;

2) получить навыки использования перечислений при написании пользовательских программ.

знания (актуализация)

· понятие перечисления;

умения:

· создавать проекты для работы с перечислениями.

Теоретический материал

Перечисление — это множество именованных целочисленных констант. Ключевое слово enum объявляет перечислимый тип.

Формат записи перечисления таков:

enum имя {список_перечисления);

где имя - указывает на имя типа перечисления,

список_перечисления – это список идентификаторов, разделенных запятыми.

Пример: enum Color

{ Red,Green,Blue }

Каждый элемент перечисления имеет связанное с ним константное значение, тип которого определяется базовым типом перечисления.

Пример:создать проект, имитирующий выбор сигнала светофора.

Практическая работа №36, 37, 38, 39 - student2.ru

// Создаем перечисление

Практическая работа №36, 37, 38, 39 - student2.ru

// Начинаем работу

Практическая работа №36, 37, 38, 39 - student2.ru

Ход работы

1. Создайте проект, который позволял бы менять оформление визуальных элементов на форме (использовать перечисления)

2. Создайте проект, позволяющий выводить название дня недели по его номеру, используя перечисление.

3. Создайте проект, позволяющий по дате рождения определить знак зодиака и увидеть картинку этого знака (использовать перечисление).

4. Оформите отчет и сдайте работу преподавателю.

Наши рекомендации