Автор работы: Пользователь скрыл имя, 25 Декабря 2011 в 02:57, курсовая работа
Целью курсовой работы является исследование вычислительной эффективности технологий программирования, включая веб-технологии, а также закрепление знаний, полученных в курсе “Технологии программирования”.
Введение 5
1 Постановка задачи 7
2 Разработка технического задания 9
2.1 Анализ задачи проектирования 9
2.2 Технические требования 11
3 Алгоритм решения задачи 13
3.1 Метод Монте-Карло 13
3.2 Определение попадания точки внутрь треугольника 13
4 Настольное консольное приложение 16
4.1 Среда разработки MS Visual Studio 2010 16
4.2 Логическое проектирование приложения 16
4.3 Результаты работы приложения 18
4.4 Системные требования 18
4.5 Руководство системного программиста 19
4.6 Руководство программиста 19
4.7 Руководство пользователя 20
5 Web приложение на базе скриптового языка Perl 22
5.1 Инструментальные средства разработки 22
23
5.2. Реализация приложения 23
5.3. Результаты работы приложения. 26
5.4. Руководство программиста 27
5.5. Руководство системного программиста 27
5.7. Системные требования 28
6 Web-приложение на базе WPF и Web-сервисов ASP.NET 29
6.1 Программные средства разработки приложения 29
6.2 Логическое проектирование приложения 30
6.3 Генерирование прокси-класса 33
6.4 Системные требования 34
6.5 Руководство системного программиста 34
6.6 Руководство программиста 35
6.7 Руководство пользователя 38
6.8 Тестирование приложения 39
7 Настольное приложение на языке F# 40
7.1 Инструментальные средства разработки 40
7.2 Логическое проектирование приложения 40
7.3 Результат работы приложения 42
Результат работы консольного приложения представлен на Рис. 11. 42
7.4 Системные требования 43
7.5 Руководство системного программиста 43
7.6 Руководство программиста 43
7.7 Руководство пользователя 44
8 Анализ вычислительной эффективности 46
Заключение 48
Список использованных источников 49
При
обращении к виртуальному каталогу,
содержащему данное приложение, автоматически
в браузер загружается HTML-
На странице Index.html реализуется ввод данных пользователем в таблицу (координат вершин треугольника, площадь которого необходимо посчитать). После чего, при нажатии на кнопку «Вычислить», введенные данные будут отправлены с помощью метода Post в скрипт Script.pl, который будет производить необходимые вычисления. Код, реализующий выше приведенные действия, выглядит следующим образом:
Реализация передачи данных странице Script.pl:
<form name="Form"
action="http://localhost/cgi/
Оформление таблицы, в которую пользователь должен ввести координаты вершин треугольника:
<table border=0>
…
</table>
Вывод рисунка, иллюстрирующего расположение треугольника и описывающего его прямоугольника в системе координат:
<td> <img src="zadanie.jpg"> </td>
Реализация полей, в которые будут вводиться данные:
<table border=0>
<td> <img src="zadanie.jpg"> </td>
<td>
<B><FONT SIZE=4 COLOR=GREEN>Пример
<pre>
<input style="width: 35px; vertical-align: middle; text-align: center; " type="text" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center; color=#008000" value="X" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center; color=#008000" value="Y" readonly="readOnly">
<input style="width: 35px; vertical-align: middle; text-align: center; COLOR=#008000" type="text"value="E" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="ex" value="90"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="ey" value="100">
<input style="width: 35px; vertical-align: middle; text-align: center; COLOR=#008000" type="text"value="B" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="bx" value="25"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="by" value="0" readonly="readOnly">
<input style="width: 35px; vertical-align: middle; text-align: center; COLOR=#008000" type="text" value="C" readonly="readOnly"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="cx" value="50"> <input type="text" style="width: 100px; vertical-align: middle; text-align: center;" name="cy" value="0" readonly="readOnly">
<br><br>
На странице Script.pl производится выполнение всех вычислений (нахождение площадей треугольника и прямоугольника из геометрических соображений, нахождение площади треугольника методом Монте-Карло, вычисление погрешности метода, подсчет времени вычислений), а также вывод результатов вычислений в таблицу
<form name=\"Form\" action=\"script.pl\" method=\"POST\">
<br />
<br />
<table width=\"500\" id=\"Table\" border=\"-1\" style=\"font-size: 12pt\">
<tr>
<td style=\"width: 77px; text-align: center; height: 20px; vertical-align: middle;\">
<strong style=\"vertical-align: top; text-align: center\">
Количество точек:</strong></
<td style=\"width: 120px; height: 20px; text-align: center; vertical-align: middle;\">
<strong style=\"vertical-align: top; text-align: center\">Площадь
методом Монте-карло :</strong>
<td style=\"width: 77px; height: 20px; text-align: center; vertical-align: middle;\">
<strong style=\"vertical-align: middle; text-align: center\">Погрешность вычислений(в %):</strong></td>
<td style=\"width: 127px; height: 21px; text-align: center; vertical-align: middle; line-height: normal; letter-spacing: normal;\">
<strong style=\"vertical-align: top; text-align: center\">Время расчета
<br />
(в сек.):</strong></td>
</tr>
При проведении расчетов используются функции и порядок их вызова, аналогичный консольному приложению, перенесенные на язык Perl. В процессе выведении расчетов формируется таблица, в которую автоматически вписываются результаты проведенных вычислений.
Функция controldata роверяет введенные данные на корректность:
sub controldata{
my ($bx,$cx,$by,$cy,$ey,$ex) = @_;
if (($cy!=0) or ($by != 0) or ($bx > $cx) or ($ey == 0) or ($ey < 0) or ($bx < 0) or ($cx < 0) or ($ex < 0)) { return 0 ;}
else {return 1;}
}
Функция RandGenerAndTest генерирует случайные точки , проверяет их на попадание в треугольник , возращает число попавших точек
sub RandGenerAndTest{
my $m = 0;
my ($n, $bx, $by, $cy, $cx, $ex, $ey, $xmax, $xmin) = @_;
for(my
$i = 1; $i < $n; $i++)
{
my $px = $xmin + rand($xmax - $xmin);
my $py = rand($ey);
my $temp = $py * ($ex - $bx) / ($ey - $by) - $by * ($ex - $bx) / ($ey - $by) + $bx;
my $temp1 = $py * ($ex - $cx) / ($ey - $cy) - $cy * ($ex - $cx) / ($ey - $cy) + $cx;
if (($temp1 >= $px) && ($temp <= $px)){
$m++;}
}
return ($m/$n);
}
На рисунке 7 изображен внешний вид Web-приложения на базе ASP в стартовом состоянии.
Рис. 7. Внешний вид Web-приложения в стартовом состоянии
На рисунке 8 изображен внешний вид приложения после проведения расчёта. Выходные данные формируются в виде таблицы.
Рис. 8. Внешний вид приложения после проведения расчёта
Приложение состоит из следующих файлов:
Для запуска web приложения необходимо опубликовать папку с сайтом на сервере Apache, поместив файл со скриптом в каталог Y:\home\.
Все вычисления организованы на стороне сервера. На клиентской стороне используется только скрипт, проверяющий корректность вводимых данных пользователем.
Для запуска данного приложения необходимо установить и настроить сервер для скрипта Perl. Для написания приложения, будем использовать сервер Apache. Самый легкий способ настройки сервера Apache под Perl - это установка серверного пакета Denwer (включает в себя по умолчанию Apache). Denwer пердлагает установить свой пакета со сразу настроенным Apache. Для установки Denwer необходимо:
Папку с web приложением на базе Perl необходимо поместить в виртуальный каталог Apache. Для того чтобы создать новый виртуальный каталог необходимо выполнить следующие действия:
После публикации сайта он станет доступен по адресу http://tester.ru, по умолчанию откроется страница http://tester.ru /index.html.
Для выполнения настольного приложения необходимы:
Данное приложение состоит из двух частей: клиентского приложения WPF и Web–сервиса, обеспечивающего функциональность клиентского приложения.
Информационный сервер Internet компании Microsoft (Internet Information Server – IIS) взаимодействует как со страницами ASP.NET так и с Web-службами, которые отсылают ему запросы по протоколу передачи гипертекстовых файлов HTTP. Запросы кодируются как часть унифицированного указателя информационного ресурса (URL) или представляются в виде XML-текста. В ответ на запрос Web-службы информационный сервер Internet (IIS) создает запрошенный объект. Затем информационный сервер вызывает метод объекта, который обрабатывает соответствующий запрос. Любые возвращаемые данные преобразуются в XML-формат и возвращаются клиенту как ответ по протоколу передачи гипертекстовых файлов HTTP.
Прежде чем клиент сможет использовать Web-службу, он должен быть способен создавать, отправлять, получать и понимать XML-сообщения. Платформа .NET предоставляет решение в виде специального компонента, который называется прокси-классом (proxy class) и который выполняет наиболее трудную часть работы для клиентского приложения. Прокси-класс скрывает вызовы методов Web-службы. Он отвечает за генерацию SOAP-сообщений в корректном формате и управление сообщениями в сети (с помощью протокола HTTP). Когда прокси-класс получает ответное сообщение, он еще и преобразует результаты обратно в соответствующие типы данных .NET.
Благодаря прокси-классу, вызывать Web-метод в Web-службе можно так же легко, как и в локальном компоненте. Однако эта прозрачность не всегда приносит пользу, поскольку Web-службы имеют характеристики, отличающиеся от локальных компонентов. Например, вызов Web-метода занимает неизвестное заранее количество времени, поскольку каждый такой вызов должен преобразовываться в XML и пересылаться через сеть. Чтобы к Web-службе можно было получить доступ с другого компьютера, эта Web-служба должна быть доступной. Необходимо создать виртуальный каталог для Web-службы. Затем, создав Web-сервис, обеспечивающий функциональность клиентского приложения, мы можем из данного приложения вызывать эту службу.
Создадим
web-сервис Service, который будет осуществлять
расчет площади треугольника по методу
Монте-Карло. Web-сервис Service реализуется
с помощью класса Service. Класс Service наследуется
от класса System.Web.Services.
Рис. 9. Диаграмма класса web-сервиса
Методы Web-сервиса Service: