Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 19:34   #11
настюх
Пользователь
 
Регистрация: 13.10.2011
Сообщений: 16
По умолчанию

У меня тож программа не работает,нет возвращаемого значения operator >> и operator<<.Помогите!!!

# include<iostream>
# include<math.h>
using namespace std;
class Tcomplex
{
public:

float a,b;

Tcomplex(float an=0,float bn=0)
{
a=an;
b=bn;
}
Tcomplex operator = (Tcomplex c)
{
a=c.a;
b=c.b;
return (*this);
}

friend ostream& operator<<(ostream& os, const Tcomplex& tc)
{
//os<<tc.a<<(tc.b>0?"+":"")<<tc.b<<"i ";
os<<tc.a;
if(tc.b>0)
os<<"+";
os<<tc.b<<"i";
}

friend istream& operator>>(istream& is,Tcomplex& tc)
{
cout<<"введите действительную часть числа ";
is>>tc.a;
cout<<"введите мнимую часть числа ";
is>>tc.b;
}


void print ()
{
cout<<a<<"+"<<b<<"i"<<endl;
}

Tcomplex operator + (Tcomplex c)
{
Tcomplex result;
result.a=a+c.a;
result.b=b+c.b;
return result;
}
Tcomplex operator - (Tcomplex c)
{
Tcomplex result;
result.a=a-c.a;
result.b=b-c.b;
return result;
}
Tcomplex operator * (Tcomplex c)
{
Tcomplex result;
result.a=a*c.a-b*c.b;
result.b=b*c.a+c.b*a;
return result;
}
Tcomplex operator / (Tcomplex c)
{
Tcomplex result;
result.a=(a*c.a+b*c.b)/(c.a*c.a+c.b*c.b);
result.b=(b*c.a-c.b*a)/(c.a*c.a+c.b*c.b);
return result;
}
void trig ()
{
float alpha;
alpha=atan(b/a);
cout<<this->getModule()<<"("<<"cos"<<alpha<<"+ i sin"<<alpha<<")";
}
double getModule ()
{
return sqrt(a*a+b*b);
}

};


int main ()
{
Tcomplex c,c1;
cin>>c;
cout<<"само число: "<<c<<endl;
cout<<"введите слагаемое:"<<endl;
cin>>c1;
cout<<"слагаемое:"<<c1<<endl;
cout<<"перегруженный оператор сложения "<<c+c1+c1<<endl;
cout<<"перегруженный оператор вычитания "<<c-c1-c1<<endl;
cout<<"перегруженный оператор умножения "<<c*c1*c1<<endl;
cout<<"перегруженный оператор деления "<<c/c1/c1<<endl;
cout<<"модуль первого числа: "<<c.getModule()<<endl;
cout<<"тригонометрическая: ";
c.trig();
cout<<endl;
return 0;
}
настюх вне форума Ответить с цитированием
Старый 13.10.2011, 20:36   #12
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от настюх Посмотреть сообщение
У меня тож программа не работает,нет возвращаемого значения operator >> и operator<<.Помогите!!!
Код:
friend ostream& operator<<(ostream& os, const Tcomplex& tc)
{
//os<<tc.a<<(tc.b>0?"+":"")<<tc.b<<"i ";
os<<tc.a;
if(tc.b>0)
os<<"+";
os<<tc.b<<"i";
return os;
}

friend istream& operator>>(istream& is,Tcomplex& tc)
{
cout<<"введите действительную часть числа ";
is>>tc.a;
cout<<"введите мнимую часть числа ";
is>>tc.b;
return is;
}
An1ka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
классы денис николюк Помощь студентам 1 21.01.2011 00:08
классы Dimarik Общие вопросы C/C++ 1 18.09.2009 20:32