第8周任务1

来源:互联网 发布:java 任波 编辑:程序博客网 时间:2024/05/21 09:18

实验目的

 

实验内容

 

源程序

/*

*程序的版权和版本声明部分

* Copyright (c) 2011,烟台大学计算机学院学生

* All rights reserved.

*   者:       计114-3   付文杰                      

*完成日期:      2012       4  10      

*号:         

 

*对任务及求解方法的描述部分

*输入描述:

*问题描述:

*程序输出:

*问题分析:

*算法设计:

*/

 

#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);//声明operator+为Complex友元函数    friend Complex operator+ (const double &d, Complex &c);    friend Complex operator+ (Complex &c, const double &d);friend Complex operator- (Complex &c1, Complex &c2);    friend Complex operator- (const double &d, Complex &c);    friend Complex operator- (Complex &c, const double &d);friend Complex operator- (Complex &c);friend Complex operator* (Complex &c1, Complex &c2);    friend Complex operator* (const double &d, Complex &c);    friend Complex operator* (Complex &c, const double &d);friend Complex operator/ (Complex &c1, Complex &c2);    friend Complex operator/ (const double &d, Complex &c);    friend Complex operator/ (Complex &c, const double &d);void display();private:double real;double imag;};//下面定义成员函数void Complex :: display( )    {      cout<<"("<<real<<","<<imag<<"i)"<<endl;  }  Complex operator + (Complex &c1, Complex &c2){return Complex(c1.real + c2.real, c1.imag + c2.imag);}class Complex;Complex operator + (const double &d, Complex &c){ return Complex(d + c.real, c.imag);}Complex operator + (Complex &c, const double &d){ return Complex(c.real + d, c.imag);}Complex operator - (Complex &c1, Complex &c2){return Complex(c1.real - c2.real, c1.imag - c2.imag);}class Complex;Complex operator - (const double &d, Complex &c){ return Complex(d - c.real, -c.imag);}Complex operator - (Complex &c, const double &d){ return Complex(c.real - d, c.imag);}Complex operator - (Complex &c){ return Complex(-c.real, -c.imag);}Complex operator * (Complex &c1, Complex &c2){return Complex(c1.real * c2.real - c1.imag * c2.imag, c1.imag * c2.real + c1.real * c2.imag);}Complex operator * (const double &d, Complex &c){ return Complex(d * c.real, d * c.imag);}Complex operator * (Complex &c, const double &d){ return Complex(c.real * d, c.imag * d);}Complex operator / (Complex &c1, Complex &c2){return Complex((c1.real * c2.real + c1.imag * c2.imag) / (c2.real * c2.real + c2.imag * c2.imag), (c1.imag * c2.real - c1.real * c2.imag) / (c2.real * c2.real + c2.imag * c2.imag));}Complex operator / (Complex &c, const double &d){ return Complex(d / c.real, d / c.imag);}Complex operator / (const double &d, Complex &c){ return Complex((d * c.real) / (c.real * c.real + c.imag * c.imag), ( - d * c.imag) / (c.real * c.real + c.imag * c.imag));}int main(){const double d = 2;Complex c1(3,4),c2(5,-10),c3,c4;cout << "c1=";c1.display();cout << "c2=";c2.display();c3 = c1 + c2;cout << "c1+c2=";c3.display();c3 = c1 + 2;cout << "c1+2=";c3.display();c3 = 2 + c1;cout << "2+c1=";c3.display();c3 = c1 - c2;cout << "c1-c2=";c3.display();c3 = c1 - 2;cout << "c1-2=";c3.display();c3 = 2 - c1;cout << "2-c1=";c3.display();c3 = c1 * c2;cout << "c1*c2=";c3.display();c3 = c1 * 2;cout << "c1*2=";c3.display();c3 = 2 * c1;cout << "2*c1=";c3.display();c3 = c1 / c2;cout << "c1/c2=";c3.display();c3 = c1 / 2;cout << "c1/2=";c3.display();c3 = 2 / c1;cout << "2/c1=";c3.display();c3 = - c1;cout << "-c1=";c3.display();system("pause");return 0;}


运行结果: