Курсовая работа (т): Графическое приложение, управляющее движением объекта

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Графическое приложение, управляющее движением объекта

ВВЕДЕНИЕ

Использование новых информационных технологий в разных сферах деятельности человека привело к разработке программного обеспечения для создания графических объектов (файлов) и дальнейшей работы с ними. Такое программное обеспечение было востребовано на рынке информационных технологий, потому постоянно изменяется, включая в себя всё новые и новые возможности.

Первые шаги программирования на языке С#, требуют тщательного проектирования макета программы, а также наличия литературы по данному языку программирования. Однако, при внимательном изучении литературы, можно добиться хороших познаний данного языка программирования и создавать достаточно хорошее программное обеспечение для разных сфер деятельности.

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

Выбор обусловлен тем, что ключевым средством взаимодействия пользователя с компьютером является графический пользовательский интерфейс. Развитие и совершенствование графического интерфейса тесно связано с развитием компьютерного обеспечения и технологий. Сейчас многие составные части компьютеров разрабатываются с учетом графических режимов работы. Например, дорогие видеокарты, стоимость которых доходит до половины стоимости удовлетворительного компьютера для работы в офисе. Все графические программы разрабатываются с учётом последних новинок компьютерной техники, реагируя на все достижения и всё ближе подходя к реальности изображения и звука. На сегодняшний день существуют программы поражающие своими возможностями с хорошим графическим и звуковым оформлением. Имеется и постоянно возникает огромное количество фирм, которые предоставляют всё новые и новые программы крайне разнообразного характера.

В теоретической части курсовой работы дано краткое описание языка программирования С#. Его достоинства и недостатки.

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

Задачи, которые я поставил перед собой, следующие: изучить основы языка программирования С# и особенности разработки графических приложений

Предмет исследования - возможности программирования графических пользовательских интерфейсов с помощью языка С#.

Объект исследования - графический объект перемещающийся в пространстве по определенной формуле.

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

ГЛАВА 1. ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ

.1 Выбор языка и среды программирования


С# разрабатывался как язык программирования прикладного уровня для CLR (Common Language Runtime) и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR.

Ниже представлена схема выполнения.NET-приложения в среде CLR.

Рисунок 1. Схема выполнения.NET-приложения в среде CLR.

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

Вследствие того, что C# представляет собой гибрид из нескольких языков, он является таким же синтаксически чистым - если не чище - как и Java, почти столь же простым, как VB, и практически таким же мощным и гибким, как С++.

Рисунок 2. Генеалогическое древо С#

Список ключевых особенностей языка C#, которые характерны для всех его версий.

• Указатели использовать не требуется! В программах на C# обычно не возникает нужды в манипулировании указателями напрямую.

• Автоматическое управление памятью посредством сборки мусора. Учитывая это, ключевое слово delete в C# не поддерживается.

• Формальные синтаксические конструкции для классов, интерфейсов, структур, перечислений и делегатов.

• Аналогичная языку С++ возможность перегрузки операций для специальных типов без излишних сложностей.

• Поддержка программирования на основе атрибутов. Эта разновидность разработки позволяет аннотировать типы и их члены с целью дополнительного уточнения их поведения. Например, если пометить метод атрибутом [Obsolete], при попытке использования этого члена программисты получат соответствующее специальное предупреждение.

С выходом версии.NET 2.0 (примерно в 2005 г.), язык программирования C# был обновлен для поддержки многочисленных новых функциональных возможностей:

• Возможность создания обобщенных типов и обобщенных членов. Используя обобщения, можно создавать очень эффективный и безопасный к типам код, который определяет множество заполнителей, указываемых во время взаимодействия с обобщенными элементами.

• Поддержка анонимных методов, которые позволяют предоставлять встраиваемую функцию везде, где требуется тип делегата.

• Возможность определения единственного типа в нескольких файлах кода (или, если необходимо, в виде представления в памяти) с использованием ключевого слова partial.

В версии.NET 3.5 (вышедшей примерно в 2008 г.) в язык программирования C# была добавлена дополнительная функциональность, включая следующие средства.

• Поддержка строго типизированных запросов (т.е. LINQ), применяемых для взаимодействия с разнообразными формами данных.

• Поддержка анонимных типов, которые позволяют моделировать форму типа, а не его поведение.

• Возможность расширения функциональности существующего типа (не создавая его подклассы) с использованием расширяющих методов.

• Включение лямбда-операции (=>), которая еще больше упрощает работу с типами делегатов.NET.

• Новый синтаксис инициализации объектов, который позволяет устанавливать значения свойств во время создания объекта.

Версия.NET 4.0 (вышедшая в 2010 г.) дополнила C# еще рядом средств:

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

• Поддержка динамического поиска членов во время выполнения через ключевое слово dynamic это обеспечивает универсальный подход к вызову членов на лету независимо от инфраструктуры, с помощью которой они были реализованы (COM, IronRuby, IronPython или службы рефлексии.NET).

• Работа с обобщенными типами стала намного понятнее, учитывая возможность легкого отображения обобщенных данных на универсальные коллекции System.Object через ковариантность и контравариантность.

