Разработка приложения для работы с комплексными числами на языке С#

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    427,66 Кб
  • Опубликовано:
    2015-05-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка приложения для работы с комплексными числами на языке С#

РОССИЙСКАЯ ФЕДЕРАЦИЯ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО, ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК

Кафедра программного обеспечения






Курсовая работа

по дисциплине «Объектно-ориентированное программирование»

Тема: Разработка приложения для работы с комплексными числами на языке С#






Тюмень - 2014

Введение

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

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

В программе должны быть реализованы следующие операции по работе с комплексными числами:

сложение двух комплексных чисел;

вычитание двух комплексных чисел;

умножение двух комплексных чисел;

деление двух комплексных чисел;

нахождение n-ой степени комплексного числа;

вычисления модуля комплексного числа.

Для достижения целей были поставлены следующие задачи:

изучение предметной области;

изучение концепции объектно-ориентированного программирования;

изучение существующих аналогичных программ;

создание иерархии классов;

поиск алгоритма программы;

реализация алгоритма;

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

Глава 1. Описание предметной области

Комплексным числом называется выражение вида:

(1.1)


где число а называется действительной частью комплексного числа, bi-мнимой частью этого числа, b- коэффициентом мнимой части комплексного числа [1]. Суммой двух комплексных чисел

(1.2)

(1.3)


называется комплексное число

(1.4)


Комплексное число равно нулю тогда, когда его действительная часть и коэффициент мнимой части равны нулю, т.е.

(1.5)


если. Действительные числа являются частным случаем комплексных чисел. Если , то

действительное число.

(1.5)



Если , то

(1.6)



мнимое число.

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

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

(1.7)

(1.8)


называется комплексное число

(1.9)


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

(1.10)

 

.

(1.11)


Произведение комплексных чисел

(1.12)


называется комплексное число

.

(1.14)


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

Деление комплексных чисел определяется как действие, обратное умножению. Конкретное правило деления получим, записав частное в виде дроби и умножив числитель и знаменатель этой дроби на число, сопряженное со знаменателем:

=  .=

(1.15)


Модулем комплексного числа называется длина вектора, соответствующего этому числу:

|z|=

(1.16)


Возведение в степень комплексного числа делается ровно также, как и возведение в степень действительного числа. Надо лишь помнить, что мнимая единица в квадрате равна минус единице:

(1.17)


В настоящее время существует большое количество онлайн-сервисов для выполнения операций над комплексными числами. Это webmath.ru, mathsolution.ru, matemonline.com и т.д. Большинство из них выполняют базовые арифметические функции над комплексными числами.

Глава 2. Описание классов

Для реализации алгоритма используются следующие классы: Form1, Number и два наследующих класса RationalNumberOperation и ComplexNumber. (Рисунок.2.1 и Рисунок.2.2).

Рисунок 2.1 - Класс Form1

Рисунок 2.2 - Класс Number и два наследующих класса RationalNumberOperation и ComplexNumber

Описание созданных классов приведено в Таблице 2.1.

Таблица 2.1 - Классы

Класс

Назначение

Form1 (Рисунок.1.1)

Отвечает за работу главного окна приложения

Number(Рисунок.1.3)

Класс, от которого наследуются классы RationalNumberOperation и ComplexNumber.

RationalNumberOperation(Рисунок.1.4)

Класс для реализации действительной части комплексного числа.

ComplexNumber(Рисунок.1.5) (см. Приложение 1)

Класс для реализации мнимой единицы и операций над комплексными числами. [2]


Поля классаForm1представлены на Рисунке 2.1: Это поля, хранящие значения действительной и мнимой частей комплексных чисел.

Методы класса Form1 приведены в Таблице 2.2.

Таблица 2.2 - Методы класса Form1

Метод

Назначение

Secondnumber (параметры отсутствуют)

Активация поля второго комплексного числа

Zamena (параметры отсутствуют)

Замена значения первого комплексного числа на значение второго.

Calculate (параметры отсутствуют)

Возвращение результата вычислений.


Абстрактный класс Numberс модификатором доступа public (Рисунок 2.3).

Поля:

не имеет полей.

Методы класса Number представлены в Таблице 2.3.

Таблица 2.3 - Методы класса Number

Метод

Назначение

Info

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


Рисунок 2.3 - Класс Number

Класс RationalNumberOperation(модификатор доступа public-Рисунок 2.4).

Поля:действительная часть комплексного числа (модификатор доступа protected).

Свойства:- управляет доступом к полю re (модификатор доступа public).

Методы класса RationalNumberOperation представлены в Таблице 2.4.

Таблица 2.4 - Методы класса RationalNumberOperation

Метод

Назначение

Info

Переопределенный метод Info для вывода информации о действительной части комплексного числа.

RationalNumberOperation (спараметром Double n)

Инициализация поля re.

~RationalNumberOperation()

Деструктор.[3]


Рисунок 2.4 - КлассRationalNumberOperation

Класс ComplexNumber (модификатордоступаpublic - Рисунок 2.5).

Поля:- мнимая часть комплексного числа.

Методы класса ComplexNumber приведены в Таблице 2.5.

Таблица 2.5 - Методы класса ComplexNumber

Метод

Назначение

 

Abs(ComplexNumber cn)

Возвращает модуль комплексного числа

 

Delen(ComplexNumber cn1, ComplexNumber cn2)

Возвращает частное комплексных чисел

 

Summa(ComplexNumber cn1, ComplexNumber cn2)

Возвращает сумму комплексных чисел

 

Raznost(ComplexNumber cn1, ComplexNumber cn2)

Возвращает разность комплексных чисел

 

Pow (ComplexNumber cn, float n)

Возводит комплексное число в степень

 

Multiply (ComplexNumber cn1, ComplexNumber cn2)

Возвращает произведение комплексных чисел

 

Info

Переопределенный метод, выводит конечные данные о результатах вычислений (действительную и мнимую части).

 

operator *(ComplexNumber a, ComplexNumber b)

Возвращает произведение комплексных чисел

 

ToString()

Возвращает значение действительной и мнимой частей.

 

~ ComplexNumber

Деструктор.

 

ComplexNumber(Double re, Double im) : base(re)

Производит инициализацию поля im.


Рисунок 2.5 - Класс ComplexNumber

Обработка исключений

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

Собственные классы исключений

Рисунок 2.6 - Схема наследования классов исключений

- класс, являющийся наследующим для класса ApplicationExсeption и реализующий исключение, которое срабатывает при неверном задании аргумента (пользователь для обозначения десятичной дроби использовал точку, попытка ввода, как числа, так и литеры). Программа уведомляет пользователя об ошибке в записи комплексного числа.[4]

Глава 3. Алгоритм выполнения работы программы

Блок-схема выполнения выбранной пользователем операции представлена на Рисунке 3.1.
















Рисунок 3.1 -Алгоритм выполнения вычислений

3.1 Тестирование программы

Тестирование программы было произведено рядом студентов, в ходе которого возникла исключительная ситуация:

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

3.2 Минимальные технические требования к компьютеру

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

процессор IntelPentium/Celeron 2400 МГц и выше;

объём ОЗУ 512 Мб и больше;

Мб свободного пространства на жёстком диске;

операционная система MicrosoftWindowsXP/Vista/Windows7;

наличие устройств ввода-вывода: монитор, мышь, клавиатура.

3.3 Схема работы приложения

Блок - схема работы приложения представлена на Рисунке 3.2.

Рисунок 3.2 - Блок-схема работы приложения

Глава 4. Интерфейс программы

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

Программа позволяет складывать, вычитать, умножать, делить комплексные числа и выводить результат. На форме располагаются шесть текстовых полей. Верхние четыре поля, для ввода чисел z1 и z2, а нижнее для вывода расчетов. В нижнем правом углу поле для указания в степени n (Рисунок 4.1).

Рисунок 4.1- Интерфейс программы

Инструкция пользователя

