Главная страница
Навигация по странице:

  • 2 Логическая структура программы

  • Поля и свойства класса lark

  • Тип данных / Класс Поле Свойство

  • Методы класса lark

  • События класса lark

  • Класс kastrel Данный класс наследует класс lark. Конструктор класса kastrel() устанавливает базовые значения полей данного класса.Поля и свойства класса

  • События класса kastrel События, вызываемые в классе kastrel совпадают с событиями класса lark.Класс flBl

  • Поля и свойства класса flBl

  • Тип данных / Класс Поле Назначение

  • Методы класса flBl

  • События класса flBl

  • Класс mouse Данный класс содержит конструктор mouse(speedB), который задает базовые значения полей. Схема его алгоритма приведена ниже.Поля и свойства класса

  • Методы класса mouse

  • События класса mouse

  • Класс tree Данный класс содержит конструктор tree(speedB), который задает базовые значения полей. Схема его алгоритма приведена ниже.Поля и свойства класса

  • Методы класса tree

  • События класса tree

  • Отчет по практической работе Объектно-ориентированное программирование Модель полета жаворонка и пустельги. Отчет2. Отчет по практической работе Объектноориентированное программирование Модель полета жаворонка и пустельги


    Скачать 3.85 Mb.
    НазваниеОтчет по практической работе Объектноориентированное программирование Модель полета жаворонка и пустельги
    АнкорОтчет по практической работе Объектно-ориентированное программирование Модель полета жаворонка и пустельги
    Дата21.12.2022
    Размер3.85 Mb.
    Формат файлаdocx
    Имя файлаОтчет2.docx
    ТипОтчет
    #857475
    страница2 из 4
    1   2   3   4

    1.2 Требования в организации ввода-вывода данных в программе


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

    1.3 Требования в реакции программы на нестандартные, в том числе критические, действия пользователя.


    При некорректном вводе данных пользователем textBox автоматически ограничивает возможные значения. В других случаях программа блокирует ввод неверных данных.

    1.4 Прочие требования к программе


    Данные классов должны быть инкапсулированы.

    Членами класса должны быть не менее 4-х свойств, 2-х методов, 1-го конструктора и 2-х событий.

    Нажатие кнопки “Закрыть” должно осуществлять корректное завершение работы приложения.

    2 Логическая структура программы


    Класс lark

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

    Поля и свойства класса lark

    Поля, принадлежащие свойствам представлены в таблице 2.1
    Таблица 2.1 – Поля и свойства класса lark

    Тип данных / Класс

    Поле

    Свойство

    Ограничения по значению

    Назначение

    set

    get

    Double

    speedOfFly

    p_sof

    [0;50)

    Скорость полета

    +

    +

    Double

    hungry

    p_hu

    [0;100]

    Сытость

    +

    +

    Double

    fatigue

    p_fat

    [0;100]

    Выносливость

    +

    +

    String

    obName

    p_obn

    -

    Имя ближайшего объекта

    +

    +

    Int

    obDist

    p_dis

    [-1;6001)

    Расстояние до ближайшего объекта

    +

    +


    Методы класса lark

    fly() – полет птицы. Этот метод смещает картинку фона, снижает показатели сытости и выносливости, повышает скорость, используется в обработчике событий timer1_Tick, вызывает событие deap при снижении значения свойства p_fat или p_hu до нуля.

    slept() – сон птицы. Этот метод повышает значение выносливости, при достижении значения выносливости значения 99 или 100, прерывает сон вызовом события stup.

    События класса lark

    Для создания событий сначала был объявлен делегат. Каждому событию соответствует свой делегат.

    delegate void death(Timer^ t1, PictureBox^ pbb, Button^ b1);

    event death^ deap;

    delegate void stand(PictureBox^ bi, PictureBox^ fdsz);

    event stand^ stup;

    Генерации событий происходят в следующих методах и свойствах:

    Вызов deap происходит в методе fly(), событием является снижение значения выносливости или сытости до нуля.

    Вызов stup происходит в методе slept(), событием является достижение значения выносливости 99 или 100.

    Функции обработчики событий:

    Для deap функцией-обработчиком является deshi() класса lark, в результате которой происходит остановка таймера, смена изображения птицы на погибшую и вывод кнопки воскрешения.

    Для stup функцией-обработчиком является disapple() класса tree, в результате которой птица поднимается в воздух, задает значение 10 свойству speedOfFly, а также прячет изображение дерева от пользователя.

    Класс kastrel

    Данный класс наследует класс lark. Конструктор класса kastrel() устанавливает базовые значения полей данного класса.

    Поля и свойства класса kastrel

    Поля и свойства класса kastrel совпадают с полями и свойствами класса lark.

    Методы класса kastrel

    Переопределяет метод fly() класса lark, заменяя изображение птицы, задает иные значения полей.

    События класса kastrel

    События, вызываемые в классе kastrel совпадают с событиями класса lark.

    Класс flBl

    Данный класс содержит конструктор flBl(speedB), который задает базовые значения полей. Схема его алгоритма приведена ниже.

    Поля и свойства класса flBl

    Поля, принадлежащие свойствам представлены в таблице 2.2
    Таблица 2.2 – Поля класса flBl

    Тип данных / Класс

    Поле

    Назначение

    Double

    speed

    Скорость полета

    bool

    vis

    Видимость/скрытость мухи


    Методы класса flBl

    fly() – полет мухи. Если муха скрыта от пользователя, перемещает её со скоростью птицы, в ином случае не перемещает её, проверяет расстояние до птицы. При приближении к птице ближе чем на 1500 пикселей вызывает событие see, отправляющее птице данные о мухе. При достижении значения меньшего 256 вызывает событие eatenm, скрывающее муху и восполняющее значение сытости птицы.

    appear() – появление мухи. Метод генерирует случайную высоту появления мухе в диапазоне от 300 до 700, останавливает передвижение мухи и делает её видимой

    События класса flBl

    delegate void visa(PictureBox^ p, PictureBox^ pbbb);

    event visa^ see;

    delegate void eatenm();

    event eatenm^ eatm;

    Генерации событий происходят в следующих методах и свойствах:

    Вызов see происходит в методе fly(), событием является уменьшение расстояния между птицей и мухой до 1500, и с этого момента птица видит муху.

    Вызов eatenm происходит в методе fly(), событием является приближение мухи на такое расстояние 256 и ближе, на котором птица может съесть муху.

    Функции обработчики событий:

    Для see функцией-обработчиком является seeOb() класса lark, в результате которой происходит смена высоты полета птицы и вычисление расстояния до ближайшего объекта, вывод названия объекта.

    Для eatenm функцией-обработчиком является feed() класса lark, в результате которой происходит восстановление сытости у птицы и исчезновение мухи.

    Класс mouse

    Данный класс содержит конструктор mouse(speedB), который задает базовые значения полей. Схема его алгоритма приведена ниже.

    Поля и свойства класса mouse

    Поля, принадлежащие свойствам представлены в таблице 2.3

    Таблица 2.3 Поля класса mouse

    Тип данных / Класс

    Поле

    Назначение

    Double

    speed

    Скорость полета

    bool

    vis

    Видимость/скрытость мухи

    Методы класса mouse

    run() –отвечает за передвижение мыши и норы. Если мышь скрыта, передвигает её и нору со скорость полета птицы. В ином случае предвигает мышь со скоростью 3 пикселя в такт, а нору не двигает. При приближении к птице ближе чем на 1500 пикселей вызывает событие see, отправляющее птице данные о мыши. Отслеживает расстояние до норы. В том случае, если мышь не успевает добежать до норы прежде, чем приблизится к пустельге, вызывает событие eatm, в результате которого срабатывает функция feedM класса kastrel, в котором скрывается мышь и нора, восстанавливается сытость птицы. В случае, если мышь добегает до норы быстрее, чем приближается к пустельге, вызывает событие los, в результате которого срабатывает функция lost() класса kastrel, прерывающее передвижение пустельги в высоту и исчезновение мыши и норы.

    appear() – появление мыши. Задает случайное расстояние от мыши до норы в диапазоне от 60 до 960, делает мышь и нору видимыми.

    eaten() – исчезновение мыши. Скрывает мышь и нору.

    События класса mouse

    delegate void visa(PictureBox^ p, PictureBox^ pb);

    event visa^ see;

    delegate void eatenm(PictureBox^ pbb);

    event eatenm^ eatm;

    delegate void mlose(PictureBox^ pbb, PictureBox^ pbm, PictureBox^ pbn);

    event mlose^ los;

    Генерации событий происходят в следующих методах и свойствах:

    Вызов see происходит в методе run(), событием является уменьшение расстояния между птицей и мышью до 800, и с этого момента птица видит мышь.

    Вызов eatenm происходит в методе run(), событием является приближение мыши на расстояние 256, на котором птица может её съесть.

    Вызов mlose происходит в методе run(), событием является сокращение расстояние между мышью и норой до скорости полета птицы.

    Функции обработчики событий:

    Для see функцией-обработчиком является seeOb() класса kastrel, в результате которой происходит смена высоты полета птицы и вычисление расстояния до ближайшего объекта, вывод названия объекта.

    Для eatenm функцией-обработчиком является feedM() класса kastrel, в результате которой происходит восстановление сытости у пустельги и исчезновение мыши.

    Для los функцией-обработчиком является lost() класса kastrel, в результате которой происходит удаление мыши из ближайших объектов, исчезновение мыши и норы и прерывание смены высоты птицы.

    Класс tree

    Данный класс содержит конструктор tree(speedB), который задает базовые значения полей. Схема его алгоритма приведена ниже.

    Поля и свойства класса tree

    Поля, принадлежащие свойствам представлены в таблице 2.4

    Таблица 2.3 Поля класса tree

    Тип данных / Класс

    Поле

    Назначение

    Double

    speed

    Скорость полета

    bool

    vis

    Видимость/скрытость мухи

    Методы класса tree

    go() – передвижение дерева. Если дерево скрыто, передвигает дерево со скоростью полета птицы. В ином случае не передвигает дерево. При уменьшении расстояния между деревом и птицей до 1500, вызывает событие sow, отправляющее птице дынные о дереве, при достижении расстояния 0, вызывает событие sitdown, в результате которого срабатывает функция sitt() класса lark(), происходит снижение скорости до нуля и восстановление выносливости птицы

    appe() – появление дерева. Делает дерево видимым для пользователя, прекращает его передвигать

    События класса tree

    delegate void seen(PictureBox^ tr, PictureBox^ pict);

    event seen^ sow;

    delegate void sitting(PictureBox^ pb, PictureBox^ pbb);

    event sitting^ sitdown;

    Генерации событий происходят в следующих методах и свойствах:

    Вызов sow происходит в методе go(), событием является уменьшение расстояния между птицей и деревом до 1500, и с этого момента птица видит дерево.

    Вызов sitdown происходит в методе go(), событием является приближение дерева на расстояние 0 , необходимое для посадки на него.

    Функции обработчики событий:

    Для sow функцией-обработчиком является seeOb() класса lark, в результате которой происходит смена высоты полета птицы и вычисление расстояния до ближайшего объекта, вывод названия объекта.

    Для sitdown функцией-обработчиком является sitt() класса lark, в результате которой происходит обнуление скорости птицы и смена изображения.
    1   2   3   4


    написать администратору сайта