Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 422; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.134.161 (0.011 с.) |