Вычисление модуля комплексного числа (Рисунок. 4.2):

Рисунок 4.2 - Вычисление модуля комплексного числа

Для ввода значения действительных и мнимых частей первого комплексного числа (z1) необходимо нажать на соответствующие текстовые окна. По умолчанию введены значения 1 и 2. При недоступном втором комплексном числе возможно только вычисление модуля и возведение в степень единственного значения. Для выбора соответствующей опции необходимо выбрать один из переключателей.[5] После нажатия кнопки «Вычислить» результат вычислений отображается в нижнем текстовом поле, также отображается информация о числе внизу решения.

Для активации полей ввода второго комплексного числа нужно нажать на флажок около значения z2 (Рисунок4.3) . После активации поля становятся доступными операции сложения, вычитания, умножения и деления.

Рисунок 4.3 - Вычисление суммы комплексных чисел

Заключение

программа тестирование комплексный число

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

Программа обеспечивает ввод с клавиатуры одного или двух комплексных чисел и вычисление требуемых параметров одного числа или осуществление арифметических операций с двумя числами.

Программа рассчитана на любого пользователя, в том числе непрофессионального, т.к. программа является легкой в использовании.

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

1.      Комплексные числа и работа с ними. URL: http://www.dsplib.ru/content/complex/complex.html(дата обращения: 25.11.2014).

.        Ашарина И. В. Объектно-ориентированное программирование в C++: лекции и упражнения : учеб. пособие//. - М: Горячая линия: Телеком, 2008. - 320с.

.        Основы объектно-ориентированного программирования. URL: http://professorweb.ru/my/csharp/charp_theory/level3/3_1.php (дата обращения: 20.11.2014).

.        Фленов М. Библия С# //. - БХВ-Петербург, 2011.-560 с.

.        Ушаков, М. Инструментарий разработчика C# [Текст] / М. Ушаков // Системный администратор. - 2013. - №10. - С. 85-91.

Приложение

: RationalNumberOperation

{im = 1f;Im

{

{im;

}

{= value;

}

}ComplexNumber() { }ComplexNumber(Double re, Double im) : base(re)

{= im;

}

~ComplexNumber();Abs(ComplexNumber cn)

{m = (float)Math.Sqrt(cn.Re * cn.Re + cn.Im * cn.Im);m;

}Summa(ComplexNumber cn1, ComplexNumber cn2)

{CN = newComplexNumber();.Re = cn1.Re + cn2.Re;.Im = cn1.Im + cn2.Im;CN;

}Raznost(ComplexNumber cn1, ComplexNumber cn2)

{CN = newComplexNumber();.Re = cn1.Re - cn2.Re;.Im = cn1.Im - cn2.Im;CN;

}Multipli(ComplexNumber cn1, ComplexNumber cn2)

{CN = newComplexNumber();.Re = cn1.Re * cn2.Re - cn1.Im * cn2.Im;.Im = cn1.Re * cn2.Im + cn1.Im * cn2.Re;CN;

}Delen(ComplexNumber cn1, ComplexNumber cn2)

{CN = newComplexNumber();.Re = (cn1.Re * cn2.Re + cn1.Im * cn2.Im) / (cn2.Re * cn2.Re + cn2.Im * cn2.Im);.Im = (cn1.Im * cn2.Re - cn1.Re * cn2.Im) / (cn2.Re * cn2.Re + cn2.Im * cn2.Im);CN;

}Pow(ComplexNumber cn, float n)

{CN = newComplexNumber(1, 0);(int i = 0; i < n; i++)= Multipli(CN, cn);CN;

}ToString()

{(this.Re + " + i" + this.Im).ToString();

}Info()

{"Действительнаячасть: " + re + "\nМнимаячаcть: " + im;

}*(ComplexNumber a, ComplexNumber b)

{c = newComplexNumber();.Re = a.Re * b.Re - a.Im * b.Im;.Im = a.Re * b.Im + a.Im * a.Re;

return c;

}

}

Похожие работы на - Разработка приложения для работы с комплексными числами на языке С#

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!