Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Логическое проектирование приложенияСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Настольное приложение испольуюет GUI для взаимодействия с пользователем. Предлагается ввести координаты точек, либо вырбрать контрольный пример. После завершения экспериментов выводится таблица результатов. Схема приложения показана на рис.4 Рис. 4. Схема программы настольного приложения В процессе создания приложения были спроектированы классы и методы, которые отображены на рис.5
Рис. 5. Структура приложения WPF В настольном приложении определены следующие классы:
В классе Point определены следующие типы данных и методы: · double x, double y – координаты х и у соответствующей точки · конструкторы · get Curve · getRand В классе Rect определены следующие данные и методы:
Cтруктура перечисленных классов, созданная средствами Microsoft Visual Studio, приведена на рис. 6. Пояснения по свойствам методов классов будут даны ниже.
Рис. 6. Классы Point и Rect Дадим краткие комментарии. Class Window – стандартный класс окна (формы) в приложении WPF. Он генерируется конструктором Visual Studio автоматически, и пересекается с файлом *.xaml, содержащим оформление этого окна. В этом классе определены следующие поля и методы: private void button_Click(object sender, RoutedEventArgs e) – это обработчики событий, соответствующие нажатию на ту или иную кнопку. double Ax, Ay, Bx, By, Cx, Ex – в эти переменные записываются введенные пользователем координаты, либо координаты, созданные случайным образом, производится их проверка на корректность и дальнейшее использование классом Point в качестве координат x и у. int n – количество точек, для которых проводится эксперимент. BitmapImage bitmap1, bitmap2, bitmap3, bitmap4, bitmap5- содержат 5 изображений, которые используются в настольном приложении в зависимости от того,какой случай четырехугольника будет рассматриваться. В классе Point определены следующие поля и методы: double x, y – содержат координаты х и у какой-либо точки public double getCurve(point one, point two, double x3) – рассчитывает уравнение прямой, для последующего использования в методе MonteCarlo(для определения принадлежности точки заданному четырехугольнику). В качестве аргументов принимает значения 2 точек(A,B или C,E) и координаты х случайной точки. public point getRand(double x, double y) – Создание новой точки для последующей генерации координат случайной точки в методе Монте-Карло. В классе Rect определены следующие поля и методы: point A,B,C,E – Содержат 4 вершины четырехугольника TimeSpan time – Время проведения эксперимента. Используется тип TimeSpan, так как к этому типу можно применять стандартную функцию для извлечения времени в миллисекундах. double points – Количество точек, попавших в четырехугольник. При каждом новом эксперименте это значение обнуляется. public double GetMinX(Rect ABCE) public double GetMinY(Rect ABCE) – Нахождение минимальных х и у, для расчета ширины и высоты описанного прямоугольника и задания диапазона значений для генератора случайных чисел. public double S_O_Rect(Rect ABCE) – Нахождение площади описанного четырехугольника. public double S_Monte(Rect ABCE, int n) – реализует алгоритм расчет площади методом Монте-Карло. Вначале определяется площадь описанного четырехугольника, затем на основании этого определяется диапазон координат случайных точек, после этого определяется принадлежность точки заданному четырехугольнику. При попадании точки, выполняется увеличение количества точек, попавших в четырехугольник. Результаты метода Монте-Карло(количество точек, попавшие точки, площадь Монте-Карло, погрешность, время) записываются в массив типа double, из которого потом в таблицу вносятся результаты. public double S_Teor(Rect ABCE) - вычисляет площадь прямоугольника ABCE по формулам геометрии. public double GetHeigth(Rect ABCE) public double GetWidth(Rect ABCE)- два метода для определения Высоты и ширины описанного четырехугольника 4.3 Тестирование приложения Результаты тестирования представлены на рис. 7
Рис. 7. Результат работы приложения WPF
5. Веб-приложение на базе скриптов haXe/PHP 5.1 Программные средства для разработки приложения Для разработки приложения была использована интегрированная среда разработки FlashDevelop, которая является свободной средой разработки и редактором, написанным на C#, позволяющим создавать Flash/Flex, MTASC или haXe (C++, JavaScript, PHP, Flash, NekoVM) приложения. Так же интегрированная среда разработки FlashDevelop является одной из альтернатив среды FlashBuilder для разработки веб-приложений (благодаря своей бесплатности и заметно большему быстродействию) хотя и не обладает всеми возможностями последнего. Поддерживает профилирование, отладку Adobe Flex и имеет умное автодополнение при написании кода на языке ActionScript. 5.2 Логическое проектирование Веб-приложение haXe/PHP является простой с точки зрения взаимодействия пользователя и программы, так как в ней отдельно реализуется интерфейс приложения(.html страница), и отдельно реализовывается страница(.hx), которая потом преобразовывается компилятором haxe в текст файлов на языке PHP и будет выполнять расчет площади Монте-Карло. Особенность языка haxe в том, что это универсальный объектно- ориентированный язык высокого уровня, синтаксис которого напоминает язык Java или C#.
Рисунок 8. Компилятор haXe Как видно из рисунка, особенностью этого языка является то, что программа, написанная на haxe может компилироваться во множество других различных языков(по умолчанию haxe поддерживает преобразование в php(как в нашем примере), Neko,.Java, swf файлы, но этот список можно значительно расширить, скачивая дополнительные языковые библиотеки с официального сайта, либо с помощью консольной команды haxelib install. Например, установка библиотеки для компиляции в файлы на языке C++, необходимо ввести следующую команду: >haxelib install cpp После этого, при установленном соединении с Интернетом, будет произведено скачивание с официального репозитория haxe, Расположенного по адресу http://lib.haxe.org и последующая установка данной библиотеки. При создании приложения на haxe, необходимо 1 раз написать исходный код на языке haxe, а потом выбирать, во что его компилировать. В нашем случае выходным языком будет являться PHP. Предположим, что файл исходного кода имеет название Main.hx. Чтобы получить из него PHP код, необходимо сделать следующее: · Создать файл с расширением.hxml · Занести в него директивы -cp src //Указание на компиляцию исходных кодов -php www //Указание выходной папки,куда будут помещены php файлы -main Main //Точка входа в программу · После этого требуется сохранить данный файл, и щелкнуть по нему два раза в проводнике Windows. При установке haXe этот тип файлов автоматически ассоциируется с файлом haxe.exe, который примет этот файл как параметры командной строки, и выполнит его компиляцию. Иными словами, мы создали командный файл, который автоматически выполняет действия, записанные в нем, не требуя их ручного вызова Если все прошло удачно, и исходный текст программы не содержит ошибок, компилятор создаст директорию www, которая будет являться файлами исходного кода на языке php, которые в дальнейшем требуется поместить в директорию с Web-сервером. Скажем несколько слов о Web-сервере. В нашем случае использовался Web-сервер Denwer, который распространяется свободно, обладает бесплатной поддержкой, прост в установке и обслуживании, и представляет собой идеальный вариант для новичков. Процесс установки начинается со скачивания дистрибьютива программы с сайта http://www.denwer.ru. После этого выполняется процесс установки. В итоге будет создан виртуальный диск, который будет представлять собой «мини копию» файловой системы LINUX. В комплект Denwer входят уже настроенные исполняемые файлы Web-Сервера Apache, языка PHP версии 5.2, Perl и так далее. Стандартный набор Денвер включает в себя: · Веб-сервер Apache с поддержкой SSI, SSL, mod_rewrite, mod_php · Интерпретатор PHP с поддержкой GD, MySQL, SQLite · СУБД MySQL с поддержкой транзакций (mysqld-max) · Система управления виртуальными хостами, основанная на шаблонах · Система управления запуском и завершением · Панель phpMyAdmin для администрирования СУБД · Ядро интерпретатора Perl без стандартных библиотек (поставляются отдельно) · Эмулятор sendmail и сервера SMTP с поддержкой работы совместно с PHP, Perl, Parser и др Структура файловой системы виртуального диска показана на рис. 9
Рис. 9. Файловая система Web-Сервера Denwer. Не будем подробно расписывать, что представляет из себя каждая конкретная папка, так как легко провести аналогию с системой LINUX. Отметим лишь то, что для развертывания Web-сайта необходимо создать в директории home папку, соответствующую названию нашего сайта, по которому мы хотим вызывать его из браузера. После этого, необходимо поместить полученную директорию www, созданную компилятором haxe в эту папку, и также добавить в нее html файлы и какие –либо другие данные, например рисунки(если это необходимо для реализации Web-сайта). При запуске Web-сервера, он добавляет в файл hosts записи, которые ассоциируют названия директорий из папки home с адресом 127.0.0.1, который означает, что мы будем по этому адресу обращаться к серверу, расположенному на локальной машине. При запуске требуется проверять, чтобы приложение запускалось с правами администратора, так как файл hosts является системным, и вносить в него изменения может только администратор. После этого, по указанному адресу будет доступен наш Web-сайт. Приложение строится на базе заранее подготовленной html-страницы, содержащей интерфейс взаимодействия с пользователем. Эта страница принимает данные от пользователя, проверяет корректность введенных данных, и отправляет их на обработку PHP-скрипту, который динамически формирует страницу, в зависимости от введенных результатов, содержащую отчет о проведенных экспериментах. Структура приложения Данное приложение состоит из двух модулей, один из реализует интерфейс пользователя(ввод координат), а второй реализует саму программу расчета по алгоритму Монте-Карло. Проект программы состоит из следующих файлов: Index.html – модуль, содержащий интерфейс взаимодействия с пользователем(GUI). Представляет собой документ html-разметки.
Рисунок 10. Пользовательский интерфейс приложения haXe/PHP Main.hx – модуль, содержащий функции, реализующие логику программы. При компиляции, на его основе, создаются PHP-файлы.
Рисунок 11. Результаты эксперимента haXe/PHP Проектирование приложения. Приложение состоит из страницы index.html реализующей пользовательский интерфейс и страницы index.php, которая была автоматически сгенерирована компилятором haXe, и содержит в себе алгоритм расчета площади по методу Монте-Карло. После заполнения пользователем входных данных и нажатия клавиши “Рассчитать”, данные с помощью метода Post передаются на вход скрипту, который производит математические вычисления. После завершения работы, отображается страница с результатами эксперимента. В процессе создания приложения на языке haxe были спроектированы следующие функции и классы: Class Main Static function main() - определяют точку входа в программу. Static function Math_Square – вычисление площади четырехугольника по правилам геометрии. static function getCurve - вывод уравнения прямой, для проверки принадлежности точки четырехугольнику(используется в функции MonteKarlo_Square) static function MonteKarlo_Square – собственно сам метод Монте-Карло. Вначале определяется площадь описанного четырехугольника, затем на основании этого определяется диапазон координат случайных точек, после этого определяется принадлежность точки заданному четырехугольнику. При попадании точки, выполняется увеличение количества точек, попавших в четырехугольник. В листинге приведено определение попадания точки в четырехугольник: Листинг №1. Определение попадания точки в четырехугольник. haXe. if(x3<x4) //esli c<e(slychai 1) { if(randx<x2) { newy = getCurve(x1,y1,x2,y2,randx); if(randy<=newy) { points+=1; } } if(randx==x2) { points+=1; } if(randx==x3) { points+=1; } if(randx>x2&&randx<x3) { points+=1;
} if(randx>x3) { newy= getCurve(x3,y3,x4,y4,randx); if(randy>=newy) { points+=1; } } } if(x3==x4) //esli c==e(slychai 2) { if(randx<x2) { newy = getCurve(x1,y1,x2,y2,randx); if(randy<=newy) { points+=1; } }
if(randx>=x2&&randx<=x3) { points+=1; } } if(x3>x4) //esli c>e(slychai 3) { if(randx<x2) { newy = getCurve(x1,y1,x2,y2,randx); if(randy<=newy) { points+=1; } } if(randx==x2) { points+=1; } if(randx==x3) { points+=1; } if(randx==x4) { points+=1; } if(randx>x2&&randx<x4) { points+=1; } if(randx>x4&&randx<x3) { newy = getCurve(x3,y3,x4,y4,randx); if(randy>=newy) { points+=1; } }
6. Клиент-Серверное приложение на базе ASP.NET
|
||
|
Последнее изменение этой страницы: 2016-09-20; просмотров: 543; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.) |