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

  • 2.2 Абстрактный класс Figure и интерфейс MoveUpDown .

  • 2.3 Классы TurtleFigure и CircleFigure .

  • 2.4 Классы TurtleFigureMoveUpDown и CircleMove

  • 2.5 Взаимодействие классов

  • Поля класса Идентификатор Спецификатор доступа Тип

  • Методы класса Имя Описание параметров Тип

  • Поля класса Идентификатор Спецификатор доступа

  • Методы класса Имя Описание параметров

  • Идентификатор Спецификатор доступа Тип Смысловое содержания

  • Идентификатор Вид используемого конструктора

  • Курсовая работа Реализация класса динамически перемещающихся графических объектов средствами языка программирования C#. Реализация класса динамически перемещающихся графических объекто. Реализация класса динамически перемещающихся графических объектов средствами языка программирования C#


    Скачать 366.36 Kb.
    НазваниеРеализация класса динамически перемещающихся графических объектов средствами языка программирования C#
    АнкорКурсовая работа Реализация класса динамически перемещающихся графических объектов средствами языка программирования C
    Дата17.11.2021
    Размер366.36 Kb.
    Формат файлаdocx
    Имя файлаРеализация класса динамически перемещающихся графических объекто.docx
    ТипКурсовая
    #274123
    страница2 из 3
    1   2   3

    2.1 Основные элементы декомпозиции

    Декомпозиция занимает центральное место в объектно-ориентированном анализе и проектировании программного обеспечения. Под декомпозицией понимается процесс разбиения системы на части. Практическое применение объектно-ориентированного проектирования приводится к объектно-ориентированной декомпозиции, при которой мы рассматриваем мир, как совокупность объектов, согласованно действующих для обеспечения требуемого поведения.

    На этапе декомпозиции задачи на подзадачи следует придерживаться трех правил:

    1) Каждая подзадача должна иметь один и тот же уровень рассмотрения

    2) Каждая подзадача может быть решена независимо,

    3) Полученные решения могут быть объединены вместе, позволяя решить исходную задачу.

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

    Основные элементы в программа:

    1) Абстрактный класс Figure.

    2) Класс TurtleFigure.

    3) Класс наследник TurtleFigureMoveUpDown.

    4) Класс CircleFigure.

    5) Класс наследник CircleMove.

    6) Интерфейс MoveUpDown.

    2.2 Абстрактный класс Figure и интерфейс MoveUpDown.

    Класс Figure является абстрактным и имеет методы: создание фигуры, перемещение по окружности.

    Интерфейс MoveUpDown определяет два метода: увеличение или уменьшение объекта на каждом витке.

    2.3 Классы TurtleFigure и CircleFigure.

    Данные классы по своему переопределяют все методы абстрактного класса Figure. Благодаря абстрактному классу повышается логическая структура программы.

    2.4 Классы TurtleFigureMoveUpDown и CircleMove

    TurtleFigureMoveUpDown является наследником от класса TurtleFigure, плюс реализует интерфейс MoveUpDown.

    Класс CircleMove тоже реализует интерфейс MoveUpDown, но является наследником класса CircleFigure.

    2.5 Взаимодействие классов

    С помощью UML-диаграммы на рисунке 1, показаны как взаимодействуют классы между друг другом.



    Рисунок 1 – Взаимодействие классов

    Данная диаграмма демонстрирует общую структуру иерархии классов систему их полей, методов, интерфейсов и взаимосвязей между ними. С помощью UML-диаграммы можно описывать различные процессы внутри программы; определение границы и контекста моделируемой предметной области на ранних этапах проектирования; подготовка документации для взаимодействия с заказчиками и пользователями системы.

    3 ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ


    Программный продукт должен отвечать все функциональный требованиям, иметь удобный графический интерфейс. Реализация пользовательского интерфейса приведена на рисунке 2.



    Рисунок 2 – Пользовательский интерфейс

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

    4 РЕАЛИЗАЦИЯ ПРОГРАММНОГО ПРОДУКТА


    В этом разделе описаны элементы, экземпляры классов реализуемые в программе.

    Абстрактным является класс Figure, его методы переопределяют два класса TurtleFigure и CircleFigure. Элементы класса Figure описаны в таблице 1.
    Таблица 1 – Элементы класса Figure

    Поля класса

    Идентификатор

    Спецификатор доступа

    Тип

    Смысловое содержания

    timer Поля класса

    protected

    Timer

    Таймер, необходим для анимации

    CenterX

    protected

    int

    Содержит координату X по центру PictureBox

    CenterY

    protected

    int

    Содержит координату Y по центру PictureBox

    time

    protected

    int

    Счетчик тиков таймера

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

    Имя

    Описание параметров

    Тип

    Выполняемые действия

    Create

    Graphics g, int sizeX, sizeY

    void

    Создание объекта

    Move

    Graphics g

    void

    Перемещение фигуры

    StopMove

    -

    void

    Останавливает анимацию



    Класс TurtleFigure реализует создания объекта черепашка и перемещение объекта по окружности с постоянной скоростью. В таблице 2 представлены элементы класса TurtleFigure.
    Таблица 2 – Элементы класса TurtleFigure

    Поля класса

    Идентификатор

    Спецификатор доступа

    Тип

    Смысловое содержания

    p

    protected

    Pen

    Карандаш для рисования объекта

    sizePaw

    protected

    int

    Размер лапы в пикселях

    sizeEye

    protected

    int

    Размер глаза в пикселях

    sizeHeadX

    protected

    int

    Размер головы по координате X в пикселях

    sizeHeadY

    protected

    int

    Размер головы по координате Y в пикселях

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

    Имя

    Описание параметров

    Тип

    Выполняемые действия

    TurtleFigure

    int sizeX, int SizeY

    -

    Конструктор с параметрами

    Create

    Graphics g, int sizeX, int sizeY

    void

    Создание объекта

    Move

    Graphics g

    void

    Перемещение фигуры


    Класс TurtleFigureMoveUpDown наследуется от класса TurtleFigure и реализовывает методы от интерфейса MoveUpDown. Данный класс реализует три анимации движения по окружности: увеличение или уменьшение размера объекта на каждом витке; меняет случайным образом цвет на каждом витке. Описание и экземпляр класса TurtleFigureMoveUpDown представлены в таблице 3 и 4.
    Таблица 3 – Элементы класса TurtleFigureMoveUpDown

    Поля класса

    Идентификатор

    Спецификатор доступа

    Тип

    Смысловое содержания

    changeSizeEye

    private

    int

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

    changeSizeHeadY

    private

    int

    Размер головы по координате X в пикселях, который будет меняться на каждом витке

    changeSizePaw

    private

    int

    Размер лапы в пикселях, который будет меняться на каждом витке

    countCircle

    private

    int

    Количество витков

    changeSizeHeadX

    private

    int

    Размер головы по координате Y в пикселях, который будет меняться на каждом витке

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

    Имя

    Описание параметров

    Тип

    Выполняемые действия

    MoveIncrease

    Graphics g

    void

    Увеличивает объект на каждом витке

    MoveDecrease

    Graphics g

    void

    Уменьшает объект на каждом витке

    Таблица 4 – Экземпляр класса TurtleFigureMoveUpDown

    Идентификатор

    Вид используемого конструктора

    turtle

    Конструктор с параметром


    Класс CircleFigure похож на класс TurtleFigure, только создает объект круг. Элементы класса CircleFigure приведены в таблице 5.
    Таблица 5 – Элементы класса CircleFigure

    Поля класса

    Идентификатор

    Спецификатор доступа

    Тип

    Смысловое содержания

    size

    protected

    int

    Радиус круга

    brush

    protected

    Brush

    Содержит цвет кисти

    count

    private

    int

    Переменная для определения цвета

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

    Имя

    Описание параметров

    Тип

    Выполняемые действия

    CircleFigure

    int CenterX, int CenterY

    -

    Конструктор с параметрами

    Create

    Graphics g, int sizeX, int sizeY

    void

    Создание объекта

    Move

    Graphics g

    void

    Перемещение фигуры


    Класс CircleMove реализует увеличение или уменьшение объекта на каждом витке с помощью интерфейса MoveUpDown. Описание и экземпляр класса CircleMove представлены в таблице 6 и 7.

    Таблица 6 – Элементы класса CircleMove

    Поля класса










    Идентификатор

    Спецификатор доступа

    Тип

    Смысловое содержания

    sizeChange

    private

    int

    Размер радиуса в пикселях, который будет меняться на каждом витке

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

    Имя

    Описание параметров

    Тип

    Выполняемые действия

    MoveDecrease

    Graphics g

    void

    Уменьшает объект на каждом витке

    MoveIncrease

    Graphics g

    void

    Увеличивает объект на каждом витке

    CircleMove

    int CenterX, int CenterY

    -

    Конструктор с параметрами


    Таблица 7 – Экземпляр класса CirctleMove

    Идентификатор

    Вид используемого конструктора

    turtle

    Конструктор с параметром


    5 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ РАЗРАБОТАННОГО ПРОГРАММНОГО ПРОДУКТА

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

    Чтобы создать фигуру, нужно выбрать один из предложенных вариантов и нажать на кнопку “Создать” (рис. 3,4).



    Рисунок 3 – Создание объекта черепашка



    Рисунок 4 – Создание объекта круг

    При анимации на каждом витке меняется цвет (рис. 5,6).



    Рисунок 5 – Черепашка сменила цвет панциря после витка



    Рисунок 6 – Объект круг изменил цвет после витка

    Если создать объект и нажать на кнопку “Увеличить”, то на каждом витке, размер объекта будет увеличиваться, так же работает и с уменьшением (рис. 7, 8, 9).

    1   2   3


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