第八周实验报告(1)

来源:互联网 发布:linux windows cuda 编辑:程序博客网 时间:2024/05/18 02:02
/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除。
* 作    者:王 琦                          * 完成日期:2012年04月11   日* 版 本 号: * 输入描述:实现复数类中的运算符重载 方案2* 问题描述:定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除 ,利用类的友元函数* 程序输出:
 
 
#include <iostream>   using namespace std;  class Complex  {  public:      Complex(){real=0;imag=0;}      Complex(double r,double i){real=r;imag=i;}      friend Complex operator+(Complex &c1, Complex &c2);      friend Complex operator-(Complex &c1, Complex &c2);      friend Complex operator*(Complex &c1, Complex &c2);      friend Complex operator/(Complex &c1, Complex &c2);      void display();  private:      double real;      double imag;  };      Complex operator+(Complex &c1, Complex &c2)  {      Complex c;      c.real=c1.real+c2.real;      c.imag=c1.imag+c2.imag;      return c;  }       Complex operator-(Complex &c1, Complex &c2)  {      Complex c;      c.real=c1.real-c2.real;      c.imag=c1.imag-c2.imag;      return c;  }   Complex operator*(Complex &c1, Complex &c2)  {      Complex c;      c.real=c1.real*c2.real-c1.imag*c2.imag;      c.imag=c1.imag*c2.real+c1.real*c2.imag;      return c;  }  Complex operator/(Complex &c1, Complex &c2)  {      Complex c;      c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);      c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);      return c;  }    void Complex::display()  {      cout<<"("<<real<<","<<imag<<"i)"<<endl;  }    int main()  {      Complex c1(3,4),c2(5,-10),c3;      cout<<"c1=";      c1.display();      cout<<"c2=";      c2.display();      c3=c1+c2;      cout<<"c1+c2=";      c3.display();      c3=c1-c2;      cout<<"c1-c2=";      c3.display();      c3=c1*c2;      cout<<"c1*c2=";      c3.display();      c3=c1/c2;      cout<<"c1/c2=";      c3.display();      system("pause");      return 0; } 

原创粉丝点击