Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

C++ — компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Курсовая работа по курсу «» Объектно-ориентированное… Читать ещё >

Разработка калькуляторов. Комплексные числа в алгебраической, тригонометрической и экспоненциальной формах (реферат, курсовая, диплом, контрольная)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра АТ Пояснительная записка к курсовой работе по дисциплине

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

на тему: «Разработка калькуляторов. Комплексные числа в алгебраической, тригонометрической и экспоненциальной формах.»

Выполнил ст.гр. ТКС-10а Бесклетка Д.П.

Руководитель Яремко И. Н.

Донецк 2011

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

Курсовая работа по курсу «» Объектно-ориентированное программирование" выполняется индивидуально каждым студентом в соответствии с выданным преподавателем вариантом. Обязательным является использование в курсовой работе объектно-ориентированного подхода и пользовательских классов.

В процессе работы автор должен

1. Выполнить анализ предметной области.

2. Разработать пользовательские классы.

3. Разработать алгоритмы, реализующие компонентные функции классов и перегруженные операции.

4. Разработать пользовательский интерфейс для ввода и получения информации.

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

6. Провести отладку и тестирование программы.

7. Оформить для нее документацию.

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

СОДЕРЖАНИЕ СОДЕРЖАНИЕ ВВЕДЕНИЕ

1. ПОСТАНОВКА ЗАДАЧИ Сложение, вычитание, умножение, деление, возведение в целую степень, извлечение квадратного корня (по формуле Муавра), преобразование из одной формы в другую

2. ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ

3. ОПИСАНИЕ КЛАССОВ

4.БЛОК-СХЕМЫ

5.ОПИСАНИЕ И ТЕСТИРОВАНИЕ РАБОТЫ ПРОГРАММЫ ВЫВОДЫ СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ Приложение А.

ВВЕДЕНИЕ

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

Целью курсовой работы является закрепление и углубление знаний, полученных в курсе «Объектно-ориентированное программирование», развитие навыков при выборе представления исходных данных, использовании объектно-ориентированного подхода при написании программ на языке С++, тестировании и отладки программы, оформлении документации на программную разработку.

Благодаря современной вычислительной технике довольно громоздкие вычисления выполняются очень быстро и точно.

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

1. ПОСТАНОВКА ЗАДАЧИ Разработать класс «Калькулятор», выполняющий указанные в варианте операции для заданных исходных данных. Программа должна выполнять ввод данных, проверку правильности введенных данных, выдачу соответствующих сообщений в случае возникновения ошибок.

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

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

Индивидуальное задание:

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

Операции:

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

2. ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ программа язык сложение муавр С++ является языком программирования общего назначения. Естественная для него область применения — системное программирование, понимаемое в широком смысле этого слова. Кроме того, С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров — до самых больших супер-ЭВМ, и практически для всех операционных систем. Поэтому книга дает лишь описание собственно языка, не объясняя особенности конкретных реализаций, среды.

C++ — компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает операционные системы, прикладные программы, драйверы устройств, приложения для встраиваемых систем, высокопроизводительные серверы, а также развлекательные приложения, например, видеоигры. Существует несколько реализаций языка, как бесплатных, так и коммерческих. Их производят GNU Project, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на C# и Java.

При создании C++ стремились сохранить совместимость с языком C. Большинство программ на C будут исправно работать и с компилятором C++. C++ имеет синтаксис, основанный на синтаксисе C.

3. ОПИСАНИЕ КЛАССОВ В данной курсовой работе разработан 1 класс:

Класс complex:

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

Real — действительная часть

Imagine — мнимая часть

A — модуль

J — угол

сomplex () — конструктор. Выбирается форма комплексного числа и производится ввод.

~ complex () — деструктор. Используется для удаления памяти, выделенной под комплексное число в конструкторе.

Функции:

— show_algвывод текущего числа в алгебраической форме.

— show_ trig — вывод текущего числа в тригонометрической форме.

— show_ pok — вывод текущего числа в показательной форме.

— stepen, muavrфункции возведения в квадрат и квадратного корня комплексного числа.

— void file — служит для записи данных в файл

4.БЛОК-СХЕМЫ Блок-схема конструктора класса complex.

Блок-схема функции вывода числа в алгебраической форме.

Блок-схема функции вывода числа в тригонометрической форме.

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

Блок-схема перегрузки оператора =

Блок-схема перегрузки оператора +

Блок-схема перегрузки оператора ;

Блок-схема перегрузки оператора *

Блок-схема перегрузки оператора /

1 2

1.Блок-схема функции возведения в степень комплексного числа.

2.Блок-схема функции квадратного корня комплексного числа.

Блок-схема основной программы.

5.ОПИСАНИЕ И ТЕСТИРОВАНИЕ РАБОТЫ ПРОГРАММЫ При запуске программы мы видим следующее (рисунок 1):

программа предлагает пользователю выбрать операцию.

Рисунок 1 — начало работы программы.

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

Рисунок 2 — выбор формы числа.

После выбора начальной формы числа пользователю необходимо ввести действительную и мнимую части комплексного числа Рисунок 3 — Ввод данных.

Затем выбирается форма записи, в которой пользователь хочет представить комплексное число (рис 4).

Рисунок 4 — выбор формы записи.

После этого выводятся результаты перевода (рис. 5).

Рисунок 5 — вывод результата.

Затем программа переходит в предыдущее меню (рис.4), позволяющее изменить форму комплексного числа или выйти в главное меню.

Выбрав пункт 4 программа возвращается в главное меню.

Выбрав в главном меню 2, откроется калькулятор комплексных чисел (рис.6).

Рисунок 6 — меню калькулятора.

Первый пункт меню программы это — сложение. После выбора этого пункта.

Второй — разность.

Третий — произведение.

Четвертый — деление.

Пятый — возведение в целую степень.

Шестой — квадратный корень по формуле Муавра.

При выборе пункта 1−6 программа запросит форму двух комплексных чисел и ввод числа в соответствующей форме (рис. 7, 8).

Рисунок 7 — выбор формы комплексного числа Рисунок 9 — ввод комплексных чисел Затем программа произведет расчет функции и вывод результата во всех трех формах записи (рис 9).

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

Выбрав пункт 7, программа возвращается в предыдущее меню.

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

ВЫВОДЫ В данной курсовой работе был осуществлен анализ работы калькулятора. Разработаны классы и методы, необходимые для работы программы, разработан интерфейс пользователя. Программа написана на языке С++, exe-файл имеет объем 5 147 байт.

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

Разработка программы дала возможность понять преимущества объектно-ориентированного программирования, которое помогает упростить написание и выполнение задач подобного типа, позволяет повысить скорость работы программы.

1. Павловская Т.А."С/С++. «Программирование на языке высокого уровня», СПб.-2007

2. Павловская Т. А., Щупак Ю. А. «С/С++. Структурное программирование: Практикум», СПб.-2003

3. Прата С. «Язык программирования С++» Культин, «С++ в задачах и примерах»

4. Страуструп Б. «Язык программирования Си++» Пер. с англ. — М.: Радио и связь, 1991.-352с.

5. Вирт Н. «Алгоритмы + структуры данных = программы». — М.: Мир, 1985. — 406 с.

Приложение А

#include

#include

#include

#include

#include

#include

