Элементы пользовательского интерфейса
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Окно AnyLogic в начале работы над новой моделью показано на рисунке 2.2, где в верхней части находится строка меню и панели инструментов. В центре расположена область построения модели – Графический редактор (вкладка Main). По периферии – рабочие панели среды моделирования с соответствующими вкладками и кнопками управления размерами. Их можно вынести за пределы главного окна AnyLogic или закрыть совсем.

 

 

Рисунок 2.2 – Главное окно AnyLogic

 

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

 

 

Рисунок 2.3 – Меню выбора рабочих окон

 

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

В панели проектов AnyLogic отображаются древовидные диаграммы вновь созданных и загруженных с диска моделей. Если перед окончанием сеанса работы с программой они не были закрыты специальной командой меню Файл–Закрыть, то при очередном запуске AnyLogic он загрузит их в рабочую среду и покажет в окне проектов. Эта опция весьма полезна, так как позволяет легко переносить (копировать) из одной модели в другую элементы, фрагменты кода и готовые классы.

В начале работы с моделью дерево проекта содержит, как минимум, два компонента: класс активного объекта Main (главный класс, агент верхнего уровня) и простой эксперимент Simulation:Main.

Модель запускается в виде имитационного эксперимента кнопкой на панели инструментов или клавишей F5. Процесс отображается в специальном окне презентации. На начальном этапе проект представляет собой «пустую» заготовку, поэтому интерфейс и детали настроек эксперимента и окна презентации рассмотрим позже.

Создание модели в общем виде сводится к последовательному размещению в окне графического редактора функциональных элементов, определению их свойств, разработке новых классов и блоков программного кода и проведению экспериментов. Неизбежные спутники на этом пути – ошибки. Они отображаются в специальном окне с указанием места или объекта и достаточно подробным описанием проблемы на русском языке. Полезной будет подсказка кода, вызываемая комбинацией клавиш Ctrl-Space, и отладчик, доступный в профессиональной версии AnyLogic.



Лабораторная работа № 1. Моделирование упрощенного калькулятора

Цель работы: построить функциональную модель калькулятора. С помощью цифровых кнопок набирается значение «n», которое отображается на «цифровом табло». Кнопкой Backspace можно последовательно убирать последние цифры. Нажатие кнопки n! приводит к появлению значения факториала в цифровом табло. Нажатие кнопки С (Clear) очищает табло.

Нам понадобятся две переменные, элементы управления, элементы презентации, а также фрагменты, определяющие логику модели.

Содержание работы

1) Последовательно выберем пункты меню Файл/Создать/Модель или щелкнем по пиктограмме палитры инструментов. Открывается диалоговое окно начальных настроек модели (рисунок 2.4).

 

 

Рисунок - 2.4. Окно начальных настроек

 

По умолчанию AnyLogic предлагает имя проекта, в виде: Model#, где # – номер, соответствующий порядку создания модели.

Изменим его на Factorial и, если необходимо, выберем другое местоположение, где будут сохраняться все файлы модели. Поскольку используются язык Java, компоненты приложения (классы) собираются в пакеты. Таким образом, в AnyLogic можно создавать несколько моделей с разными именами, хранящих ресурсы в одном пакете. При попытке сохранить модель под новым именем, например, Factorial_1 – пункт меню Файл/Сохранить как – имя пакета по умолчанию останется прежним.

Если его не изменить (например на factorial_1), то появятся две модели с разными именами и общим пакетом. Одновременно работать с ними (загружать оба проекта) будет нельзя.

Нажмем кнопку Готово.

2) Первая переменная будет принимать значение n, набираемое с помощью кнопок. Раскроем закладку палитры элементов. Перетащим в окно графического редактора элемент Переменная, как показано на рисунок 2.6.

 

Рисунок - 2.6 Перетаскивание элемента Переменная в окно графического редактора

 

3) Изменим свойства переменой в соответствии с рисунок  2.7.

 

 

Рисунок - 2.7 Панель свойств переменной

 

4) Изменим имя со стандартного variable на n_Str. Учтем правила языка Java. Так как это объекты, их имена (а также имена методов) должны начинаться со строчной буквы. Всем переменным AnyLogic устанавливает по умолчанию тип double (вещественный) и начальное значение, равное нулю (если его не изменить, в поле Начальное значение не показывается).

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

Изменим тип переменной на String (строковый) и установим c помощью двух кавычек ее начальное значение («пустая строка»). В противном случае оно всегда будет null (так как это переменная ссылочного типа).

