第九周实验报告一

  1. * 程序的版权和版本声明部分  
  2. * Copyright (c) 2011, 烟台大学计算机学院学生  
  3. * All rights reserved.  
  4. * 文件名称:  
  5. * 作者:李君凯  
  6. * 完成日期: 2012年 4月 16日
  7. * 版本号:  
  8. *对任务及求解方法的描述部分  
  9. #include <iostream>  
    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-(Complex &c2);  
    	    Complex operator*(Complex &c2);  
    	    Complex operator/(Complex &c2);  
    	    friend istream& operator >>(istream&,Complex&);//运算符>>重载为友元函数  
    	    friend ostream& operator <<(ostream&,Complex&);//运算符<<重载为友元函数  
    	      
    	private:  
    	    double real;  
    	    double imag;  
    	};  
    	//下面定义成员函数  
    Complex Complex:: operator+(Complex &c2)  
    	{  
    	    return Complex(real+c2.real,imag+c2.imag);  
    	}  
    	  
    Complex Complex ::operator-(Complex &c2)  
    	{  
    	      
    	    return Complex(real-c2.real,imag-c2.imag);  
    	}  
    Complex Complex:: operator*(Complex &c2)  
    	{  
    	    Complex c;  
    	    c.real=real*c2.real+imag*c2.imag;  
    	    c.imag=real*c2.imag+imag*c2.real;  
    	    return c;  
    	}   
    Complex Complex ::operator/(Complex &c2)  
    	{  
    	    Complex c;  
    	    c.real=(real*c2.real +imag*c2.imag )/(c2.real *c2.real+c2.imag*c2.imag);  
    	    c.imag =(imag*c2.real - real*c2.imag )/(c2.real *c2.real+c2.imag*c2.imag);  
    	    return c;  
    	}  
    	  
    	  
    istream& operator >>(istream& input,Complex& c)//定义运算符>>重载函数  
    	{  
    	    cout<<"请输入实部和虚部:";  
    	    input>>c.real>>c.imag;  
    	    return input;  
    	}  
    	  
    ostream& operator <<(ostream& output,Complex& c)//定义运算符<<重载函数  
    	{  
    	    output<<"("<<c.real;  
    	    if(c.imag>=0) output << "+";  
    	    output<<c.imag<<"i)"<<endl;  
    	    return output;  
    	}  
    	  
    	  
    	  
    int main()  
    	{  
    	    Complex c1,c2,c3;  
    	    cin>>c1>>c2;  
    	    cout<<"c1="<<c1<<endl;  
        cout<<"c2="<<c2<<endl;  
      
    	    c3=c1+c2;  
    	    cout<<"c1+c2="<<c3;  
    	      
    	    c3=c1-c2;  
    	    cout<<"c1-c2="<<c3;  
    	  
    	    c3=c1*c2;  
    	    cout<<"c1*c2="<<c3;  
    	  
    	    c3=c1/c2;  
    	    cout<<"c1/c2="<<c3;  
    	  
    	    system("pause");  
    	    return 0;  
    	}  
    

上机感言:定义运算符的重载进行输入和输出,感觉看起来比较舒服

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值