class complex{

double a, real, imagine, j;

public:

complex (int k){

a=k;

real=k;

imagine=k;

j=k;}

void file (char s1[20], char s2[20])

{char q[40];

ofstream f;

strcpy (q, s2);

f.open (q, ios: out);

if (s1[0]≠'0')

f<

f<<" Algebraicheskaya forma: n" <<

real<<" +j («<<»)" <<

" nTrigonometricheskaya forma: n" <<

a<<" *cos («<<»)+j*" <<" *sin («<<»)" <<

" nPokazatelnaya forma: n" <<

a<<" *e^j*(«<<»)" <

f.close ();

cout<<" nFail sohranen v «<<» «;

cout<<" nNazhmite lubuyu klavishu dlya prodolzheniya!" ;

}

complex (){

cout<<" Vyberite formu komplexnogo chisla: n" <<

" Algebr — 1n" <<

" Trigonometr — 2n" <<

" Pokazatelnaya — 3n" ;

char key;

key=getch ();

switch (key){

case'1':{clrscr ();

cout<<" Vvedite dejstvitelnuy chast': «;

cin>>real;

cout<<" Vvedite mnimuy chast': «;

cin>>imagine;

a=ceil (sqrt (real*real+imagine*imagine)*100)/100;

j=ceil ((atan (imagine/real)*100)*57.3)/100;break;}

case'2':{clrscr ();

cout<<" Vvedite ugol: «;

cin>>j;

cout<<" Vvedite A: «;

cin>>a;

real=ceil (cos (j/57.3)*a*100)/100;

imagine=ceil (sin (j/57.3)*a*100)/100;break;}

case'3':{clrscr ();

cout<<" Vvedite stepen' (j): «;

cin>>j;

cout<<" Vvedite A: «;

cin>>a;

real=ceil (cos (j/57.3)*a*100)/100;

imagine=ceil (sin (j/57.3)*a*100)/100;break;}

}

}

show_alg (){

cout<<" Algebraicheskaya forma: n" <<

real<<" +j («<<»)" <

show_trig (){

cout<<" nTrigonometricheskaya forma: n" <<

a<<" *cos («<<»)+j*" <

<" *sin («<<»)" <

show_pok (){

cout<<" nPokazatelnaya forma: n" <<

a<<" *e^j*(«<<»)" <

complex&complex:operator=(complex&M)

{

a=M.a;

real=M.real;

imagine=M.imagine;

j=M.j;

return *this;

}

complex complex: operator+(complex M)

{complex temp (0);

temp.real=real+M.real;

temp.imagine=imagine+M.imagine;

temp.a=ceil (sqrt (temp.real*temp.real+temp.imagine*temp.imagine)*100)/100;

temp.j=ceil ((atan (temp.imagine/temp.real)*100)*57.3)/100;

return temp;

}

complex complex: operator-(complex M)

{complex temp (0);

temp.real=real-M.real;

temp.imagine=imagine-M.imagine;

temp.a=ceil (sqrt (temp.real*temp.real+temp.imagine*temp.imagine)*100)/100;

temp.j=ceil ((atan (temp.imagine/temp.real)*100)*57.3)/100;

return temp;

}

complex complex: operator*(complex M)

{complex temp (0);

temp.a=a*M.a;

temp.j=j+M.j;

temp.real=ceil (cos (temp.j)*temp.a*100)/100;

temp.imagine=ceil (sin (temp.j)*temp.a*100)/100;

return temp;

}

complex complex: operator/(complex M)

{complex temp (0);

temp.a=a/M.a;

temp.j=j-M.j;

temp.real=ceil (cos (temp.j)*temp.a*100)/100;

temp.imagine=ceil (sin (temp.j)*temp.a*100)/100;

return temp;

}

stepen (){

cout<<" Vvedite stepen': «;

int k;

cin>>k;

a=pow (a, k);

j=j*k;

real=ceil (cos (j/57.3)*a*100)/100;

imagine=ceil (sin (j/57.3)*a*100)/100; }

muavr (){j=j/2;}

};

void main (){clrscr ();

m1:

textcolor (YELLOW);

clrscr ();

cout<<" tttMENUn" <<

" Perevod iz odnoj formy v druguy — press 1n" <<

" Kalkulator — press 2n" <<

" Exit — press 3n" ;

char s;

s=getch ();

switch (s){

case'1':{textcolor (CYAN);

clrscr ();

complex a;

m2:

clrscr ();

cout<<" Viberite formu, v kot neobh. perevesti: n" <<

" Algebr — 1n" <<

" Pokazatelnaya — 2n" <<

" Trigonometr — 3n" <<

" V predydushee menu — 4n" ;

char s1;

s1=getch ();

switch (s1){

case'1':{clrscr ();a.show_alg ();getch ();goto m2;}

case'2':{clrscr ();a.show_pok ();getch ();goto m2;}

case'3':{clrscr ();a.show_trig ();getch ();goto m2;}

case'4':{clrscr ();goto m1;}}

goto m1;}

case'2':{clrscr ();

m3:

textcolor (GREEN);

clrscr ();

cout<<" Viberite dejstvie: n" <<

" Slogenie — 1n" <<

" Vychitanie — 2n" <<

" Proizvedenie — 3n" <<

" Delenie — 4n" <<

" Vozvedenie v celuy stepen'- 5n" <<

" Kv. koren' po formule MUAVRA — 6n" <<

" V predydushee menu — 7n" ;

char s2;

s2=getch ();

switch (s2){

case'1':{clrscr ();

cout<<" 1 chislo: n" ;

complex b;

clrscr ();

cout<<" 2 chislo: n" ;

complex c;

complex s (0);

s=b+c;

clrscr ();

s.show_alg ();

s.show_pok ();

s.show_trig ();

cout<<" nnHotite sohranit' rezultat v fail?" <<

" n1 — dan2 — netn" ;

int r;

cin>>r;

if (r==1){

cout<<" kuda sohranit' fail? n" ;

char put[20];

cin>>put;

s.file («Rezult of summan», put); }

getch ();

goto m3;}

case'2':{clrscr ();

cout<<" 1 chislo: n" ;

complex b;

clrscr ();

cout<<" 2 chislo: n" ;

complex c;

complex s (0);

s=b-c;

clrscr ();

s.show_alg ();

s.show_pok ();

s.show_trig ();

cout<<" nnHotite sohranit' rezultat v fail?" <<

" n1 — dan2 — netn" ;

int r;

cin>>r;

if (r==1){

cout<<" kuda sohranit' fail? n" ;

char put[20];

cin>>put;

s.file («Rezult of raznost’n», put); }

getch ();

goto m3;}

case'3':{clrscr ();

cout<<" 1 chislo: n" ;

complex b;

clrscr ();

cout<<" 2 chislo: n" ;

complex c;

complex s (0);

s=b*c;

clrscr ();

s.show_alg ();

s.show_pok ();

s.show_trig ();

cout<<" nnHotite sohranit' rezultat v fail?" <<

" n1 — dan2 — netn" ;

int r;

cin>>r;

if (r==1){

cout<<" kuda sohranit' fail? n" ;

char put[20];

cin>>put;

s.file («Rezult of proizvedenien», put); }

getch ();

goto m3;}

case'4':{clrscr ();

cout<<" 1 chislo: n" ;

complex b;

clrscr ();

cout<<" 2 chislo: n" ;

complex c;

complex s (0);

s=b/c;

clrscr ();

s.show_alg ();

s.show_pok ();

s.show_trig ();

cout<<" nnHotite sohranit' rezultat v fail?" <<

" n1 — dan2 — netn" ;

int r;

cin>>r;

if (r==1){

cout<<" kuda sohranit' fail? n" ;

char put[20];

cin>>put;

s.file («Rezult of delenien», put); }

getch ();

goto m3;}

case'5':{clrscr ();

complex b;

clrscr ();

b.stepen ();

clrscr ();

b.show_alg ();

b.show_pok ();

b.show_trig ();

getch ();

goto m3;}

case'6':{clrscr ();

complex b;

clrscr ();

b.muavr ();

clrscr ();

cout<<" Kv. koren' po Muavra: n" ;

b.show_trig ();

getch ();

goto m3;}

case'7':{clrscr ();goto m1;}

}

}

case'3':{clrscr ();

cout<<" Rabota zavershena! n" ;

getch (); }

}

}

Реферат

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

Цель работы — закрепление и углубление знаний, полученных студентами в курсе «Объектно-ориентированное программирование», развитие навыков при выборе представления исходных данных, использовании объектно-ориентированного подхода при написании программ на языке С++, тестировании и отладки программы, оформлении документации на программную разработку.

Ключевые слова:

КАЛЬКУЛЯТОР, КОМПЛЕКСНОЕ ЧИСЛО, АРИФМЕТИЧЕСКИЕ ДЕЙСТВИЯ, ФУНКЦИИ, ОПЕРАЦИИ, ФАЙЛЫ.

Показать весь текст
Заполнить форму текущей работой