C++习题 复数类--重载运算符+

  Description
  
  定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。
  
  Input
  
  两个复数
  
  Output
  
  复数之和
  
  Sample Input
  
  3 4
  
  5 -10
  
  Sample Output
  
  (8.00,-6.00i)
  
  #include <iostream>
  
  #include <iomanip>
  
  using namespace std;
  
  class Complex
  
  {
  
  public:
  
  Complex();
  
  Complex(double r,double i);
  
  double get_real();
  
  double get_imag();
  
  void display();
  
  private:
  
  double real;
  
  double imag;
  
  };
  
  Complex::Complex()
  
  {
  
  return;
  
  }
  
  Complex::Complex(double r,double i)
  
  {
  
  real=r;imag=i;
  
  }
  
  double Complex::get_real()
  
  {
  
  return real;
  
  }
  
  double Complex::get_imag()
  
  {
  
  return imag;
  
  }
  
  void Complex::display()
  
  {
  
  cout<<"("<<real<<","<<imag<<"i)"<<endl;
  
  }
  
  Complex operator +(Complex a,Complex b)
  
  {
  
  double i,j;
  
  i=a.get_real() +b.get_real();
  
  j=a.get_imag() +b.get_imag();
  
  Complex c(i,j);
  
  return c;
  
  }
  
  int main()
  
  {
  
  double real,imag;
  
  cin>>real>>imag;
  
  Complex c1(real,imag);
  
  cin>>real>>imag;
  
  Complex c2(real,imag);
  
  Complex c3=c1+c2;
  
  cout<<setiosflags(ios::fixed);
  
  cout<<setprecision(2);
  
  c3.display();
  
  return 0;
  
  }

  Description
  
  定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如,c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2为复数)。编写程序,分别求两个复数之和、整数和复数之和。
  
  Input
  
  两个复数
  
  一个复数和一个整数
  
  一个整数和一个复数
  
  Output
  
  两个复数之和、复数和整数之和,整数和复数之和。
  
  Sample Input
  
  3 4 5 -10
  
  3 4 5
  
  5 3 4
  
  Sample Output
  
  c1+c2=(8.00,-6.00i)
  
  c1+i=(8.00,4.00i)
  
  i+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 &c2);
  
  Complex operator+(int &i);
  
  friend Complex operator+(int&,Complex &);
  
  void display();
  
  private:
  
  double real;
  
  double imag;
  
  };
  
  Complex Complex:: operator+(Complex &c2)
  
  {return Complex(real+c2.real,imag+c2.imag);}
  
  Complex Complex:: operator+(int &i)
  
  {return Complex(real+i,imag);}
  
  Complex operator+(int&i,Complex &c)
  
  {return Complex(i+c.real,c.imag);}
  
  void Complex::display()
  
  { cout<<"("<<real<<","<<imag<<"i)"<<endl;}
  
  int main()
  
  {
  
  double real,imag;
  
  cin>>real>>imag;
  
  Complex c1(real,imag);
  
  cin>>real>>imag;
  
  Complex c2(real,imag);
  
  cout<<setiosflags(ios::fixed);
  
  cout<<setprecision(2);
  
  Complex c3=c1+c2;
  
  cout<<"c1+c2=";
  
  c3.display();
  
  int i;
  
  cin>>real>>imag;
  
  cin>>i;
  
  c3=Complex(real,imag)+i;
  
  cout<<"c1+i=";
  
  c3.display();
  
  cin>>i;
  
  cin>>real>>imag;
  
  c1=Complex(real,imag);
  
  c3=i+c1;
  
  cout<<"i+c1=";
  
  c3.display();
  
  return 0;
  
  }

猜你喜欢

转载自www.cnblogs.com/zhenhua1618/p/12729821.html
今日推荐