ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.04.2020
Просмотров: 2108
Скачиваний: 6
Программа тестирования получает имя файла теста как результат функции ParamStr(1). Реализация программы предполагает, что если имя файла задано без указания пути к нему, то файл теста находится в том же каталоге что и программа тестирования. Открывается файл теста следующим образом, сначала обращением к процедуре AssignFile имя файла связывается с файловой переменной, а затем вызывается инструкция открытия файла для чтения.
После успешного открытия файла вызывается процедура Info, которая считывает из файла информацию о тесте и выводит её присваиванием прочитанного текста свойству Caption поля метки Label5. затем вызывается процедура GetLevel, которая считывает из файла теста информацию об уровнях оценки. Эта процедура заполняет массивы level и mes в которые заносится информация о количестве баллов соответствующих определенному уровню и текст сообщения соответствующего данному уровню.
После вывода информационного сообщения программа ждет, когда пользователь нажмет кнопку «OK».
Командная кнопка Button1 используется для:
- аварийного завершения работы приложения, в случае если файла теста
не существует;
- начала тестирования после прочтения информационного сообщения;
- перехода к следующему вопросу после выбора одного из предложенных
ответов;
- завершения работы программы после прочтения результатов тестирова-
ния.
Свойство Tag кнопки Button1 используется для идентификации текущего состояния формы и выбора действия при щелчке кнопки Button1. по умолчанию значение свойства Tag равно нулю.
После успешного вывода информации о тесте значение Tag равно нулю. Поэтому после щелчка кнопки Button1 выполняется та часть программы, которая обеспечивает вывод первого вопроса, замену текста кнопки «OK» на текст «Дальше», делает выбранным переключатель RadioButton5, который закрыт панель и поэтому не виден пользователю. Кроме того, установкой значения False свойству Enabled кнопка Button1 делается недоступной, тем самым блокируется переход к следующему вопросу до тех пор, пока не выбран альтернативный ответ. Значению свойства Button1.Tag присваивается единица, тем самым осуществляется подготовка к обработке следующего щелчка кнопки Button1.
После выбора ответа и нажатия кнопки «Дальше» к набранной сумме баллов прибавляется количество баллов за выбранный ответ. Затем, если не достигнут конец файла, вызывается процедура вывода очередного вопроса. Если конец файла достигнут, то сначала закрывается файл теста, изменяется текст на кнопке Button1 и значение Button1.Tag, а затем посредством процедуры Itog выводятся результаты тестирования.
Если значение Button1.Tag равно двум, то применением метода Close к форме Form1 закрывается окно программы, в результате чего программа завершает работу.
Вывод вопроса и альтернативных ответов выполняет процедура VoprosToScr. Сначала процедура увеличивает счетчик вопросов vopros и присвоением значения свойству Caption формы выводит номер текущего вопроса в заголовок окна. После вывода текста вопроса делается проверка признака конца вопроса.
Так как количество символов в тексте вопроса и число альтернативных ответов от вопроса к вопросу может меняться, и, следовательно, на экране они могут занимать разное количество строк, то каждый раз перед выводом текста очередного ответа устанавливается значение свойства Top как расстояние от нижней границы предыдущего альтернативного ответа. Для поля вывода первого альтернативного ответа Label1 значение Top вычисляется от нижней границы поля вопроса Label5. выбор ответа пользователь осуществляет щелчком одной из радиокнопок. После вывода вопроса ни один из переключателей, соответствующих альтернативному ответу, не является выбранным. Выбран только переключатель RadioButton5, который находится за панелью Panel1 и поэтому не виден пользователю.
Для обработки события OnClick радиокнопок RadioButton1, RadioButton2, RadioButton3 и RadioButton4 в программе используются процедуры TForm1.RadioButton1Click, TForm1.RadioButton2Click, TForm1.RadioButton3Click и TForm1.RadioButton4Click соответственно. Эти процедуры возвращают в качестве ответа идентификатор объекта, на котором произошло событие, данным идентификатором является значение глобальной переменной otv, которая используется процедурой VoprosToScr для увеличения набранной суммы баллов. Кроме того, рассмотренные процедуры делают доступной кнопку перехода к следующему вопросу Button1, которая после вывода очередного вопроса недоступна.
Процедура Itog, сравнивая набранную сумму баллов summa со значением элементов массива level, определяет, какого уровня достиг испытуемый, и выводит соответствующее сообщение присвоением значения свойству Label5.Caption.
4 РАЗРАБОТКА ТЕОРЕТИЧЕСКОЙ ЧАСТИ ММУП
Разрабатываемая программа является мультимедийной, что означает наличие различных видов представления информации, таких как текст, видеоизображения или анимированные сцены. Для различных видов отображения информации применяются различные способы их реализации.
4.1 Реализация приложения
Запускаемым файлом разрабатываемой мультимедийной управляющей программы является файл index.hta, его структура имеет следующий вид:
<HTML>
<HEAD>
<TITLE>Специальные двигатели систем управления</TITLE>
<HTA:APPLICATION ID=«WINTOURHTA»
APPLICATIONNAME=«wintour»
BORDER=«thick»
BORDERSTYLE=«normal»
CAPTION=«yes»
ICON=«images/1.ico»
MAXIMIZEBUTTON=«yes»
MINIMIZEBUTTON=«yes»
SHOWINTASKBAR=«yes»
SINGLEINSTANCE=«yes»
SYSMENU=«yes»
VERSION=«1.0»
WINDOWSTATE=«normal»>
</HEAD>
<FRAMESET ROWS=«0,*» FRAMEBORDER=«0» FRAMESPACING=«0» border=«0»>
<FRAME NAME=«toplogo» SRC=«top_logo.htm» NORESIZE SCROLLING=«no» APPLICATION=«yes» TABINDEX=«-1»>
<FRAME SRC=«MAIN.HTM» NAME=«MAIN»>
</FRAMESET>
</BODY>
</HTML>
В данном файле осуществляется первоначальное присвоение свойств приложения. Последовательность символов, заключенных между тэгами разметки <HEAD> и </HEAD> представляет собой набор свойств приложения. Текст, размещенный между метками <TITLE> и </TITLE>, является именем приложения, отображаемым в заголовке окна приложения и в панели задач Windows. затем происходит присвоение свойств гипертекстового приложения Hyper Text Application. Application Id = «Wintourhta» – идентификатор приложения. Application name = «Wintour» – имя приложения. Border = «Thick» – тип границ формы приложения. Border style = «Normal» – стиль отображения границ. Caption = «Yes» – разрешение оглашения заголовка приложения. Icon = «Images/1.ico» – путь к иконке приложения. Maximize button = «Yes» – наличие кнопки «Восстановить». Minimize button = «Yes» – наличие кнопки «Свернуть». Show in taskbar = «Yes» – включение отображения названия приложения в панели задач. Sysmenu = «Yes» – наличие системного меню приложения. Version = «1.0» – номер версии приложения.
Далее идет разбиение основного окна программы на фреймы. Нижеследующая команда разметки резервирует место для логотипа, который может быть размещен в верхнем окне программы. Логотип должен быть описан в файле top_logo.htm. В данном случае логотип деактивирован. Основное окно программы формируется с помощью разметки файла main.htm.
Разметка файла main.htm имеет вид:
<html>
<head>
</head>
<frameset rows=50,*>
<frame src=«menu1.htm» name=«menu1» NORESIZE SCROLLING=«no»>
<frameset cols=170,*>
<frame src=«menu2.htm» name=«menu2» NORESIZE SCROLLING=«auto»>
<frame src=«window.htm» name=«window» NORESIZE SCROLLING=«auto»>
</frameset>
</frameset>
</html>
В данном файле происходит разбиение основного окна программы на три внутренних окна. Первое окно представляет собой меню, расположенное горизонтально в верхней части окна. Содержание окна формируется файлом menu1.htm. Имя окна – «menu1». Окно не меняет своего размера при неизменном главном окне, полоса прокрутки не появляется. Второе окно – окно навигации, расположенное вертикально в левой части главного окна. Содержание окна формируется файлом menu2.htm. Имя окна – «menu2». Окно не меняет своего размера при неизменном главном окне, полоса прокрутки появляется автоматически. Оставшаяся часть окна представляет собой информационное поле программы. В нем отображается теоретическая часть разработанной мультимедийной управляющей программы.
4.2 Создание анимации
При создании анимационных сцен представляющих одну из важнейших составляющих ММУП использовались программные продукты 3D Studio Max 3.1 и Macromedia Flash 4. Программный пакет 3D Studio Max представляет собой всеобъемлющее средство разработки, представления и визуализации трехмерных анимированных сцен. Macromedia Flash представляет собой программный пакет для работы с векторными изображениями. Благодаря отлаженным алгоритмам сжатия анимационные сцены, полученные в результате работы, занимают мало места на диске, вместе с тем в полной мере осуществлена возможность анимации.
Трехмерные видеоролики применяются для анимации сложных трехмерных объектов. Это необходимо в случае демонстрации устройства какого либо объекта изучения. Трехмерное изображение позволяет наиболее глубоко понять строение и принцип действия объекта изучения. Это снимает вопросы, которые могли возникнуть при изучении предмета.
Рассмотрим процесс создания трехмерной сцены, изображающей статор асинхронного двигателя с указанием элементов его конструкции.
Создание статора начинается с создания корпуса двигателя. Для этого на вкладке «Создать» выбирается раздел «Геометрия». Затем в выпадающем меню активируется категория «Стандартные примитивы», выбирается тип объекта «Труба». Задаются необходимые размеры объекта.
В данном объекте также были созданы следующие подобъекты. Для обмотки статора и внутренней поверхности корпуса статора применялся примитив «Труба». Основание и платформа для закрепления двигателя составлены из трех объектов типа «Параллелепипед».
Для наиболее полного соответствия изображения реальному объекту применяются стандартные материалы из библиотеки материалов 3D Studio Max. Для внутренней поверхности статора применялся материал Metal Chrome. Для кожуха двигателя применялся материал Metal Wall. Для эмуляции обмотки статора наиболее подходящим является материал Fabric Tan Carpet. Для основания корпуса применялся материал Metal Plate.
Рисунок 6 – Модель статора асинхронного двигателя
После создания центрального объекта сцены необходимо внести в сцену элемент анимации. Для этого применяется обход камерой объекта по спиральной траектории. Этот вид траектории позволяет за один обход камерой объекта продемонстрировать наибольшее количество его визуальных свойств. Для этого первоначально создается объект «Спираль». Инструмент для его создания находится на вкладке «Создать» выбирается раздел «Фигуры», затем в выпадающем меню активируется категория «Сплайны», выбирается тип объекта «спираль». Задаются необходимые размеры траектории облета. Далее необходимо создать объект «Камера». Для применения объекта «Спираль» в качестве контроллера анимации на вкладке «Движение» при выбранной камере выбирается категория «Траектории» и в разделе «Преобразование сплайна» выбирается команда «Преобразовать из». Затем задаются временные параметры, и производится щелчок по предполагаемому контроллеру траектории. В данном случае это объект «Спираль». Затем производится процесс визуализации. Аналогичным образом производится анимация других объектов.
Двумерные анимационные сцены предназначены для визуализации процессов, поясняемых при помощи двумерных схем. Внедрение анимации, согласующейся с текстовым описанием процесса, помогает легче воспринять и запомнить предлагаемый материал.
Двумерные анимационные сцены создавались с помощью программы Macromedia Flash 4. Ключевыми понятиями анимационных принципов данной программы являются Motion Tween – движущийся объект-дубликат и Layer – слой. Для любого из объектов, изображенных на рисунке, можно создать анимированную последовательность кадров, создав для него движущийся объект-дубликат. Движение осуществляется посредством задания определенного набора свойств объекта в ключевых точках траектории его движения. При этом следует располагать объекты таким образом, чтобы при создании последовательности ключевых положений на каждом из слоев располагался отдельный объект. Если на одном слое будут расположены несколько объектов, то все они будут объединены в один объект Motion Tween. И манипуляции с каждым объектом по отдельности будут недоступны.
Рисунок 7 – Схема пуска асинхронного двигателя
При создании анимированной схемы пуска асинхронного двигателя способом переключения «звезда – треугольник» на первом слое располагались статичные объекты, такие как надписи, условные обозначения и изображение проводов. Каждый из движущихся объектов располагался на отдельном слое и обладал своим набором ключевых свойств.
4.3 Создание текстовой составляющей ММУП
Одним из этапов создания ММУП является компоновка пояснительного текста. Информационная часть была сформирована с использованием источников [10], [11], [12].Этот процесс осуществлялся с использованием различных программ. Текстовая часть была создана с помощью текстового редактора Microsoft Word. После создания страницы ее содержимое конвертировалось в формат HTML. Затем в непосредственно в файл HTML вносились соответствующие тэги, формирующие необходимые гиперссылки и создающие элементы управления видеоизображением.
Текст тега гиперссылки имеет вид:
<A HREF=«pusk.htm» TARGET=«window»>Пуск двигателя</A>
В данном случае <A> и </A> выделяют текст, являющийся гиперссылкой. Href = «pusk.htm» указывает на файл, служащий целью перехода по гиперссылке. Target = «window» показывает, что содержание, находящееся в файле pusk.htm должно отобразиться в окне window основного окна разрабатываемого приложения.
Рассмотрим тэг, создающий в тексте Web-страницы элементы управления Windows Media:
<EMBED src=«rotor.avi» width=«500» height=«325» controls=«smallconsole» autostart=«false» loop=«false» hidden=«false»></EMBDED>
Текст, размещаемый между тэгами <EMBDED> и </EMBDED>, представляет собой набор свойств элемента управления. Src = «rotor.avi» означает что будет воспроизводиться файл rotor.avi. Width = «500», height = «325» резервируют место для изображения и обозначают соответственно его ширину и высоту в пикселях. Следует учитывать, что при указании значения высоты к реальному размеру изображения прибавляют высоту элементов управления равную 47 пикселям. Controls = «smallconsole» разрешает отображение только основных элементов управления. Autostart = «false» запрещает автозапуск ролика, воспроизведение будет осуществляться только при нажатии пользователем соответствующей клавиши. Loop = «false» запрещает автоматическое повторное воспроизведение. Hidden = «false» запрещает скрытие изображения.