
- •Введение
- •Список вопросов, рассматриваемых в модуле 1.
- •Продемонстрированные в приложении особенности
- •Пример Mod1Ex4 (Инкапсуляция, обработка ошибок, наследование) Постановка задачи
- •Продемонстрированные в приложении особенности
- •Пример Mod1Ex5 (Полиморфизм)
- •Продемонстрированные в приложении особенности
- •Список вопросов, рассматриваемых в модуле 2.
- •Описание модельных примеров модуля 2. Пример Mod2Ex1 Постановка
- •Листинги примеров Пример Mod1Ex1
- •Пример Mod1Ex2
- •Пример Mod1Ex3
- •Пример Mod1Ex4
- •Пример Mod2Ex1
- •Пример Mod2Ex2
- •Пример Mod2Ex3
Продемонстрированные в приложении особенности
Создание системы классов, демонстрирующих полиморфное поведение. В клиентской части создается множество объектов различных классов, демонстрирующих полиморфное выполнение методов.
Список вопросов, рассматриваемых в модуле 2.
Структура оконного приложения
Особенности оконных приложений. Событийная модель выполнения. Анализ сгенерированного текста простого оконного приложения. Элементы управления, их свойства и методы. Обработчики событий. Класс Form.
Основные элементы управления, свойства и события.
Элементы Label, TextBox, Button: свойства и события.
Создание оконного приложения без использование визуального дизайнера.
Причины необходимости «ручного» подхода. Динамическое управление множеством элементов управления. Создание собственных элементов управления.
Использование классов Control и Form.
Свойства, методы и события классов Control и Form. Создание диалоговых окон и многооконных приложений. Обработка событий, связанных с мышью и клавиатурой.
Стандартные диалоговые окна.
Стандартные диалоговые окна OpenFileDialog, SaveFileDialog и FolderBrowserDialog.
Сериализация.
Сущность процесса сериализации. Форматы сериализации. Техника бинарной и XML-сериализации. Особенности и отличия способов сериализации. Сохранение сложных объектных графов.
Дополнительные элементы управления в оконных приложениях.
Элементы управления CheckBox, RadioButton, GroupBox, Panel, ListBox, ComboBox, NumericUpDown, Timer: свойства и события.
Функциональный тип.
Функциональный тип. Делегаты. Наследование и полиморфизм - альтернатива обратному вызову. Реализация делегатов как свойств классов. Операции над делегатами. Класс Delegate. Событийно-ориентированное программирование. Проблемы с обработчиками событий.
Описание модельных примеров модуля 2. Пример Mod2Ex1 Постановка
Оконное приложение позволяет вычислить стоимость туристической поездки. Окно приложения выглядит следующим образом:
Стоимость поездки показывается в нижней части окна в пустом (пока) поле. Стоимость определяется по формуле:
(стоимость_суток_проживания*количество_суток_проживания+
стоимость_дополнительных_услуг)*
сезонный_коэффициент*коэффициент_страны
Стоимость суток проживания зависит от количества мест в номере и определяется в следующей таблице:
1-местный - 500
2-местный - 400
3-местный - 300
4-местный - 200
Сезонный коэффициент определяется в следующей таблице:
Зима - 1
Весна - 0.8
Лето - 1
Осень - 0.7
Коэффициент страны:
Северная и южная Америка - 1
Европа - 0.7
Азия - 0.8
Стоимость дополнительных услуг:
Завтрак - 50
Wi-Fi - 5
Кондиционер - 10
Стоимость обновляется при любом корректном действии пользователя с элементами на экране.
Продемонстрированные в приложении особенности
Используются популярные элементы управления - кнопки, метки, поля ввода, списки выбора, радио-кнопки, чек-боксы.
Используются стандартные события для этих элементов управления.
Используется свойство Tag.
Приложение разрабатывается с существенным использованием визуального дизайнера.
Пример Mod2Ex2
Постановка задачи
Реализовать оконное приложение, моделирующее игру в крестики-нолики.
Продемонстрированные в приложении особенности
При разработке приложения минимально использовать визуальный дизайнер. В частности, 9 кнопок игрового поля создаются полностью программно - их размер, местоположение и реакция на щелчок.
Пример Mod2Ex3
Постановка задачи
Оконное приложение позволяет осуществлять некоторые функции управления библиотекой. Интерфейс приложения выглядит следующим образом:
После запуска приложения нажатием кнопки "Открыть библиотеку" можно выбрать файл, содержащий сохраненную ранее с помощью сериализации библиотеку.
Объектная модель состоит из двух классов. Класс Book предоставляет основные возможности отдельной книги, класс Library - основные возможности управления библиотекой. Оба класса представлены в листинге к примеру и предоставляются перед выполнением лабораторной работы.
Если в диалоговом окне выбора файла выбран файл, то объектная модель заполняется содержимым из файла и в списке отображаются книги библиотеки.
Если файл не выбран - создается и отображается пустая библиотека.
Далее имеются следующие возможности:
1. Добавление новой книги в библиотеку.
2. Добавление экземпляра уже существующей книги.
3. Удаление экземпляра уже существующей книги.
4. Удаление существующей книги из библиотеки.