Проектирование информационной системы «Калькулятор для комплексных чисел»

Автор: Пользователь скрыл имя, 14 Апреля 2015 в 12:20, курсовая работа

Краткое описание

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

Оглавление

Введение: 4
Работа в VisualC++ 2010 5
Калькулятор для комплексных чисел 8
Используемые подходы, методы и технологии программирования 9
Текст программы. 12
Заключение: 19
Список использованной литературы 20

Файлы: 1 файл

курсовая ит.docx

— 2.65 Мб (Скачать)

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

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

высшего профессионального образования

«Чувашский государственный университет им.  И.Н. Ульянова»

 

 

 

 

 

КУРСОВАЯ РАБОТА

по дисциплине

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Тема: Проектирование информационной системы

«Калькулятор для комплексных чисел»

Вариант №12

 

 

Выполнила:

 

Проверила:

                                                                                    

 

 

 

 

 

 

 

Чебоксары - 2013

 

З А Д А Н И Е

на курсовую работу

 

По дисциплине  ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Студент гр.:  РТЭ-61-12

ФИО:

Руководитель: Васильева Л.Н.

Тема работы: Проектирование информационной системы «Калькулятор для комплексных чисел»

Вариант:№ 12

Исходные данные:

       Язык  программирования: Microsoft Visual Studio С++ 2010

 

Задание:

      Разработать  калькулятор для комплексных  чисел

 

 

 

 

Дата выдачи   «_____» ______________ 2013г.

Дата сдачи на проверку  «_____»______________ 2013г.

Дата защиты  «_____»______________ 2013г.

Подпись руководителя__________________________

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Содержание:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение:

 

Из курса математики известно, что отрицательные числа введены прежде всего для того, чтобы операция вычитания, обратная к операции сложения, была всегда возможна. По аналогичной причине в математике появились комплексные числа. Если рассматривать только действительные числа, то операция извлечения квадратного корня, обратная к операции возведения в квадрат, не всегда возможна, так как нельзя извлечь квадратный корень из отрицательного числа.

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

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

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

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

 

 

 

 

Работа в Visual C++ 2010

 

Чтобы построить программу на этом языке, нам надо воспользоваться  средой  программирования  Visual C++ 2010, которая содержит  в себе  средства  создания программы, ее компиляции, отладки и запуска на выполнение. В этой связи  рассмотрим кратко структуру этой среды, а точнее  ее интерфейс  с нами, пользователями. Интерфейс- это аппарат. Который позволяет удобно взаимодействовать пользователю со средой.После установки на компьютере среды Visual  C++ 2010 мы можем  загрузить, воспользовавшись  командой главного меню ПускàПрограммы  (после установки продукта его имя автоматически появится в списке  команд ы Программы).Для удобства  дальнейшей работы с установленным программным  продуктом следует мышью перетянуть  его значок на линейку быстрого запуска программ, которая находится на рабочем столе  операционной системы. Находящийся на этой линейке любой программный продукт запускается одинарным щелчком мыши на значке соответствующего продукта. Итак, загружаем наш продукт Microsoft  Visual C++ 2010 (для краткости в дальнейшем станем его называть VC++). На экране появится  главное окно – рабочий стол, структуру которого и рассмотрим.

В верхней части окна расположена  строка с командами главного меню среды (команды: File,  Edit, …) – это строка горизонтального меню. При вызове этих команд(их  еще называют опциями, т.е. элементами выбора из нескольких значений) открываются  так называемы «выпадающие меню» -это вертикальные меню, представляющие собой набор команд, располагающихся на экране сверху  вниз.

Ниже строки  главного меню  находятся кнопки быстрого вызова некоторых команд на исполнение. Все эти кнопки  имеют всплывающие подсказки(надо навести курсор мыши на кнопку, немного подождать и после чего появится подсказка  о том, для чего  предназначена данная кнопка). Рядом с такими  кнопками  могут быть  дополнительные кнопки для раскрытия списка  значений  основной кнопки. Так как  все кнопки не помещаются в отведенное им место на рабочем столе, то они свернуты в небольшие полосы с кнопками их развертывания точно так же, как это выполнено во всем известном Word'е.

 

 

Калькулятор для комплексных чисел

 

