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){

20

double re = a.re - b.re;

double im = a.im - b.im;

cout << "Raznost': " << re << " + " << im << "i" << endl;

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

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom raznost'" << endl;

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

Complex t(re,im);

return t;

}

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

double re = a.re*b.re - a.im*b.im;

double im = a.im*b.re+a.re*b.im;

cout << "Proizvedenie: " << re << " + " << im << "i" << endl;

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

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom proiz." << endl;

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

Complex t(re,im);

return t;

}

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

if(b.re*b.re+b.im*b.im==0)

{

cout <<"Delenie na 0";

}

else{

double re=(a.re*b.re+a.im+b.im)/(b.re*b.re+b.im*b.im);

double im=(a.im*b.re-a.re*b.im)/(b.re*b.re+b.im*b.im);

cout << "Chasnoe: " << re << " + " << im << "i" << endl;

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

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom chastnoe" << endl;

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

Complex t(re,im);

return t;

}

}

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

int n;

cout << "Vvedite chislo stepeni:" << endl;

cin >> n;

double r=sqrt(a.re*a.re+a.im*a.im);

double rn=pow(2,r);

double f2=n*a.re/rn;

double f3=n*a.im/rn;

cout << "Trigonom form vozvedenie v stepen' a:" << endl;

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

Complex t(n,rn);

return t;

}

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

int m;

int k;

cout << "Vvedite chislo ctepeni korny:" << endl;

cin >> m;

cout << "Vvedite nomer korny:" << endl;

cin >> k;

double r=sqrt(a.re*a.re+a.im*a.im);

21

double rn=pow(2,r);

double f1=(m*a.re/rn+2*3,14*k)/m;

double f2=(m*a.im/rn+2*3.14*k)/m;

cout << "Trigonom form vyshislenie korny a:" << endl;

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

Complex t(m,k);

return t;

}

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

double r=sqrt(a.re*a.re+a.im*a.im);

double f2=a.re/r;

cout << "Eksponenta a:" << endl;

cout << r << "e^(i*" << f2 << ")" << endl;

Complex t(r,f2);

return t;

}

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;

}

#include "stdafx.h"

#include "Complex.h"

#include "conio.h"

#include "iostream"

#include "math.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

Complex a;

Complex b;

Complex ob;

a.ShowComplex();

b.ShowComplex();

a+b;

a-b;

a*b;

a/b;

a&b;

a&&b;

a==b;

getch();

return 0;

}

22

Приложение Б (Справочное)

Результаты тестирования

Скругленная прямоугольная выноска: Ввод первого числа

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

23

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


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

24

Скругленная прямоугольная выноска: Ввод степени

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

25

Информация о работе «Реализация класса для работы с комплексными числами»
Раздел: Информатика, программирование
Количество знаков с пробелами: 19075
Количество таблиц: 10
Количество изображений: 14

Похожие работы

Скачать
98486
19
1

... родителям и детям в пользовании социальными привилегиями, предоставляемыми школьникам. Второй подход, когда социальные работники включаются в штат шко­лы, имеет место в Германии. Здесь социальная работа в школе приобрета­ет в настоящее время всё большее значение. До недавних пор она ве­лась в основном только в образцовых школах. Задачу школы видели исключительно в обучении и образовании детей и ...

Скачать
19356
0
1

... : AT) — операция, при которой матрица отражается относительно главной диагонали, то есть Если A — матрица размера , то AT — матрица размера . 1.2 C++ C++ (Си++) — компилируемый статически типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования, но, в сравнении с его предшественником — языком Си, — наибольшее внимание уделено поддержке ...

Скачать
100658
15
18

... . Таким образом, разработка справочной системы должна быть подготовлена на этапе внедрения. Глава 2. Проектирование автоматизированной системы торговой деятельности   2.1 Принципиальное проектное решение В качестве автоматизированной системы управления торговой деятельностью предприятия предлагается использовать многопользовательское клиент-серверное приложение(двухуровневая архитектура), ...

Скачать
164026
22
2

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

0 комментариев


Наверх