Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Структури даних та діаграми класів ⇐ ПредыдущаяСтр 2 из 2
Відповідно об’єктному аналізу предметної галузі, в курсовій роботі спроектовано три основні класи: · Клас «Лук»(Bow) – використовується для моделювання процесів прицілювання та пострілу. · Клас «Стріла»(Arrow) – використовується для відображення польоту стріли. · Клас «Мішень»(Target) – використовується для відсліжування влучання стріли у мішень.
Клас «Bow». Масив positionBow має тип double, містить дві змінніх, Х та Y. X задається програмно, а Y задається користувачем у параметрі «зріст спортсмена». Змінна geometryHand має тип Змінна pullingForce має тип int та допустимі значення від 30 до 80 фунтів. Позначає зусилля натягу лука. Ця змінна регулює початкову швидкість польоту стріли. Змінна weight має тип double, позначає масу лука та має допустимі значення від 1.5 до 2.2 кілограм. Чим важчий лук, тим менше дисперсія тремтіння рук впливає на точність. Змінна sight має тип bool, позначає наявність прицілу. Якщо є приціл, то дисперсія тремтіння рук менше впливає на точність пострілу. Змінна stabilizer типу bool позначає наявність стабілізатора. Якщо є стабілізатор, то дисперсія лука найменша. Змінна tension типу double визначає час прицілювання, максимальне значення якої 10 секунд. Змінна angle позначає кут нахилу лука та стріли яка розміщена на тятиві.
Конструктор Bow приймає змінну PictureBox та змінну яка відповідає за позицію лука. Метод Calculation приймає всі змінні які позначають характеристики лука та змінні опрацьовані інтерфейсом Aim, вираховує всі потрібні дані(V, positionArrow та angle) для знаходження функції польоту стріли та передає методу Trajectory об’єкту класу Arrow.
Клас «Arrow». Масив positionArrow має дві змінні X та Y, типу double. Початкове значення задається програмно. Змінна V позначає швидкість польоту стріли, має тип double. Значення отримується у результаті обчислень методом Calculation класу Bow. Змінна m позначає масу стріли, задається програмно та має тип double. Змінна angleArrow позначає кут нахилу стріли та має тип double. Значення отримується у результаті обчислень методом Calculation.
Конструктор Arrow приймає змінну PictureBox та змінну яка відповідає за позицію стріли. Метод Trajectory приймає змінні необхідні для обчислення траєкторії руху стріли, обчислює її та змінює дані positionArrow згідно з розрахунками. Перестає «рухати» об’єкт класу Arrow як тільки об’єкт зустрічається з поверхнею землі або з мішенню, після чого визиває метод Hit класу Target.
Клас «Target». Масив positionTarget має дві змінні X та Y, типу double. Значення задається програмно. Змінна bullet типу bool позначає влучання стріли у мішень. Значення отримує в результаті роботи метода Trajectory класу Arrow. Конструктор Target приймає змінну PictureBox та змінну яка відповідає за позицію мішені. Метод Hit приймає змінну bullet та повідомляє про результати влучання. Рис. 1.8 – діаграма класів UML
На рисунку 1.8 зображено діаграму класів, де ми бачимо агрегацію класу Arrow до класу Bow. Клас Arrow спочатку свого функціонування залежить від класу Bow, отримує від нього необхідні дані для пошуку траєкторії руху, та отримує самостійне функціонування. Тому це відношення агрегація. Кратність між цими класами 1 до 1, тому що одночасно декілька стріл не може взаємодіяти з луком. Кратність між класом Arrow и класом Target (0..2) до 1. Мішень може містити на собі 0 стріл, коли жодна стріла не потрапила у ціль, або ж 1 чи 2 та не більше, тому що коли створюється третій об’єкт класу Arrow викликається деструктор для першого об’єкта. Також при розробці програми використовуються класи засобів Windows Forms.
|