Смекни!
smekni.com

Реализация класса для работы с комплексными числами (стр. 2 из 3)

Вторая формула Муавра:


2.4 Описание схемы программы




Глава 3 РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ


3.1 Описание используемых типов данных

В программе используются следующие типы данных:

1) Double – тип данных с плавающей точкой двойной точности. Диапазон значений от 1,7Е-308 до 1,7Е+308. Длина типа double вне зависимости от используемого компилятора всегда больше или равна длине типа float и короче или равна длине типа long double.

2) Int – предназначен для хранения целых чисел, входящих в диапазон от -2147489648 до +2147483647, имеет размер 32-разрядное целое число со знаком. Над переменными типа int могут выполняться следующие операции: сложение, вычитание, умножение, деление, целочисленное деление, деление с остатком.

3.2 Проектирование интерфейса

Данная программа разрабатывалась с помощью среды программирования Microsoft Visual Studio 2005. Программа является консольным приложением. Интерфейс программы во время выполнения:


3.3 Написание кода для ввода и вывода исходных данных

Код для ввода и вывода данных:

void Complex::ShowComplex(){

cout << "Vvedite chislo" <<endl;

cin >> re;

cin >> im;

cout << "Arif. forma: " << re << " + " << im << "i" << endl;

double z=sqrt(re*re+im*im);

cout << "Modul' shisla:" << z << endl;

cout << "Trigonom form" << endl;

double f=re/z;

double f1=im/z;

cout << z << "(cos(" << f << ") + isin(" << f1 << "))" << endl;

}

Глава 4 ТЕСТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ

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

Тестирование программы проводилось с целью проверки работоспособности программы.

Тестирование проводилось на персональном компьютере со следующими характеристиками:

- Процессор Celeron(R);

- Видеокарта SIS 650/651/740/661FX/741/760 series;

- Оперативная память 256 Mb;

- Материнская плата ECS NForce3-A;

- Монитор LG Flatron T750BH Plus;

- Винчестер 80Gb.

Результаты тестирования приведены в приложении Б.


Глава 5 ЭНЕРГО И РЕСУРСОСБЕРЕЖЕНИЕ

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

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

- использования ждущего режима;

- использования спящего режима;

- использования LCD мониторов;

- приобщения к менее ресурсоемким передовым технологиям.

В настоящее время энергетическая проблема является одной из наиболее актуальных для Республики Беларусь. Степень самообеспечения энергоресурсами в последние годы в среднем составляет около 15%. Миллиарды долларов ежегодно тратит наша республика на закупки энергоносителей за рубежом. Одним из основных направлений решения энергетической проблемы является энергосбережение. По некоторым оценкам, его потенциал на нынешний момент составляет до 30 % от всех средств, расходуемых на приобретение энергоносителей. В комплексе мероприятий, направленных на повышение эффективности использования энергии, важнейшая роль отводится формированию информационно-образовательной системы по вопросам энергосбережения.

Режимы труда и отдыха при работе с ЭВМ, ПЭВМ и ВДТ должны определятся видом и категорией трудовой деятельности.

Виды трудовой деятельности разделяются на 3 группы:

- группа А – работа по считыванию информации с экрана ВДТ, ПЭВМ или ЭВМ с предварительным запросом;

- группа Б – работа по вводу информации;

- группа В – творческая работа в режиме диалога с ЭВМ.


Категории работы с ВДТ, ЭВМ и ПЭВМ Уровень нагрузки за рабочую смену при видах работ с ВДТ Суммарное время регламентированных перерывов, мин
группа А, количество знаков группа Б, количество знаков группа В, час. при 8-ми часовой смене при 12-ти часовой смене
1 до 20000 до 1500 до 2,0 30 70
11 до 40000 до 3000 до 4,0 50 90
111 до 60000 до 4000 до 6,0 70 120

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

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

Ждущий режим - позволяет экономить энергию, за счет отключения всех периферийных устройств, кроме ЦПУ, ОЗУ и материнской платы.

Спящий режим - позволяет экономить электроэнергию на 100%, так как отключаются все периферийные устройства.

