C++习题 复数类(请编写程序,处理一个复数与一个double数相加的运算,结果存放在一个double型的变量d1中,输出d1的值,再以复数形式输出此值。)
Description
请编写程序,处理一个复数与一个double数相加的运算,结果存放在一个double型的变量d1中,输出d1的值,再以复数形式输出此值。定义Complex(复数)类,在成员函数中包含重载类型转换运算符:
operator double() { return real; }
Input
一个复数与一个double数
Output
d1的值和复数形式的此值
Sample Input
3 4 2.5
Sample Output
d1=5.50 c2=(5.50, 0.00)
HINT
前置代码及类型定义已给定如下,提交时不需要包含,会自动添加到程序前部
/* C++代码 */
#include <iostream>
#include <iomanip>
using namespace std;
class Complex
{
public:
Complex();
Complex(double r);
Complex(double r,double i);
operator double();
void display();
private:
double real;
double imag;
};
主函数已给定如下,提交时不需要包含,会自动添加到程序尾部
int main()
{
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
double real,imag;
cin>>real>>imag;
Complex c1(real,imag);
double d1;
cin>>d1;
d1=d1+c1;
cout<<"d1="<<d1<<endl;
Complex c2=Complex(d1);
cout<<"c2=";
c2.display();
return 0;
}
1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 class Complex 5 { 6 public: 7 Complex(); 8 Complex(double r); 9 Complex(double r,double i); 10 operator double(); 11 void display(); 12 private: 13 double real; 14 double imag; 15 }; 16 Complex::Complex() 17 { 18 real=0; 19 imag=0; 20 } 21 Complex::Complex(double r) 22 { 23 real=r; 24 imag=0; 25 } 26 Complex::Complex(double r,double i) 27 { 28 real=r; 29 imag=i; 30 } 31 void Complex::display() 32 { 33 cout<<"("<<real<<", "<<imag<<")"<<endl; 34 } 35 Complex::operator double() 36 { 37 return real; 38 } 39 int main() 40 { 41 cout<<setiosflags(ios::fixed); 42 cout<<setprecision(2); 43 double real,imag; 44 cin>>real>>imag; 45 Complex c1(real,imag); 46 double d1; 47 cin>>d1; 48 d1=d1+c1; 49 cout<<"d1="<<d1<<endl; 50 Complex c2=Complex(d1); 51 cout<<"c2="; 52 c2.display(); 53 return 0; 54 }