Компьютерное приложение "Кипящая жидкость"

Разработка компьютерного приложения "Кипящая жидкость" с применением навыков программирования на языке Java. Проектирование алгоритма для решения поставленной задачи, его предметная область. Создание приложения с графическим пользовательским интерфейсом.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 29.10.2015
Размер файла 3,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Министерство образования и науки

Российской Федерации

Федеральное государственное бюджетное образовательное

учреждение высшего профессионального образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра экономической математики информатики и статистики (ЭМИС)

Компьютерное приложение «Кипящая жидкость»

Отчет по вычислительной практике

Студент группы 592

М. В. Острикова

Руководитель

старший преподаватель кафедры ЭМИС

А. А. Матолыгин

Томск 2014

  • Содержание
  • 1. Введение
  • 2. Постановка задачи
  • 3. Среда разработки
  • 4. Платформа Java
  • 5. Алгоритм решения задачи
  • 6. Реализация
  • 7. Результаты
  • Заключение
  • Список использованных источников

1. Введение

Местом прохождения практики является кафедра экономической математики, информатики и статистики (ЭМИС) при Томском государственном университете систем управления и радиоэлектроники (ТУСУР).

Кафедра ЭМИС организована на экономическом факультете в 2004 году. Основными целями её создания в составе экономического факультета стали обучение студентов экономических специальностей по информационным и математических дисциплинам, а также подготовка студентов информационного направления. Кроме того , открытие кафедры было обусловлено современными тенденциями, связанными как с развитием многоуровневого образования, так и с расширением возможности выбора студентами вариантов продолжения своей профессиональной подготовки после получения степени бакалавра [1].

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

Кафедра является профилирующей по направлению 09.03.02 «Информационные системы и технологии», а также обеспечивает обучение студентов экономического факультета всех специальностей по профилю своей специализации.

Научные исследования на кафедре ЭМИС выполняются по направлениям:

· параллельное программирование;

· прогнозные методы в экономике;

· искусственный интеллект и принятие решений;

· интеллектуальный анализ данных и распознавание образов;

· проблемы теории управления техническими системами;

· моделирование физико-химических превращений в материалах.

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

Целью данной вычислительной практики является закрепление навыков программирования на языке Java путем разработки компьютерного приложения «Кипящая жидкость». В ходе вычислительной практики необходимо исследовать предметную область, разработать алгоритм для решения поставленной задачи, создать приложение с графическим пользовательским интерфейсом на языке программирования Java.

компьютерный приложение кипящий жидкость

2. Постановка задачи

В сосуде произвольной формы, залитом жидкостью, необходимо сымитировать кипение жидкости. На дне сосуда образуются пузыри, при движении вверх они растут, а дойдя до поверхности, лопаются. Если два пузырька соприкасаются, то они сливаются в один.

Для создания приложения необходимо выполнить следующие задачи:

· изучить процесс кипения;

· разработать алгоритм имитации кипения жидкости;

· разработать дружеский интерфейс;

· написать программный код;

· организовать многоклассовость проекта;

· организовать работу с файлами.

Ограничения, накладываемые на приложение:

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

· в приложении используется двухмерная графика;

· пользователь не может влиять на процесс кипения;

· в приложении происходит визуализация процесса кипения.

3. Среда разработки

Все современные интегрированные среды разработки приложений на Java, такие, как NetBeans IDE, SunJavaStudioCreator, IntelliJ IDEA, BorlandJBuilder, Eclipse, опираются на сервисы, предоставляемые JDK.

JavaDevelopmentKit (сокращенно JDK) - бесплатно распространяемый компанией OracleCorporation (ранее SumMicrosystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java(JRE).

Большинство из них для компиляции Java - программ используют компилятор из комплекта JDK. Поэтому эти среды разработки либо включают в комплект поставки одну из версий JDK, либо требуют для своей работы предварительной инсталляции JDK на машине разработчика [3].

Доступны полные исходные тексты JDK, включая исходные тексты самого Java - компилятора javac [3].

Существуют комплекты разработки приложений на Java других производителей, доступные для ряда платформ. Часть из них начиналась с исходного кода Sun JDK, часть - нет. Все они строго выполняют базовые спецификации Java, но обычно отличаются в областях, для которых нет явных спецификаций. Например, сборка мусора, стратегии компиляции и техники оптимизации [3].

Для реализации компьютерного приложения «Кипящая жидкость» была выбрана платформа netbeans, так как эта платформа является бесплатной, удобной в использовании, а так же позволяет разрабатывать удобный интерфейс с помощью SwingGUIBuilder.

4. Платформа Java

Под платформой понимают сочетание операционной системы и архитектуры компьютера.

Java -- это язык программирования, разработанный компанией SunMicrosystems в 1995 году. Это базовая технология, на которой основываются многие современные программы [3].

Любое приложение на Java - это набор классов, описывающих новые типы объектов. Исходный код любой программы на языке Java представляется обычными текстовыми файлами, которые могут быть созданы в любом текстовом редакторе или специализированном средстве разработки и имеют расширение java. Эти файлы подаются на вход Java- компилятора, который транслирует их в специальный Java байт-код.

Результат работы компилятора сохраняется в бинарных файлах с расширением class. Java-приложение, состоящее из таких файлов, подается на вход виртуальной машине, которая начинает их исполнять, или интерпретировать, так как сама является программой.

В Java применяется строгая типизация. Любая переменная и любое выражение имеет тип, известный уже на момент компиляции. Такой подход применен для упрощения выявления проблем, компилятор сразу сообщает об ошибках и указывает их расположение в коде. Поиск же исключительных ситуаций (exceptions - так в Java называются некорректные ситуации) во время исполнения программы (runtime) потребует сложного тестирования, при этом причина дефекта может обнаружиться совсем в другом классе. Немаловажное свойство Java - легкость в освоении.

Следующее важное свойство Java - безопасность. Изначальная нацеленность на распределенные приложения, и в особенности решение исполнять апплеты на клиентской машине, сделали вопрос защиты одним из самых приоритетных. При работе любой виртуальной машины Java действует целый комплекс мер.

Во-первых, это правила работы с памятью. Очистка памяти производится автоматически. Резервирование ее определяется JVM, а не компилятором, или явным образом из программы. Указатели по физическим адресам отсутствуют.

Во-вторых, наличие виртуальной машины-интерпретатора значительно облегчает отсечение опасного кода на каждом этапе работы. Сначала байт- код загружается в систему, как правило, в виде class-файлов. JVM тщательно проверяет, все ли они подчиняются общим правилам безопасности Java и не созданы ли злоумышленниками с помощью каких-то других средств (и не искажены ли при передаче). Затем, во время исполнения программы, интерпретатор легко может проверить каждое действие на допустимость. Возможности классов, которые были загружены с локального диска или по сети, существенно различаются.

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

Совокупность описанных свойств Java позволяет утверждать, что язык весьма приспособлен для разработки Internet- и интернет (внутренние сети корпораций)-приложений.

Отличительная особенность Java - это его динамичность. Язык очень удачно задуман, в его развитии участвуют сотни тысяч разработчиков и многие крупные компании.

5. Алгоритм решения задачи

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

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

Если номер текущей итерации достиг значения intensivity, сбросить счётчик итераций, создать новый пузырь и поместить его в список пузырей. Новый пузырь создаётся в диапазоне [rad; width-rad], где rad - радиус пузыря, а width - ширина сосуда. Скорость движения пузыря принимает случайное значение в заданном диапазоне.

Затем для каждого пузыря производится проверка выхода за границы контейнера. Если координата пузыря по оси ординат больше высоты сосуда, то пузырь считается всплывшим и удаляется из списка пузырей. Если пузырь достиг крайнего положения по оси абсцисс, меняем направление его движения на противоположное. Иначе - производится перемещение вверх и рост пузыря.

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

6. Реализация

Приложение состоит из пяти классов. В классе Mains, который наследуется от класса JFrame, происходит создание главного меню приложения. В конструкторе данного класса происходит создание и позиционирование на форме элементов управления, а именно кнопок «Старт», «О программе» и «Выход». Устанавливаются свойства окна меню, в том числе его заголовок. Для каждой из кнопок устанавливается соответствующий обработчик нажатия. В методе paint происходит отрисовка фона меню и надписи - заголовка.

При нажатии на кнопку «Старт» в меню происходит создание экземпляра класса Form, наследуемого от класса JComponent. Данный класс содержит методы для создания и вывода пузырьков кипящей жидкости на экран. В конструкторе класса производится инициализация свойств окна, в котором производится вывод пузырьков, а также создание и запуск таймера, выполняющего работу основного цикла приложения. На каждой итерации цикла производятся следующие действия: если наступила p-я итерация цикла - создать новый пузырь и сбросить счётчик итераций. Затем для каждого пузырька производится вызов метода next, для генерации следующей позиции пузырька и проверка на условие выхода за границы сосуда. Если пузырь вышел за границы сосуда - он удаляется из списка пузырей. В конце цикла производится вызов метода repaint для перерисовки окна.

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

Классы Size и Position предназначены для хранения и выдачи, соответственно, размеров и позиции объекта. Они содержат методы получения и установки значений соответствующих атрибутов.

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

7. Результаты

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

При запуске приложения открывается стартовое окно - главное меню приложения, которое представлено на рисунке 7.1.

Рисунок 7.1 - Стартовое окно приложения

При нажатии на кнопку «О программе» открывается диалоговое окно, в котором представлен справочный материал о программе. Внешний вид диалогового окна можно наблюдать на рисунке 7.2.

Рисунок 7.2 - Диалоговое окно «О программе»

При нажатии на кнопку «Старт» открывается окно с рабочей областью приложения, в котором пользователь может наблюдать демонстрацию процесса кипения. Это окно представлено на рисунке 7.3.

Рисунок 7.3 - Демонстрация процесса кипения

Заключение

В результате вычислительной практики были рассмотрены задачи кафедры ЭМИС, на которой проходила практика, сформулирована цель, которая заключается в создании игрового компьютерного приложения «Кипящая жидкость», были поставлены такие задачи, как:

· изучить процесс кипения;

· разработать алгоритм имитации кипения жидкости;

· разработать дружеский интерфейс;

· организовать многоклассовость проекта;

· организовать работу с файлами.

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

В ходе реализации проекта был получен опыт создания приложений с графическим пользовательским интерфейсом, опираясь на язык программирования Java, а также реализовано игровое компьютерное приложение «Кипящая жидкость».

Приложение отлажено и протестировано.

Список использованных источников

1. Кафедра экономической математики, информатики и статистики (ЭМИС) [электронный ресурс]. - Официальный информационный портал университета. - URL: http://www.tusur.ru/ru/faculties/ekf/chairs/emis (дата обращения: 8.07.2014).

2. Томский университет систем управления и радиоэлектроники [Электронный ресурс]. URL: http://www.tusur.ru/ (дата обращения 15.08.2014)

3. Начало работы с платформой Eclipse - К. Анищук, Д. Галлардо [Электронный ресурс]. - DeveloperWorks. - URL: http://www.ibm.com/developerworks/ru/library/os-eclipse-platform/ (дата обращения: 2.07.2014).

4. Язык программирования Java - К. Арнольд, Д. Гослинг - Санкт - Петербург: изд - во Питер, 1997 г., 304 стр.

5. Программирование на Java - Н.А. Вязовик - Санкт - Петербург: изд - во Питер, 2003 г., 590 стр.

6. Наследование [Электронный ресурс]. URL: http://developer.alexanderklimov.ru/android/java/extends.php (дата обращения 24.08.2014).

7. Наследование и полиморфизм. [Электронный ресурс]. URL: http://2programmer.ru/java/494 (дата обращения 24.08.2014).

8. Инкапсуляция [Электронный ресурс]. URL: http://2rrr.ru/?Osnovy_obtzektno-orientirovannogo_programmirovaniya:Inkapsulyaciya (дата обращения 12.08.2014).

Размещено на Allbest.ru


Подобные документы

  • Основные принципы написания оконных приложений с графическим интерфейсом на языке Java в среде Eclipse. Управление компоновками компонентов: показ диалоговых окон, вывод графической информации. Структура приложения и размещение элементов интерфейса.

    лабораторная работа [1,1 M], добавлен 01.05.2014

  • Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.

    курсовая работа [1,0 M], добавлен 16.12.2012

  • Создание многоуровневого приложения с Web-интерфейсом выставления оценки фильму и просмотра оценок других пользователей. Клиентская часть приложения. Разработка многопользовательского веб-приложения на ASP.NET MVC 3 с разграничением доступа к данным.

    курсовая работа [949,7 K], добавлен 22.02.2015

  • Создание приложения для Android на языке Java. Переключатель языка и варианты перевода, которые появляются, когда пользователь вводит текст в поле. Возможность просмотра истории переводов. Разработка и подготовка вида экранов тестового приложения.

    курсовая работа [114,8 K], добавлен 03.08.2017

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

    курсовая работа [352,0 K], добавлен 24.08.2016

  • Описание языков программирования Java и JavaFX. Среда разработки NetBeans и класс численных методов. Архитектура и принцип работы апплета с понятным пользовательским интерфейсом. Разработка алгоритма программы на примере модели межвидовой конкуренции.

    курсовая работа [1023,2 K], добавлен 19.09.2012

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.04.2017

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

    курсовая работа [561,9 K], добавлен 28.08.2019

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.