Основной режим - при этом режиме экономии нет. Потребляемая мощность около 400Ватт.

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

n = Тпк /(8-tрп),

где Тпк– время работы компьютера, ч;

Тпк =80 ч.;

tрп– суммарное время регламентированных перерывов, в течение

рабочего дня, ч;

tрп =80 мин=4/3 часа.

n=80/(8-1.33) = 12 дней.

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

Трп = n ´ tрп, (2)

где Трп – суммарная продолжительность регламентированных перерывов в течение всего времени разработки программного модуля.

Трп = 12 ´ 1.33=15,96 ч.

Экономия электроэнергии рассчитывается по формуле:

Сэн=Трп´(Wпк-Wсп)´250,(3)

где Wпк– потребляемая мощность ПК, кВт;

Wпк = 0,6 кВт;

Wсп– потребляемая мощность компьютера в ждущем режиме;

Wсп = 0,1 кВт.

Сэн=15,96´(0,6-0,1)´250=1995 руб.

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

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

6. вычисления корня n-ой степени комплексного числа;

7. перевод чисел из арифметической формы в тригонометрическую и в показательную формы;

Курсовой проект содержит программу со всеми необходимыми файлами, хранящуюся на диске, а также блок-схему, иллюстрирующую работу программы.


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Павловская Т. А., Щупак Ю. А. «C++. Объектно-ориентированное программирование: Практикум.» — СПб.: Питер, 2006. — 265 с: ил.

2. Шилдт Г. «Самоучитель C++» : Пер. с англ. — 3-е изд. — СПб.: БХВ-Петербург, 2005. — 688 с.

3. Бишоп ДЖ., Хорспул Н. «C в кратком изложении»: Пер. с англ. – М.: БИНОМ. Лаборатория знаний, 2005. – 472 с., ил.

4. Агуров П.В. «C. Сборник рецептов». – СПб.: БХВ-Петербург, 2007. – 432 с.: ил.

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

6. Седжвик Р. «Фундаментальные алгоритмы на C++.»: Пер. с англ. – К.: Издательство «ДиаСофт», 2001. – 688с.

7. «Основы Microsoft Visual Studio.NET.»: Пер. С англ. – М.: Издательско-торговый дом «Русская Редакция», 2003. – 464 стр.: ил.

8. Гусак А.А. «Высшая математика» - Минск : ТетраСистемс, 2007. – 544 с.

9. Кунцевич С.П. «Языки С и С++» - Витебск: Издательство УО «ВГУ им. П. М. Машерова», 2004. – 64 с.

10. Роберт С. «Фундаментальные алгоритмы на С++»: Пер. с англ. – К.: Издательство «ДиаСофт», 2001. – 688 с.


ПРИЛОЖЕНИЯ

Приложение А (обязательное)

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

#pragma once

class Complex

{

public:

friend Complex operator + (Complex &a1, Complex &b1);

friend Complex operator - (Complex &a1, Complex &b1);

friend Complex operator * (Complex &a1, Complex &b1);

friend Complex operator / (Complex &a1, Complex &b1);

friend Complex operator & (Complex &a1, Complex &b1);

friend Complex operator &&(Complex &a1,Complex &b1);

friend Complex operator == (Complex &a1,Complex &b1);

void ShowComplex();

public:

Complex(void);

Complex(double a1, double b1);

~Complex(void);

int n;

private:

double re;

double im;

};

#include "stdafx.h"

#include "Complex.h"

#include "iostream"

#include "math.h"

using namespace std;

Complex::Complex(void)

{

}

Complex::Complex(double a, double b)

{

re=a;

im=b;

}

Complex::~Complex(void)

{

}

Complex operator + (Complex &a, Complex &b){

double re = a.re + b.re;

double im = a.im + b.im;

cout << "Summa arif.forma: " << re << " + " << im << "i" << endl;

double f1=sqrt(re*re+im*im);

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom summa" << endl;

cout << f1 << "(cos(" << f2 << ") + isin(" << f3 << "))" << endl;

Complex t(re,im);

return t;

}

Complex operator - (Complex &a, Complex &b){