Программа Калькулятор для комплексных чисел демонстрирует создание компонентов в коде. Кнопки калькулятора, объединенные в массив btn компоненты Button, создает и настраивает конструктор формы. Он же назначает кнопкам функции обработки события Click.

 

Используемые подходы, методы и технологии программирования

 

Необходимость в комплексных числах появилась при решении квадратных уравнений для случая D <0 (здесь D – дискриминант квадратного уравнения). Долгое время эти числа не находили физического применения, поэтому их и назвали «мнимыми» числами. Однако сейчас они очень широко применяются в различных областях физики и техники: электротехнике, гидро- и аэродинамике, теории упругости и др.

Комплексные числа записываются в виде: a+bi. Здесь a и b действительные числа, а i – мнимая единица, т.e. i 2=–1. Число a называется абсциссой, a b – ординатой комплексного числа a+bi. Два комплексных числа a+bi и a-bi называются сопряжёнными комплексными числами.

Сложение - рисунок 1. Суммой комплексных чисел a+ bi и c+ di называется комплексное число (a+c) + (b+d)i. Таким образом, при сложении комплексных чисел отдельно складываются их абсциссы и ординаты. Это определение соответствует правилам действий с обычными многочленами.

 

рис. 1

Вычитание - рисунок 2. Разностью двух комплексных чисел a+ bi (уменьшаемое) и c+ di (вычитаемое) называется комплексное число (a-c ) + ( b – d ) i. Таким образом, при вычитании двух комплексных чисел отдельно вычитаются их абсциссы и ординаты.

рис.2

Умножение - рисунок 3. Произведением комплексных чисел a+ bi и c+ di называется комплексное число: ( ac – bd ) + ( ad + bc ) i . 

 

рис.3

Разделить комплексное число (рисунок 4) a+ bi (делимое) на другое c+ di (делитель) - значит найти третье число e+ f i (частное), которое будучи умноженным на делитель c+ di, даёт в результате делимое a+ bi. Если делитель не равен нулю, деление всегда возможно.

 

(a+bi/c+di) = ((a*c+b*d)/(c^2+d^2))+((b*c-a*d)/(c^2+d^2))*i.

 

рис.4

 

Текст программы.

 

Form1.h

#pragma once

double x1=0,y1=0,x2=0,y2=0,x3=0,y3=0;

