Автор работы: Пользователь скрыл имя, 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
Таблица 1. Сравнение вычислительной эффективности приложений
Время выполнения, мс | ||||
Кол-во точек | Консольное
приложение
на языке C# |
Приложение с использование скриптового языка Perl | Приложение WPF | Консольное приложение на языке F# |
1000 | 0 | 0 | 31.25 | 0 |
10000 | 0 | 37 | 31.25 | 2.001 |
100000 | 16 | 295 | 46.875 | 19.001 |
1000000 | 188 | 3145 | 171.875 | 181.0104 |
10000000 | 1250 | 28968 | 937.5 | 1609.092 |
Из
таблицы 1 видно, что серверное приложение
оказалось самым производительным. Также
мы видим, что самым медленным по времени
выполнения является веб-приложение на
базе классической технологии ASP с использованием
языка скриптов. Это связано с тем, что
при выполнении данного приложения оно
не компилируется, а интерпретируется.
Данные результаты получаются, если использовать ПК с системными требованиями:
Заключение
В ходе работы были разработаны четыре приложения - настольное приложение на языке С#, приложения на базе ASP, с использованием языка скриптов Perl, Web-приложение на базе WPF, настольное приложение на языке F#. Приложения представляют различные технологии программирования, включая Web-технологии. По результатам была исследована вычислительная эффективность.
В
ходе выполнении данной курсовой работы
также были закреплены знания по курсу
"Технологии программирования" и
приобретены навыки клиент-серверной
реализации прикладной задачи (задачи
вычисления площади геометрической фигуры
методом Монте-Карло) в виде Web приложения
с использованием Web сервера IIS и Web сервисов
XML, технологий ASP и JSP, языков C#, JavaScript, Perl
и XAML, а также различных инструментальных
систем и библиотек, автоматизирующих
проектирование и программирование создаваемого
приложения.
Список
использованных источников
Приложение
Настольное консольное приложение на языке C#
using System;
using System.Collections.Generic;
using System.Text;
namespace Consolekkr
{
class Program
{
static float f1(Point A, Point B, Point P)
{
float temp = 0;
temp = P.y * (B.x - A.x) / (B.y - A.y) - A.y * (B.x - A.x) / (B.y - A.y) + A.x;
return temp;
}
static float smat(Point A, Point B, Point C)
{
return ((B.x * C.y - C.x * B.y) - (A.x * C.y - A.y * C.x) + (A.x * B.y - B.x * A.y)) / 2;
}
static float sras(float p, float a, float s)
{
float k = 0;
k = s * p / a;
return k;
}
static float pogr(float s, float s1)
{
float z = 0;
z = Math.Abs(((s-s1) / s1)*100);
return z;
}
static void Main(string[] args)
{
for (;;)
{
Console.WriteLine("^");
Console.WriteLine("|
Console.WriteLine("|
Console.WriteLine("|
Console.WriteLine("|
Console.WriteLine("| *****");
Console.WriteLine("| ******");
Console.WriteLine("| *******");
Console.WriteLine("| ********");
Console.WriteLine("|____B_____
Console.WriteLine("Выберите как вы хотите задать точки: ");
Console.WriteLine("1. Задать самому");
Console.WriteLine("2. Использовать контрольный примеры");
Console.WriteLine("3. Выход");
Point B = new Point();
Point C = new Point();
Point E = new Point();
Point P = new Point();
int n = 0;
DateTime dtr = new DateTime();
Random rnd = new Random();
float shot = 0;
float sp = 0;
float xmax = 0;
float xmin = 0;
float sm = 0;
float sr = 0;
float pog = 0;
Int32 choise = Convert.ToInt32(Console.
if (choise == 1)
{
Console.WriteLine("ВВедите Bx: ");
B.x = (float)Convert.ToDouble(
B.y = 0;
Console.WriteLine("Введите Cx: ");
C.x = (float)Convert.ToDouble(
C.y = 0;
Console.WriteLine("Введите Ex: ");
E.x = (float)Convert.ToDouble(
Console.WriteLine("Введите Ey: ");
E.y = (float)Convert.ToDouble(
}
if (choise == 2)
{
Console.WriteLine("Выберете контрольный вариант: ");
Console.WriteLine("1. Ax < Ex < Bx");
Console.WriteLine("2. Ex = Bx");
Console.WriteLine("3. Bx < Ex < Cx");
Console.WriteLine("4. Ex = Cx");
Console.WriteLine("5. Cx < Ex < Dx");
Int32 choise2 = Convert.ToInt32(Console.
if (choise2 == 1)
{
B.x = 40;
E.x = 30;
C.x = 64;
E.y = 150;
B.y = 0;
C.y = 0;
}
if (choise2 == 2)
{
B.x = 40;
E.x = 40;
C.x = 64;
E.y = 150;
B.y = 0;
C.y = 0;
}
if (choise2 == 3)
{
B.x = 40;
E.x = 50;
C.x = 64;
E.y = 150;
B.y = 0;
C.y = 0;
}
if (choise2 == 4)
{
B.x = 40;
E.x = 64;
C.x = 64;
E.y = 150;
B.y = 0;
C.y = 0;
}
if (choise2 == 5)
{
B.x = 42;
E.x = 30;
C.x = 64;
E.y = 150;
B.y = 0;
C.y = 0;
}
}
if (choise == 3)
{
break;
}
n = 10000000;
dtr = DateTime.Now;
if (B.x >= C.x && B.x >= E.x)
{
xmax = B.x;
if (C.x >= E.x)
xmin = E.x;
else xmin = C.x;
}
if (C.x >= B.x && C.x >= E.x)
{
xmax = C.x;
if (B.x >= E.x)
xmin = E.x;
else xmin = B.x;
}
if (E.x >= B.x && E.x >= C.x)
{
xmax = E.x;
if (B.x >= C.x)
xmin = C.x;
else xmin = B.x;
}
sm = smat(E, B, C);
Console.WriteLine("\nТочная
Console.WriteLine("\