В этой версии C# появилась пара новых ключевых слов (async и await), которые значительно упрощают многопоточное и асинхронное программирование.

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

.2 Требования к функциональным возможностям

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

.3 Алгоритм работы программы

графический программирование движение скорость

Алгоритм работы создаваемого приложения выглядит следующим образом.

Рисунок 3. Алгоритм программы

1.4 Структура программы

Программа на С# состоит из одного или нескольких файлов. Каждый файл может содержать одно или несколько пространств имен. Каждое пространство имен может содержать вложенные пространства имен и типы, такие как классы, структуры, интерфейсы, перечисления и делегаты- функциональные типы.

ГЛАВА 2. РАЗРАБОТКА ПРИЛОЖЕНИЯ

2.1 Создание проекта


Выбираю из пункта меню Файл > Создать > Проект. Откроется диалоговое окно позволяющее выбрать тип отображаемого шаблона.

Рисунок 4. Создание проекта.

В левой панели в узле Другие языки выбрал узел Visual C#. В центральной панели выбираю шаблон Приложение Windows Forms.

Рисунок 5. Выбор шаблона проекта.

Шаблон Приложение Windows Forms дает возможность создать минимальное приложение которое компилируется и запускается, но не содержит данных или элементов управления пользовательского интерфейса, кроме самой формы. Добавлять элементы в процессе разработки. В панели Обозреватель решений показана решение в котором находиться курсовой проект. В списке проекта выбираю Form1.cs правой кнопкой и из контекстного меню выбрал пункт Перейти к коду.

Рисунок 6. Открытие редактора кода.

2.2 Программирование


В шаблоне будет прописан уже заготовленный код. После объявления класса Form1 объявляю базовые переменные.




В конструкторе инициализирую переменные.


Задаю радиус круга, давая ему значение 20. Позицию задаю с помощью переменных xpos и ypos. В начале она задается произвольно. Переменным, отвечающих за скорость, задаю нулевое значение. Так же статичное значение трению и глушению скорости при отскоке объекта.

Инициализирую таймер, который будет обновлять картинку при 30 кадрах в секунду. Событию по истечению времени (Tick) задам метод, в котором будет просчитываться поведение объекта и перерисовка формы. Viewport задаю объект Graphics, в котором будет нарисован круг.

Теперь метод render. При каждом входе в кадр форма обновляется заливая все однотонным цветом. Так же позиции круга плюсуется скорость.


Что бы круг при движении в определенную сторону не ушел за границы окна пишу такой код. При приближении в краю окна по X скорость xVel умножается на отрицательное число, которое уменьшает скорость в 0,7 раз. Аналогично по Y.


Так же добавляется трение, которое тормозит круг. И при приближении скорости с 0, она обнуляется и таймер останавливается.


Ну и отображение круга на форме.


Создаю событие клика по форме. Метод OnClick переопределяет (override) метод расширяемого класса.


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


Метод force рассчитывает, с какой скоростью будет двигаться круг. Круг движется по направлению к курсору. Чем позиция курсора дальше от круга, тем быстрее скорость круга.

2.3 Виды контроля качества разрабатываемого ПО


Тестирование программы - это этап, на котором проверяется, как ведет себя программа на как можно большем количестве входных наборов данных, в том числе и на заведомо неверных.

Основные принципы организации тестирования:

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

.        следует по возможности избегать тестирования программы ее автором, т.к. кроме уже указанной объективной сложности тестирования для программистов здесь присутствует и тот фактор, что обнаружение недостатков в своей деятельности противоречит человеческой психологии (однако отладка программы эффективнее всего выполняется именно автором программы);

.        по тем же соображениям организация - разработчик программного обеспечения не должна "единолично ” его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

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

.        необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

.        следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

.        тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки (в частности, следует выделять для тестирования достаточные временные и материальные ресурсы);

.        следует учитывать так называемый "принцип скопления ошибок”: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

2.4 Методы и способы устранения ошибок


Отладка - это комплексный процесс по выявлению и исправлению дефектов в программном обеспечении. Сами же дефекты, обычно, обнаруживается в процессе тестирования ПО.

Отладка состоит из следующих этапов:

         воспроизведение дефекта (любым из доступных способов);

         анализ дефекта (поиск причины возникновения дефекта);

         дизайн исправления дефекта;

         кодирование исправления дефекта;

         валидация исправления;

         интеграция исправления в кодовую базу или целевую систему;

         дополнительные валидации после интеграции.

На любом этапе отладки могут возникнуть новые дефекты, которые придётся отлаживать. Например, какая-то часть исправления в коде работает не так как ожидается и соответственно придётся отлаживать эту часть в изоляции и снова основное время уходит на пункты 1 и 2 и т.д.

Этап отладки можно считать законченным, если программа правильно работает на двух-трех наборах входных данных.

Некоторые методы отладки ПО используемые на данный момент в индустрии:

         запуск программы из под отладчика;

         анализ поведения системы;

         тестирование;

         анализ кода без исполнения программы;

         выполнения программы (или её части) в другой среде;

         отладка трансляцией кода.

2.5 Построение решения


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

Нужно изменить конфигурации режима Debug в режим Release.

Источник: https://www.bibliofond.ru/detail.aspx?id=792240