Курсовая работа: Разработка Windows-приложения нахождения НОД двух целых чисел с помощью алгоритма Евклида

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В более общем виде концепция полиморфизма выражается фразой "один интерфейс - много методов". Это означает, что для группы связанных действий можно использовать один обобщенный интерфейс. Полиморфизм позволяет понизить уровень сложности за счет возможности применения одного и того же интерфейса для задания целого класса действий. Выбор же конкретного действия (т.е. функции) применительно к той или иной ситуации ложится "на плечи" компилятора.

Первые языки объектно-ориентированного программирования были реализованы в виде интерпретаторов, поэтому полиморфизм поддерживался во время выполнения программ. Однако C++ - это транслируемый язык (в отличие от интерпретируемого). Следовательно, в C++ полиморфизм поддерживается на уровне компиляции программы и ее выполнения.

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

Если не использовать иерархическое представление признаков, для каждого объекта пришлось бы в явной форме определить все присущие ему характеристики. Но благодаря наследованию объекту нужно доопределить только те качества, которые делают его уникальным внутри его класса, поскольку он (объект) наследует общие атрибуты своего родителя. Следовательно, именно механизм наследования позволяет одному объекту представлять конкретный экземпляр более общего класса [5].

Достоинства. C++ - чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности:

Высокая совместимость с языком С, позволяющая использовать весь существующий С-код (код С может быть с минимальными переделками скомпилирован компилятором С++; библиотеки, написанные на С, обычно могут быть вызваны из С++ непосредственно без каких-либо дополнительных затрат, в том числе и на уровне функций обратного вызова, позволяя библиотекам, написанным на С, вызывать код, написанный на С++).

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

Имеется возможность работы на низком уровне с памятью, адресами, портами.

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

Кроссплатформенность. Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.

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

Недостатки C++ унаследованы от языка-предка - C, и вызваны изначально заданным требованием возможно большей совместимости с C. Это такие недостатки, как:

Синтаксис, провоцирующий ошибки.

Препроцессор, унаследованный от С, очень примитивен.

Плохая поддержка модульности.

C++ позволяет разрабатывать оконные приложения. Для этого можно использовать Microsoft Visual Studio.

Microsoft Visual Studio - линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментов. Данные продукты позволяют разрабатывать как консольные приложения, так и игры и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silver light.

Visual Studio включает в себя редактор исходного кода с поддержкой технологии Intelli Sense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual Source Safe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

Интегрированная среда разработки (IDE) (Рисунок 1.1) - это многофункциональная программа, которая поддерживает многие аспекты разработки программного обеспечения. Интегрированная среда разработки Visual Studio - это стартовая площадка для написания, отладки и сборки кода, а также последующей публикации приложений. Помимо стандартного редактора и отладчика, которые есть в большинстве сред IDE, Visual Studio включает в себя компиляторы, средства автозавершения кода, графические конструкторы и многие другие функции для улучшения процесса разработки.

Рисунок 1.1 Интегрированная среда разработки (IDE)

На рисунке 1.1 представлена среда Visual Studio с открытым проектом и подсказки по основным окнам и функциональных возможностях.

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

В центральном окне редактора отображается содержимое файла. В окне редактора можно вносить изменения в код или разрабатывать пользовательский интерфейс, например окно с кнопками или текстовые поля.

Окно изменений Git в нижнем углу справа позволяет отслеживать рабочие элементы и предоставлять общий доступ к коду, используя Git, GitHub или другие технологии управления версиями.

Основные преимущества IDE-среды Visual Studio:

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

- более высокая скорость разработки. Многие из функциональных возможностей Visual Studio направлены на то, чтобы помогать разработчику делать свою работу как можно быстрее. Удобные функции, вроде функции Intelli Sense (которая умеет перехватывать ошибки и предлагать правильные варианты), функции поиска и замены (которая позволяет отыскивать ключевые слова как в одном файле, так и во всем проекте) и функции автоматического добавления и удаления комментариев (которая может временно скрывать блоки кода), позволяют разработчику работать быстро и эффективно;

- встроенный Web-сервер. Для обслуживания Web-приложения ASP.NET необходим Web-сервер, который будет ожидать Web-запросы и обрабатывать соответствующие страницы. Наличие в Visual Studio интегрированного Web-сервера позволяет запускать Web-сайт прямо из среды проектирования, а также повышает безопасность, исключая вероятность получения доступа к тестовому Web-сайту с какого-нибудь внешнего компьютера, поскольку тестовый сервер может принимать соединения только с локального компьютера;

- меньше кода для написания. Для создания большинства приложений требуется приличное количество стандартного стереотипного кода, и Web-страницы ASP. NET тому не исключение. Например, добавление Web-элемента управления, присоединение обработчиков событий и корректировка форматирования требует установки в разметке страницы ряда деталей. В Visual Studio такие детали устанавливаются автоматически;