5) Введем в модель вторую переменную, которая будет принимать конечное значение параметра цикла, необходимое для вычисления факториала. Для этого повторим шаг 1. Изменим стандартное имя переменной на n. В свойствах переменной установим тип int (целый).

6) Добавим в модель элемент Текст из группы палитры инструментов Презентация. Он будет отображать на табло введенное кнопками число n. Внесем изменения на панели свойств (рисунок 2.8).

 

Рисунок 2.8 - Панель свойств элемента Текст (стрелками показаны измененные свойства)

 

7) Добавим в еще один элемент Текст. Назовем его textFact. Он будет показывать значение факториала на табло. Повторим для него операции шага 6. Выравнивание установим по левому краю.

8) Поместим в поле графического редактора кнопку из группы Элементы управления. Чтобы сразу получить убедительный результат вычислений, пусть это будет кнопка с цифрой «3» (3!=6) (рисунок 2.9).

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

 

 

Рисунок 2.9 - Панель свойств элемента Кнопка (стрелками показаны измененные свойства)

 

10) Впервые в модели появляется фрагмент кода на языке Java. Это всего лишь две строки. Первая изменяет значение текстовой переменной, вторая вызывает метод setText() элемента (объекта) textNum. При вычислении факториала невозможно напрямую использовать строковое представление числа в переменной n_Str, поэтому в первой строке кода «извлекаем» его с помощью класса-оболочки Integer и присваиваем результат переменной n. Вычисление факториала будем осуществлять с помощью цикла с параметром. В теле кода объявим вспомогательные переменные fact (тип вещественный) и параметр цикла i (целый), пробегающий значения от 1 до n.

Выполнение двух последних строк кода будет приводить к изменению соответствующих текстовых элементов. В textNum появятся значение n, символы «!» и «=». В textFact отобразится значение факториала.

 

Рисунок 2.11 - Вычисление факториала по щелчку кнопки

 

11) Запустим модель с помощью кнопки на панели инструментов или клавиши F5. Вначале откроется Окно настроек эксперимента (рисунок 2.11).

 

Рисунок 2.11 - Окно настроек эксперимента

 

Щелчком по кнопке запуска модели попадаем в Окно презентации. Модель работает. Последовательно нажимаем кнопки «3» и «n!». Текстовые элементы отображают корректный результат (рисунок 2.12).

 

 

Рисунок 2.12 - Вид окна работающей модели

 

Дальнейшие действия будут сводиться к добавлению кнопок, оформлению дизайна «калькулятора» и вида готового приложения.

12) Поместим элементы в соответствующие позиции. Цифровые кнопки «размножим» с помощью операций последовательного копирования-вставки уже имеющейся у нас кнопки «3». Они будут наследовать ее свойства, включая размеры и код. Необходимо изменить пункты свойств Имя кнопки, Метка и Действие (код). Так, для кнопки «0», код действий примет вид:

n_Str+=0;

textNum.setText(n_Str);

 

13) Напишем фрагмент кода для кнопки «С» (Clear):

n_Str="";

textNum.setText("n_Str ");

textFact.setText("");

         

Щелчок по ней приведет к начальным значениям строковой переменой n_Str и двух текстовых элементов, отображающих ввод n и вывод n!

Состояние модели на данном этапе показано на рисунке 2.13.

 

Рисунок 2.13 – Вид модели на шаге 13

 

14) Окончательная стадия разработки модели. Поместим в окно графического редактора элемент Скругленный прямоугольник из палитры Презентация. Он будет выполнять функцию электронного табло калькулятора. Подгоним его размеры под ширину клавиатуры. Чтобы он не закрывал текстовые элементы, щелчком правой клавиши мыши вызовем контекстное меню Порядок–На задний план.

В свойствах Радиус уменьшим радиус углов с 10 до 5 (рисунок 2.14).

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

Немного увеличим размер второго прямоугольника.

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

В панели проектов мышью щелкнем по элементу Simulation:Main, затем по frame (рамка). Рядом с окном графического редактора появится закладка Simulation. Для показа калькулятора и работы с ним вместе с необходимыми полями, достаточно области размером 350 точек по горизонтали и 400 по вертикали. Изменим Свойства рамки в соответствии с этими значениями, затем скорректируем другие элементы. В окончательном варианте приложение примет вид, как на рисунке 2.15.

 

 

Рисунок 2.14 – Настройка электронного табло

 

 


Рисунок  2.15 - Окончательный вариант модели

 

Дата: 2019-03-05, просмотров: 284.