Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пенко Методпособие к лаб по курсу ПО ЭВМ 2 курс...docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
145.41 Кб
Скачать

Продемонстрированные в приложении особенности

Структура решения - 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 единиц ресурса.

Рассказ о существе является строкой, содержащей тип существа, его идентификатор

и количество ресурса в виде соответствующей последовательности символов "*".

Программа должна показать начальное состояние мира.

Затем все существа выполнят взаимодействие с соседями.

В конце программа еще раз покажет состояние мира.