
- •Введение
- •Постановка задачи
- •Разработка технического задания
- •2.1 Анализ вариантов использования программы
- •Потоки событий
- •Основной поток
- •2.2. Альтернативные потоки
- •2.2 Требования к приложениям
- •Анализ алгоритма решения задачи
- •3.1 Метод Монте-Карло
- •3.2 Определение попадания точки внутрь трапеции
- •Настольное приложение wpf
- •4.1 Технология Windows Presentation Foundation
- •4.2 Логическое проектирование приложения
- •4.3 Тестирование приложения
- •5.1 Программные средства для разработки приложения
- •5.2 Логическое проектирование
- •5.2.1 Структура приложения
- •5.2.2 Проектирование приложения.
- •Листинг №1. Определение попадания точки в четырехугольник. HaXe.
- •6. Клиент-Серверное приложение на базе asp.Net
- •6.1 Программные средства разработки приложения
- •6.2 Логическое проектирование Web-сервиса
- •6.3 Логическое проектирование клиентской части
- •6.4 Генерирование прокси-класса
- •6.5 Системные требования
- •Руководство программиста
- •6.7.1 Назначение и условия применения приложения
- •Структура приложения
- •6.8.4 Сообщения оператору
- •6.9 Тестирование приложения
- •Анализ вычислительной эффективности приложений
- •Заключение
- •Приложения
- •9.1 Листинг приложения на базе wpf Файл MainWindow.Xaml
- •Файл MainWindow.Xaml.Cs
- •9.2 Листинг приложения на базе haXe/php Файл Main.Hx
- •Файл Index.Html
- •9.3 Листинг клиент-северного приложения на базе asp.Net Файл Service.Asmx
- •Файл Service.Cs
- •Файл MainWindow.Xaml
- •Файл MainWindow.Xaml.Cs
4.2 Логическое проектирование приложения
Настольное приложение испольуюет GUI для взаимодействия с пользователем. Предлагается ввести координаты точек, либо вырбрать контрольный пример. После завершения экспериментов выводится таблица результатов. Схема приложения показана на рис.4
Рис. 4. Схема программы настольного приложения
В процессе создания приложения были спроектированы классы и методы, которые отображены на рис.5
Рис. 5. Структура приложения WPF
В настольном приложении определены следующие классы:
класс точки Point
класс четырехугольника, состоящий из четырех точек Rect
класс окна приложения Window1
В классе Point определены следующие типы данных и методы:
double x, double y – координаты х и у соответствующей точки
конструкторы
get Curve
getRand
В классе Rect определены следующие данные и методы:
point A, point B, point C, point E
double points
TimeSpan time
конструкторы
GetHeigth
GetWidth
GetMinX
GetMinY
S_Monte
S_O_Rect
S_Teor
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)- два метода для определения Высоты и ширины описанного четырехугольника