第九周实验报告(—)


/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称: chongzai.cpp

* 作 者: 李冠绩

* 完成日期: 2012 年 4 月16 日
* 版 本 号: V1.0

* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
* 程序输出: 
* 程序头部的注释结束
*/


#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);

 friend Complex operator+(Complex &c1,double d);

 friend Complex operator+(double d,Complex &c1); 

 friend Complex operator-(Complex &c1,double d);

 friend Complex operator-(double d,Complex &c1); 

 friend Complex operator*(Complex &c1,double d); 

 friend Complex operator*(double d,Complex &c1); 

 friend Complex operator/(Complex &c1,double d); 

 friend Complex operator/(double d,Complex &c1); 

 Complex operator-();

 void display(); 

 friend ostream & operator <<(ostream &,Complex &);

 friend istream & operator >>(istream &,Complex &);
private: 
 double real; 
 double imag; 
}; 
//下面定义成员函数 
Complex operator+(Complex &c1,Complex &c2) 

 return Complex(c1.real+c2.real,c1.imag+c2.imag); 

Complex operator-(Complex &c1,Complex &c2) 

 return Complex(c1.real-c2.real,c1.imag-c2.imag); 

Complex operator*(Complex &c1,Complex &c2) 

 Complex c; 
 c.real=c1.real*c2.real-c1.imag*c2.imag; 
 c.imag=c1.real*c2.imag-c1.imag*c2.real; 
 return c; 

Complex operator/(Complex &c1,Complex &c2) 
{  
 Complex c; 
 c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real); 
 c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real); 
 return c; 

Complex operator+(Complex &c1,double d) 

 return Complex(c1.real+d,c1.imag); 

Complex operator+(double d,Complex &c1) 

 return Complex(c1.real+d,c1.imag); 

Complex operator-(Complex &c1,double d) 

 return Complex(c1.real-d,c1.imag); 

Complex operator-(double d,Complex &c1) 

 return Complex(c1.real-d,c1.imag); 

Complex operator*(Complex &c1,double d) 

 return Complex(c1.real*d,c1.imag*d); 

Complex operator*(double d,Complex &c1) 

 return Complex(c1.real*d,c1.imag*d); 

Complex operator/(Complex &c1,double d) 

 return Complex(c1.real/d,c1.imag/d); 

Complex operator/(double d,Complex &c1) 

 return Complex(c1.real/d,c1.imag/d); 

Complex Complex:: operator-() 

 return Complex(-real,-imag); 

void Complex::display() 

 cout<<"("<<real<<","<<imag<<"i)"<<endl; 

ostream & operator <<(ostream & output,Complex &c)
{
 output<<"("<<c.real;
 if(c.imag>=0)output<<"+";
 output<<c.imag<<"i)"<<endl;
 return output;
}

istream & operator >>(istream & input,Complex &c)
{
 cout<<"请输入虚数"<<endl;
 input>>c.real>>c.imag;

 return input;
}

int main() 

 Complex c1,c2,c3; 
 double d=3;
 cin>>c1;
 cout<<"c1="<<c1<<endl; 

 cin>>c2;
 cout<<"c2="<<c2<<endl;   

 c3=c1+c2; 
 cout<<"c1+c2="<<c3<<endl;   

 c3=c1-c2; 
 cout<<"c1-c2="<<c3<<endl;  

 c3=c1*c2; 
 cout<<"c1*c2="<<c3<<endl; 

 c3=c1/c2; 
 cout<<"c1/c2="<<c3<<endl; 

 c3=c1+d; 
 cout<<"c1+d="<<c3<<endl;   

 c3=d+c1; 
 cout<<"d+c1="<<c3<<endl;   

 c3=c1-d; 
 cout<<"c1-d="<<c3<<endl;  

 c3=d-c1; 
 cout<<"d-c1="<<c3<<endl;   

 c3=c1*d; 
 cout<<"c1*d="<<c3<<endl; 

 c3=d*c1; 
 cout<<"d*c1="<<c3<<endl;   

 c3=c1/d; 
 cout<<"c1/d="<<c3<<endl; 

 c3=d/c1; 
 cout<<"d/c1="<<c3<<endl;   

 c3=-c1; 
 cout<<"-c1="<<c3<<endl;   

 c3=-c2; 
 cout<<"-c2="<<c3<<endl;   

 system("pause"); 
 return 0; 

有图有真相。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值