- •Введение
- •Список вопросов, рассматриваемых в модуле 1.
- •Продемонстрированные в приложении особенности
- •Пример Mod1Ex4 (Инкапсуляция, обработка ошибок, наследование) Постановка задачи
- •Продемонстрированные в приложении особенности
- •Пример Mod1Ex5 (Полиморфизм)
- •Продемонстрированные в приложении особенности
- •Список вопросов, рассматриваемых в модуле 2.
- •Описание модельных примеров модуля 2. Пример Mod2Ex1 Постановка
- •Листинги примеров Пример Mod1Ex1
- •Пример Mod1Ex2
- •Пример Mod1Ex3
- •Пример Mod1Ex4
- •Пример Mod2Ex1
- •Пример Mod2Ex2
- •Пример Mod2Ex3
Продемонстрированные в приложении особенности
Структура решения - 2 проекта: 1-й – библиотека классов; 2-й – консольное приложение.
Разработаны два класса, которые находятся в отношении композиции друг к другу: один класс содержит в себе коллекцию объектов другого класса.
В классах реализованы основные особенности моделируемой предметной области.
Пример Mod1Ex4 (Инкапсуляция, обработка ошибок, наследование) Постановка задачи
Разработать 3 класса:
Простые часы
Закрытые переменные
Счетчик минут
Методы
Конструктор с параметром - начальным счетчиком минут
Открытый метод ToString - возвращает строку с изображением времени в часах и минутах
Открытый метод IncMinutes, продвигающий часы на одну минуту вперед
Открытый метод DecMinutes, возвращающий часы на одну минуту назад
Закрытые методы Hours и Minutes, определяющие количество полных часов и минут
Точные часы
Первый вариант - производный от простых часов.
Закрытые переменные
Количество секунд в последней неполной минуте
Методы
Конструктор с параметрами - начальным счетчиком минут и количеством секунд в последней неполной минуте
Открытый метод ToString - возвращает строку с изображением времени в часах, минутах и секундах
Открытый метод IncMinutes, продвигающий часы на одну минуту вперед
Открытый метод DecMinutes, возвращающий часы на одну минуту назад
Открытый метод IncSeconds, продвигающий часы на одну секунду вперед
Открытый метод DecSeconds, возвращающий часы на одну секунду назад
Второй вариант - самостоятельный класс
Закрытые переменные
Счетчик секунд
Методы
Открытые методы те же, что и в первом варианте класса
Закрытые методы Hours, Minutes и Seconds, определяющие количество полных часов, минут и секунд
В Main
Создать объект класса Простые часы.
Показать время на простых часах.
Продвинуть простые часы на час вперед.
Показать время на простых часах.
Создать объект класса Точные часы.
Показать время на точных часах.
Продвинуть точные часы на 1 час и 1 минуту вперед.
Показать время на точных часах.
Испытать оба варианта класса Точные часы, убедившись в одинаковом способе их использования в Main
Продемонстрированные в приложении особенности
Расширение возможностей базовых классов с помощью наследования и композиции.
Пример Mod1Ex5 (Полиморфизм)
Программно промоделировать развитие простого мира, состоящего из 10 существ.
Каждое существо имеет числовой идентификатор и целое количество некоторого ресурса. Начальное количество ресурса - случайное число от 20 до 40, а идентификаторы уникальны. Существа выстроены в круг, так, что каждое существо имеет по два соседа. Существа относятся к одной из двух категорий - потребители и производители.
Любое существо способно выполнять два действия:
- взаимодействовать с двумя своими соседями
- рассказывать о себе
В программной реализации эти действия должны быть реализованы как полиморфные методы.
Потребитель, взаимодействуя с соседями отбирает у каждого по 5 единиц ресурса.
Производитель, взаимодействуя с соседями отдает каждому по 5 единиц ресурса.
Рассказ о существе является строкой, содержащей тип существа, его идентификатор
и количество ресурса в виде соответствующей последовательности символов "*".
Программа должна показать начальное состояние мира.
Затем все существа выполнят взаимодействие с соседями.
В конце программа еще раз покажет состояние мира.