namespace ComplexCalculator {

 

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>

/// Сводка для Form1

/// </summary>

public ref class Form1 : public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

 

protected:

/// <summary>

/// Освободить все  используемые ресурсы.

/// </summary>

~Form1()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::TextBox^  X1;

protected:

 

protected:

private: System::Windows::Forms::Label^  label1;

private: System::Windows::Forms::Button^  C1;

 

 

 

 

private: System::Windows::Forms::Label^  label2;

private: System::Windows::Forms::TextBox^  X2;

 

private: System::Windows::Forms::Label^  label3;

private: System::Windows::Forms::Label^  label4;

private: System::Windows::Forms::TextBox^  Y1;

private: System::Windows::Forms::TextBox^  Y2;

 

 

private: System::Windows::Forms::Label^  label5;

private: System::Windows::Forms::Label^  label6;

private: System::Windows::Forms::Button^  C2;

private: System::Windows::Forms::Button^  plus;

private: System::Windows::Forms::Button^  minus;

private: System::Windows::Forms::Button^  umnoj;

private: System::Windows::Forms::Button^  delit;

 

 

 

 

 

private: System::Windows::Forms::TextBox^  X3;

private: System::Windows::Forms::TextBox^  Y3;

 

 

private: System::Windows::Forms::Label^  label7;

private: System::Windows::Forms::Label^  label8;

 

 

protected:

 

private:

/// <summary>

/// Требуется переменная  конструктора.

/// </summary>

System::ComponentModel::Container ^components;

 

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный  метод для поддержки конструктора - не изменяйте

/// содержимое данного  метода при помощи редактора  кода.

/// </summary>

void InitializeComponent(void)

{

this->X1 = (gcnew System::Windows::Forms::TextBox());

this->label1 = (gcnew System::Windows::Forms::Label());

this->C1 = (gcnew System::Windows::Forms::Button());

this->label2 = (gcnew System::Windows::Forms::Label());

this->X2 = (gcnew System::Windows::Forms::TextBox());

this->label3 = (gcnew System::Windows::Forms::Label());

this->label4 = (gcnew System::Windows::Forms::Label());

this->Y1 = (gcnew System::Windows::Forms::TextBox());

this->Y2 = (gcnew System::Windows::Forms::TextBox());

this->label5 = (gcnew System::Windows::Forms::Label());

this->label6 = (gcnew System::Windows::Forms::Label());

this->C2 = (gcnew System::Windows::Forms::Button());

this->plus = (gcnew System::Windows::Forms::Button());

this->minus = (gcnew System::Windows::Forms::Button());

this->umnoj = (gcnew System::Windows::Forms::Button());

this->delit = (gcnew System::Windows::Forms::Button());

this->X3 = (gcnew System::Windows::Forms::TextBox());

this->Y3 = (gcnew System::Windows::Forms::TextBox());

this->label7 = (gcnew System::Windows::Forms::Label());

this->label8 = (gcnew System::Windows::Forms::Label());

this->SuspendLayout();

//

// X1

//

this->X1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 15, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->X1->Location = System::Drawing::Point(142, 32);

this->X1->Name = L"X1";

this->X1->Size = System::Drawing::Size(192, 36);

this->X1->TabIndex = 0;

this->X1->Text = L"0";

//

// label1

//

this->label1->AutoSize = true;

this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label1->Location = System::Drawing::Point(340, 43);

this->label1->Name = L"label1";

this->label1->Size = System::Drawing::Size(29, 20);

this->label1->TabIndex = 2;

this->label1->Text = L"+i*";

//

// C1

//

this->C1->Location = System::Drawing::Point(573, 32);

this->C1->Name = L"C1";

this->C1->Size = System::Drawing::Size(137, 36);

this->C1->TabIndex = 5;

this->C1->Text = L"Обнулить число";

this->C1->UseVisualStyleBackColor = true;

this->C1->Click += gcnew System::EventHandler(this, &Form1::C1_Click);

//

// label2

//

this->label2->AutoSize = true;

this->label2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label2->Location = System::Drawing::Point(340, 103);

this->label2->Name = L"label2";

this->label2->Size = System::Drawing::Size(29, 20);

this->label2->TabIndex = 8;

this->label2->Text = L"+i*";

//

// X2

//

this->X2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 15, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->X2->Location = System::Drawing::Point(142, 96);

this->X2->Name = L"X2";

this->X2->Size = System::Drawing::Size(192, 36);

this->X2->TabIndex = 7;

this->X2->Text = L"0";

//

// label3

//

this->label3->AutoSize = true;

this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label3->Location = System::Drawing::Point(10, 43);

this->label3->Name = L"label3";

this->label3->Size = System::Drawing::Size(126, 20);

this->label3->TabIndex = 12;

this->label3->Text = L"Первое число";

//

// label4

//

this->label4->AutoSize = true;

this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label4->Location = System::Drawing::Point(11, 107);

this->label4->Name = L"label4";

this->label4->Size = System::Drawing::Size(125, 20);

this->label4->TabIndex = 13;

this->label4->Text = L"Второе число";

//

// Y1

//

this->Y1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 15, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->Y1->Location = System::Drawing::Point(375, 32);

this->Y1->Name = L"Y1";

this->Y1->Size = System::Drawing::Size(192, 36);

this->Y1->TabIndex = 14;

this->Y1->Text = L"0";

//

// Y2

//

this->Y2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 15, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->Y2->Location = System::Drawing::Point(375, 92);

this->Y2->Name = L"Y2";

this->Y2->Size = System::Drawing::Size(192, 36);

this->Y2->TabIndex = 15;

this->Y2->Text = L"0";

//

// label5

//

this->label5->AutoSize = true;

this->label5->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label5->Location = System::Drawing::Point(138, 9);

this->label5->Name = L"label5";

this->label5->Size = System::Drawing::Size(205, 20);

this->label5->TabIndex = 16;

this->label5->Text = L"Действительная часть";

//

// label6

//

this->label6->AutoSize = true;

this->label6->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

Информация о работе Проектирование информационной системы «Калькулятор для комплексных чисел»