[YTU]_2535 (Problem I: C++复数运算符重载(+与))
生活随笔
收集整理的這篇文章主要介紹了
[YTU]_2535 (Problem I: C++复数运算符重载(+与))
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義一個復數類Complex,重載運算符“+”,使之能用于復數的加法運算與輸出操作。
(1)參加運算的兩個運算量可以都是類對象,也可以其中有一個是實數,順序任意。例如,c1+c2,d+c1,c1+d均合法(設d為實數,c1,c2為復數)。
(2)輸出的算數,在復數兩端加上括號,實部和虛部均保留兩位小數,如(8.23+2.00i)、(7.45-3.40i)、(-3.25+4.13i)等。
編寫程序,分別求兩個復數之和、整數和復數之和,并且輸出。
}Input 一個復數的實部和虛部,另一個復數的實部和虛部? 一個復數的實部和虛部,一個實數 一個實數,一個復數的實部和虛部Output 兩個復數之和、復數和實數之和,實數和復數之和。Sample Input 3 4 5 -10 3 4 5 5 3 4 Sample Output c1+c2=(8.00-6.00i) c1+d=(8.00+4.00i) d+c1=(8.00+4.00i)
#include <iostream> #include <iomanip> using namespace std; class Complex { public:Complex():real(0),imag(0){}Complex(double r,double i):real(r),imag(i){}Complex operator+(Complex &);Complex operator+(double &);friend Complex operator+(double &,Complex &);friend ostream& operator<<(ostream &,const Complex &c); private:double real;double imag; }; Complex Complex::operator+(Complex &c) {return Complex(real+c.real,imag+c.imag);} Complex Complex::operator+(double &r) {return Complex(real+r,imag);} Complex operator+(double &r,Complex&c) {return Complex(r+c.real,c.imag);} ostream& operator<<(ostream &cout,const Complex &c) {cout<<setiosflags(ios::fixed);cout<<setprecision(2);cout<<'('<<c.real; if(c.imag>0) cout<<'+'; cout<<c.imag<<"i)"<<endl; } int main() {double real,imag;cin>>real>>imag;Complex c1(real,imag);cin>>real>>imag;Complex c2(real,imag);Complex c3=c1+c2;cout<<"c1+c2=";cout<<c3;double d;cin>>real>>imag;cin>>d;c3=Complex(real,imag)+d;cout<<"c1+d=";cout<<c3;cin>>d;cin>>real>>imag;c1=Complex(real,imag);c3=d+c1;cout<<"d+c1=";cout<<c3;return 0; }
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
}Input 一個復數的實部和虛部,另一個復數的實部和虛部? 一個復數的實部和虛部,一個實數 一個實數,一個復數的實部和虛部Output 兩個復數之和、復數和實數之和,實數和復數之和。Sample Input 3 4 5 -10 3 4 5 5 3 4 Sample Output c1+c2=(8.00-6.00i) c1+d=(8.00+4.00i) d+c1=(8.00+4.00i)
#include <iostream> #include <iomanip> using namespace std; class Complex { public:Complex():real(0),imag(0){}Complex(double r,double i):real(r),imag(i){}Complex operator+(Complex &);Complex operator+(double &);friend Complex operator+(double &,Complex &);friend ostream& operator<<(ostream &,const Complex &c); private:double real;double imag; }; Complex Complex::operator+(Complex &c) {return Complex(real+c.real,imag+c.imag);} Complex Complex::operator+(double &r) {return Complex(real+r,imag);} Complex operator+(double &r,Complex&c) {return Complex(r+c.real,c.imag);} ostream& operator<<(ostream &cout,const Complex &c) {cout<<setiosflags(ios::fixed);cout<<setprecision(2);cout<<'('<<c.real; if(c.imag>0) cout<<'+'; cout<<c.imag<<"i)"<<endl; } int main() {double real,imag;cin>>real>>imag;Complex c1(real,imag);cin>>real>>imag;Complex c2(real,imag);Complex c3=c1+c2;cout<<"c1+c2=";cout<<c3;double d;cin>>real>>imag;cin>>d;c3=Complex(real,imag)+d;cout<<"c1+d=";cout<<c3;cin>>d;cin>>real>>imag;c1=Complex(real,imag);c3=d+c1;cout<<"d+c1=";cout<<c3;return 0; }
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的[YTU]_2535 (Problem I: C++复数运算符重载(+与))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 指向常对象的指针变量
- 下一篇: [YTU]_2384( 矩形类中运算符重