Файл: Исследование вычислительной эффективности объектноориентированных приложений.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.05.2024

Просмотров: 57

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ПОСТАНОВКА ЗАДАЧИ

2. РАЗРАБОТКА ТЕХНИЧЕСКОГО ЗАДАНИЯ

2.1. Анализ вариантов использования программы

2.2. Требования к приложениям

3.АНАЛИЗ АЛГОРИТМА РЕШЕНИЯ

3.1. Метод Монте-Карло

3.2. Определение попадания точки внутрь фигуры

4. ПРОЦЕДУРНОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C#

4.1. Программные средства разработки

4.3. Системные требования

4.4. Структура приложения

4.5. Результаты работы

5. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C#

5.1. Программные средства разработки

5.2. Логическое проектирование

5.4. Руководство системного программиста

5.5. Руководство программиста

5.6. Руководство оператора

5.7. Результаты работы

6. АНАЛИЗ ВЫЧИСЛИТЕЛЬНОЙ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ

7. УЛУЧШЕНИЕ ХАРАКТЕРИСТИК КАЧЕСТВА ПРИЛОЖЕНИЙ

7.1. Использование встроенной оптимизации кода

7.2. Профилирование

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ

Файл MainWindow.xaml.cs (процедурное приложение)

Файл MainWindow.xaml

Файл MainWindow.xaml.cs (объектно-ориентированное приложение)

Файл MainWindow.xaml

Файл Figure.cs

Файл Rectangle.cs

Файл Triangle.cs

Файл MonteCarlo.cs


МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Тульский государственный университет»
Институт прикладной математики и компьютерных наук
Кафедра вычислительной техники

Курсовая работа по дисциплине

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
на тему: ИССЛЕДОВАНИЕ ВЫЧИСЛИТЕЛЬНОЙ ЭФФЕКТИВНОСТИ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПРИЛОЖЕНИЙ

Студент группы 220602 Мартынов И.В. _________

(Ф.И.О.) (подпись, дата)
Руководитель работы к.т.н., доцент каф. ВТ Берсенев Г.Б. _________

(Ф.И.О., должность) (подпись, дата)
Комиссия: ________________________

________________________

________________________

Тула 2022

МИНОБРНАУКИ РОССИИ

ФГБОУ ВО «Тульский государственный университет»

Институт прикладной математики и компьютерных наук

Кафедра «Вычислительная техника»

З а д а н и е
На курсовую работу по дисциплине «Объектно-ориентированное программирование»
студенту группы 220602 Мартынову Ивану Викторовичу
Тема работы:
«Исследование вычислительной эффективности объектно-ориентированных приложений»
Входные данные Вариант №12:

задача: определение площади методом Монте-Карло;

фигура: anbkoe;

приложение №1: процедурное приложение на базе WPF/ C#;

приложение №2: объектно-ориентированное приложение на базе WPF/ C#.

Задание получил ___________________ « 17 » февраля 2022 г.

(подпись студента)

Срок представления задания « 1 » июня 2022 г.
Руководитель ___________________ ____________________________

(подпись) (расшифровка подписи)

«__» ________________ 20___г.
К защите. Руководитель ___________________ _______________________

(подпись) (расшифровка подписи)

Замечания руководителя ___________________________________________

_________________________________________________________________

_________________________________________________________________

«__» ________________ 20___г.

При защите курсового проекта (работы) наличие рецензии обязательно.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 3

1.ПОСТАНОВКА ЗАДАЧИ 5

2. РАЗРАБОТКА ТЕХНИЧЕСКОГО ЗАДАНИЯ 8

2.1. Анализ вариантов использования программы 8

2.2. Требования к приложениям 9

3.АНАЛИЗ АЛГОРИТМА РЕШЕНИЯ 11

3.1. Метод Монте-Карло 11

3.2. Определение попадания точки внутрь фигуры 12

4. ПРОЦЕДУРНОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C# 14

4.1. Программные средства разработки 14

4.2. Логическое проектирование 15

4.3. Системные требования 17

4.4. Структура приложения 17

4.5. Результаты работы 17

5. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРИЛОЖЕНИЕ НА БАЗЕ WPF/C# 19

5.1. Программные средства разработки 19

5.2. Логическое проектирование 19

5.4. Руководство системного программиста 27

5.5. Руководство программиста 28

5.6. Руководство оператора 29

5.7. Результаты работы 30

6. АНАЛИЗ ВЫЧИСЛИТЕЛЬНОЙ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ 31

7. УЛУЧШЕНИЕ ХАРАКТЕРИСТИК КАЧЕСТВА ПРИЛОЖЕНИЙ 32

7.1. Использование встроенной оптимизации кода 32

7.2. Профилирование 34

ЗАКЛЮЧЕНИЕ 37

СПИСОК ЛИТЕРАТУРЫ 38

ПРИЛОЖЕНИЕ 39

Файл MainWindow.xaml.cs (процедурное приложение) 39

Файл MainWindow.xaml 41

Файл MainWindow.xaml.cs (объектно-ориентированное приложение) 42

Файл MainWindow.xaml 44

Файл Figure.cs 44

Файл Rectangle.cs 44

Файл Triangle.cs 45

Файл MonteCarlo.cs 45



ВВЕДЕНИЕ


В современном мире программирование стало неотъемлемой частью жизни человечества, так как все устройства, начиная от детских игрушек, заканчивая сложнейшими вычислительными машинами, имеют в себе установленные программы работы.

Каждая программа может быть написана на очень большом количестве языков, а также совершенно разными стилями. Это открывает программистам поле для творчества, где они вольны выбирать язык, стиль, среду исполнения программы.

Процедурно-ориентированное программирование, широко использовавшееся до появления ООП, обычно позволяет создавать более эффективные в вычислительном отношении реализации приложений, что является существенным фактором при разработке систем реального времени. На практике эти два стиля программирования часто используются совместно, позволяя варьировать степень их применения в программах.

Доминирующим же на данный момент стилем написания кода является объектно-ориентированный стиль программирования (далее ООП). Как становится ясно из названия, основой такого стиля является объект. Объект — это сущность, экземпляр класса, которой можно посылать сообщения и которая может на них реагировать, используя свои данные. Класс определяет группу объектов с общими свойствами (атрибутами), пове­дением (функциями), семантикой и связями с другими объектами. Класс можно трак­товать как шаблон для создания объектов.

Три основных принципа ООП – инкапсуляция, наследование и полиморфизм.

C# - простой, современный объектно-ориентированный и типобезопасный язык программирования, поддерживающий также и компонентно-ориентированное программирование. C# можно использовать для создания клиентских приложений Windows, XML-веб-служб, распределенных компонентов, приложений клиент-сервер, приложений баз данных и т. д. Первая версия языка вышла в феврале 2002 года, она разрабатывалась группой инженеров под руководством Андерса Хейлсбергa в компании Microsoft как основной язык разработки приложений для платформы .NET Framework.

C# является объектно-ориентированным и в этом плане много перенял у Java и С++. Например, C# поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию. C# продолжает активно развиваться, и с каждой новой версией появляется все больше интересных функциональных возможностей, как, например, лямбды,
динамическое связывание, асинхронные методы и т.д.

Microsoft Visual Studio – полнофункциональная интегрированная среда разработки для написания, отладки, тестирования и развертывания кода на любой платформе. Линейка продуктов MS Visual Studio позволяет разрабатывать приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms.

Windows Presentation Foundation (WPF) — это система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая подсистема в составе .NET Framework, использующая язык eXtensible Application Markup Language (XAML). Для работы с WPF требуется любой .NET-совместимый язык, например, язык C#. Для полноценной работы может быть использована среда разработки Microsoft Visual Studio.

Язык eXtensible Application Markup Language (XAML) — это язык разметки для декларативной разработки приложений. В WPF реализован обработчик языка XAML и имеется поддержка языка XAML. Типы WPF реализованы таким образом, что они могут служить необходимой платформой типов для представления XAML. Как правило, большую часть пользовательского интерфейса приложения WPF можно создать с помощью разметки XAML.

