- скорость жесткого диска: для повышения производительности установите Windows и Visual Studio на твердотельный накопитель (SSD);
- видеоадаптер с минимальным разрешением 720p (1280 на 720 пикселей); для оптимальной работы Visual Studio рекомендуется разрешение WXGA (1366 на 768 пикселей) или более высокое.
2.5 Вызов программы
Вызов программы осуществляется через стандартный запуск программ в Visual Studio 2019 - Локальный отладчик Windows. При запуске открывается окно формы. В полях коэффициентов заданы начальные нули, остальные поля пусты.
2.6 Входные данные
Входные данные вводятся при помощи текстовых полей, затем программа преобразует эти данные из строки в число. Название формы располагается сверху. Первые два текстовых поля подписаны ярлыками в соответствии с коэффициентами - a =, b=. Кнопка называется Вычислить, она запускает процесс вычислений. Текстовое поле для вывода результата вычисления подписано НОД =. Текстовое поле для вывода комментариев подписано Комментарии.
2.7 Выходные данные
Выходные данные выводятся в текстовом поле НОД = и Комментарии. В первом выводится значение вычисленного НОД. Во втором выводятся сообщения "Ошибок нет", "Введите положительные числа" в зависимости от введенных значений.
2.8 Описание тестовых прогонов
Описание контрольных примеров приведено в таблице 2.1:
Таблица 2.1 - Контрольные примеры
|
Входные данные |
Выходные данные |
|
|
1) 18, 30 |
6, Ошибок нет |
|
|
2) 255, 15 |
15, Ошибок нет |
|
|
3) 500, 150 |
50, Ошибок нет |
|
|
4) -18, 30 |
" ", Введите положительные числа |
|
|
5) 255, -15 |
" ", Введите положительные числа |
|
|
6) -500, -150 |
" ", Введите положительные числа |
Результаты тестовых прогонов на контрольных примерах 1 - 6 (таблица 2.1) представлены на рисунках 2.3 - 2.8.
Вывод результата в примерах 1 - 3:
Рисунок 2.3 Проверка работы программы на контрольном примере 1
Рисунок 2.4 Проверка работы программы на контрольном примере 2
Рисунок 2.5 Проверка работы программы на контрольном примере 3
Вывод сообщения о введенном отрицательном числе 4 - 6:
Рисунок 2.6 Проверка работы программы на контрольном примере 4
Рисунок 2.7 Проверка работы программы на контрольном примере 5
Рисунок 2.8 Проверка работы программы на контрольном примере 6
2.9 Инструкция по использованию программы
В первых двух текстовых полях, подписанных "a=", "b=" вводятся значения для вычисления НОД. Затем следует нажать кнопку "Вычислить". Ответ будет выведен в текстовом поле. Если введено отрицательное число, в поле "НОД" не будет ничего выведено, а в поле "Комментарии" будет выведено сообщение "Введите положительные числа".
Кнопка "Вычислить" запускает процесс вычисления. Ее следует нажимать только в том случае, когда поля ввода заполнены корректно. Если в них останутся нули, то программа не будет работать, пока не будут введены числа.
Заключение
В результате выполнения курсовой работы было создано приложение, позволяющее вычислять НОД двух целых чисел с помощью алгоритма Евклида.
При его создании были использованы функция sqrt(), Text, ToString().
Приложение реализовано при помощи Windows Forms.
Подобное приложение актуально и полезно, так как оно позволяет быстро решить одну из элементарных математических задач, которая очень часто встречается при выполнении вычислений. Это приложение может значительно увеличить скорость выполнения вычислений и при этом увеличит их точность: оно не позволит совершить вычислительную ошибку или использовать неправильную формулу, все вычисления выполняет машина.
Таким образом, в процессе выполнения курсовой работы был глубже изучен язык программирования C++ и его возможности, возможности Microsoft Visual Studio, надлежащим образом было изучено создание и предназначение Windows-приложений.
Список использованных источников
1. Программирование на языке высокого уровня. Программирование на языке C++: учебное пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев; под ред. Л.Г. Гагариной. - М.: ИД ФОРУМ: ИНФРА-М, 2021. - 512 с. - Текст: электронный. - URL: https://znanium.com/catalog/product/1172261
2. Основы программирования на языке С: учебное пособие / В.Г. Дорогов, Е.Г. Дорогова, Л.Г. Гагарина - М.: ИД ФОРУМ: ИНФРА-М, 2021. - 224 с. - Текст: электронный. - URL: https://znanium.com/catalog/document?id=369664
3. Программирование графики наС++. Теория и примеры: учебное пособие / В.И. Корнеев, Л.Г. Гагарина, М.В. Корнеева. - М.: ФОРУМ: ИНФРА-М, 2019. - 517 с. - Текст: электронный. - URL: https://znanium.com/catalog/product/1018909
4. Язык С++ и объектно-ориентированное программирование в С++. Лабораторный практикум: Учебное пособие для вузов / Ашарина И.В., Крупская Ж.Ф. - М.: Гор. линия - Телеком, 2018. - 232 с. - Текст: электронный. - URL: http://new.znanium.com/catalog/product/973780
5. Объектно-ориентированное программирование на С++: учебник / И.В. Баранова, С.Н. Баранов, И.В. Баженова [и др.]. - К.: Сиб. федер. ун-т, 2019. - 288 с. - Текст: электронный. - URL: https://znanium.com/catalog/product/1819676
Приложение 1
Листинг программы Калькулятор
#pragma once
namespace Project2
{
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Сводка для MyForm
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
InitializeComponent();
//
//TODO: добавьте код конструктора
//
}
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~MyForm()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ label1;
protected:
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox4;
private:
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Требуемый метод для поддержки конструктора - не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
void InitializeComponent(void)
{
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->button1 = (gcnew System::Windows::Forms::Button());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(73, 27);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(25, 16);
this->label1->TabIndex = 0;
this->label1->Text = L"a =";
this->label1->Click += gcnew System::EventHandler(this, &MyForm::label1_Click);
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(21, 70);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(25, 16);
this->label2->TabIndex = 1;
this->label2->Text = L"b =";
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(49, 209);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(36, 16);
this->label3->TabIndex = 2;
this->label3->Text = L"НОД";
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(84, 311);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(96, 16);
this->label4->TabIndex = 3;
this->label4->Text = L"Комментарии";
//
// button1
//
this->button1->Location = System::Drawing::Point(229, 63);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 4;
this->button1->Text = L"Вычислить";
this->button1->UseVisualStyleBackColor = true;
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(373, 108);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(100, 22);
this->textBox1->TabIndex = 5;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(52, 126);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(100, 22);
this->textBox2->TabIndex = 6;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(266, 143);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(100, 22);
this->textBox3->TabIndex = 7;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(161, 181);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(100, 22);
this->textBox4->TabIndex = 8;
//
// MyForm
//
this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(753, 398);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->button1);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Name = L"MyForm";
this->Text = L"MyForm";
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e)
{
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
float 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 = "Введите положительные числа";
}
}