- интуитивный стиль кодирования. По умолчанию Visual Studio форматирует код по мере его ввода, автоматически вставляя необходимые отступы и применяя цветовое кодирование для выделения элементов типа комментариев. Такие незначительные отличия делают код более удобным для чтения и менее подверженным ошибкам. Применяемые Visual Studio автоматически параметры форматирования можно даже настраивать, что очень удобно в случаях, когда разработчик предпочитает другой стиль размещения скобок (например, стиль K&R, при котором открывающая скобка размещается на той же строке, что и объявление, которому она предшествует);

- поддержка множества языков при разработке. Visual Studio позволяет писать код на своем языке или любых других предпочитаемых языках, используя все время один и тот же интерфейс (IDE). Более того, Visual Studio также еще позволяет создавать Web-страницы на разных языках, но помещать их все в одно и то же Web-приложение. Единственным ограничением является то, что в каждой Web-странице можно использовать только какой-то один язык (очевидно, что в противном случае проблем при компиляции было бы просто не избежать);

У Visual Studio также есть недостатки, хоть и их можно назвать условными.

Во-первых, программа достаточно массивная.

Вторая причина, по которой Visual Studio еще не стоит на всех в мире компьютерах - это цена.

Ну и третьим, существенным недостатком является ограниченность платформ, способных взаимодействовать с Visual Studio. На данный момент это только Windows и Mac.

2. Описание программного продукта

2.1 Общие сведения

Приложение называется Калькулятор, написано на языке C++ в компиляторе Visual Studio 2019.Тип приложения - Windows Forms. Этот тип приложений позволяет легко реализовать графический интерфейс пользователя.

2.2 Функциональное назначение

Данное приложение предназначено для нахождения НОД двух целых чисел с помощью алгоритма Евклида.

Алгоритм Евклида для нахождения НОД(A, B) выглядит следующим образом:

- Если A = 0, тогда НОД(A, B) = B, поскольку НОД(0, B) = B, и алгоритм останавливается.

- Если B = 0, тогда НОД(A, B) = A, поскольку GCD(A, 0) = A, и алгоритм останавливается.

- Делим A на B с остатком (A = B?Q + R)

- Находим НОД(B, R) при помощи алгоритма Евклида, поскольку НОД(A,B) = НОД(B, R)

Алгоритм Евклида основан на следующих свойствах:

НОД(A,0) = A

НОД(0,B) = B

Если A = BЕQ + R и B?0, то НОД(A, B) = НОД(B, R), где Q - целое число, а R - целое число от 0 до B-1

Программа получает исходные данные из двух текстовых полей, вычисляет НОД и затем выводит его в окно отображения результата.

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

2.3 Описание логической структуры и реализации

Ниже на рисунке 2.1 представлена логическая структура программы:

Рисунок 2.1 Логическая структура программы

Для большей наглядности на рисунке 2.2 обозначим элементы формы так, как они названы в программном коде (Приложение 1):

Рисунок 2.2 Форма и ее элементы

В программе один обработчик события - нажатия на кнопку Вычислить (button1), которая запускает действие программы. Этовидно в заголовке функции:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^e)

Затем в программе описаны переменные:

floata, b;

Вводятся переменные для каждого из коэффициентов (a, b). Так как значения коэффициентов вводятся через текстовые поля, необходимо преобразовать их из строки в числовые значения. Это выполнено в следующем фрагменте кода:

a = System::Double::Parse(this->textBox1->Text);

b = System::Double::Parse(this->textBox2->Text);

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

if ((a>= 0) && (b>= 0)) {

while (a != b) {

if (a > b) a = a - b;

else b = b - a;

После числовое значение преобразуется в текст и выводится в соответствующее поле. В поле Комментарии выводится сообщение о том, что ошибок при вычислении не возникло.

Это видно в данном фрагменте кода:

textBox3->Text = a.ToString();

textBox4->Text = "Ошибок нет";

Если же значение, введенное пользователем, отрицательное, то вычисление не производится и в окне Комментарии выводится сообщение с требованием ввести положительные числа.

Это показано в данном фрагменте кода:

else {

textBox3->Text = " ";

textBox4->Text = "Введите положительные числа";

2.4 Требования к техническому обеспечению

Требования к системе: для функционирования Visual Studio 2019 необходимы для запуска приложения, поэтому следует указать их:

- процессор с тактовой частотой не ниже 1,8 ГГц. Рекомендуется использовать как минимум двухъядерный процессор;

- 2 Гбайт ОЗУ; рекомендуется 8 Гбайт ОЗУ (минимум 2,5 Гбайт при выполнении на виртуальной машине);

- место на жестком диске: до 210 Гбайт (минимум 800 Мбайт) свободного места в зависимости от установленных компонентов; обычно для установки требуется от 20 до 50 Гбайт свободного места;

Источник: https://otherreferats.allbest.ru/download/1487190/