Данные технологии применяются в ходе выполнения курсовой работы.

  1.   1   2   3   4   5   6   7   8   9

ПОСТАНОВКА ЗАДАЧИ


Основная задача курсовой работы – разработать процедурное и объектно-ориентированное приложения, решающие задачу приближенного вычисления площади фигуры методом Монте-Карло, а также выполнить исследование вычислительной эффективности созданных приложений и представить результаты в виде таблиц, провести анализ и улучшить заданные характеристики качества приложений.

Вариант задания №12:

  • геометрическая фигура: anbkoe;

  • приложение 1: процедурное приложение на базе WPF/C#;

  • приложение 2: объектно-ориентированное приложение на базе WPF/C#.

Геометрическая фигура представляет собой прямоугольник, из которого вырезаны треугольник anb, треугольник kco и треугольник ode.(рис. 1).



Рис. 1. Фигура anbkoeвнутри прямоугольника abcd

Исходными данными для каждого приложения являются координаты угловых точек фигуры. Для однозначного определения расположения фигуры сначала необходимо задать 3 точки: a, c, n. После чего вычисляются координаты точек o, k,e, dи b.

Для вычисления площади фигуры необходимо вначале вычислить площадь прямоугольника, описывающего заданную фигуру, после чего N раз сгенерировать два случайных числа для координат x и y, определяющие точку внутри заданной фигуры. Генерируемые случайным образом точки должны равномерно заполнять площадь прямоугольника. Для этого случайные числа должны иметь равномерное распределение.

Для каждой точки выполняется проверка, попала ли точка внутрь заданной фигуры. Если из N точек M точек оказалось внутри фигуры, а площадь прямоугольника равна S, то площадь фигуры будет приближенно равна .

Так как площадь фигуры достаточно несложно определить по правилам геометрии, можно найти относительную погрешность приближенного вычисления площади заданной фигуры методом Монте-Карло.

Каждое приложение пять раз повторяет эксперимент и вычисляет площадь фигуры методом Монте-Карло для N= 103, 104, 105, 106, 107 соответственно. В каждом из экспериментов определяется относительная погрешность вычисления площади (в процентах) и длительность вычисления (в миллисекундах).


После нахождения результатов экспериментов каждое приложение выдает на экран таблицу, содержащую значения относительной погрешности и длительности эксперимента, зависящих от величины N.

Задачами курсовой работы являются:

  • приобретение навыков решения вычислительных задач;

  • практическое освоение современных инструментальных систем разработки ПО;

  • сравнительный анализ вычислительной эффективности процедурных и объектно-ориентированных программ;

  • получение навыков создания программ на языке C# платформы Microsoft .NET Framework;

  • приобретение практических навыков оформления и выпуска документации в соответствии с требованиями стандартов (ЕСПД, UML).


2. РАЗРАБОТКА ТЕХНИЧЕСКОГО ЗАДАНИЯ

2.1. Анализ вариантов использования программы


Разрабатываемая программа по вычислению площади фигуры методом Монте-Карло должна предоставлять пользователю следующие возможности:

  • ввод координат (вручную или из контрольного примера);

  • нахождение площади фигуры методом Монте-Карло;

  • вывод на экран;

  • очистка полей ввода и таблицы результатов;

  • повторный расчёт;

  • выход.

Для наглядности и удобства восприятия строится так называемая «use case» диаграмма, на которой отображаются пользователи, а также варианты их действий. На диаграмме использованы виды отношений: включение, расширение и наследование (рисунок 2).



Рис. 2. Диаграмма вариантов использования приложений

Отношение расширения между вариантами использования обозначается пунктирной линией со стрелкой (вариант отношения зависимости), направленной от того варианта использования, который является расширением для исходного варианта использования. Данная линия со стрелкой помечается ключевым словом “extend” (“расширение”).

Отношение включения между вариантами использования обозначается пунктирной линией со стрелкой (стрелки идут от базового варианта) и иллюстрирует, что именно использует базовый вариант для выполнения операции, то есть, другими словами, включение используется тогда, когда базовый вариант не может быть выполнен без дополнительных условий и действий.