zoukankan      html  css  js  c++  java
  • [置顶] 第九周项目1

    /*             
    * 程序的版权和版本声明部分             
    * Copyright (c)2013, 烟台大学计算机学院学生             
    * All rightsreserved.             
    * 文件名称: object.cpp             
    * 作者:杨绍宁            
    * 完成日期: 2013年  4  月 26日             
    * 版本号: v1.0             
    * 输入描述:无             
    * 问题描述:            
    * 程序输出:略。             
    */       
    #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);
    	friend 	Complex operator-(Complex &c1,Complex &c2);
    	friend istream& operator>>(istream&,Complex&);
    	friend ostream& operator<<(ostream&,Complex&);
    	void display();
    private:
    	double real;
    	double imag;
    };
    istream& operator>>(istream& input,Complex&c)
    {
        input>>c.real>>c.imag;
        return input;
    }
    ostream& operator<<(ostream&output,Complex&c)
    {
      output<<"("<<c.real<<","<<c.imag<<"i)";
    }
    Complex Complex::operator+(Complex &c2)
    {
    	Complex c;
    	c.real=real+c2.real;
    	c.imag=imag+c2.imag;
    	return c;
    }
    
    Complex Complex::operator*(Complex &c2)
    {
    	Complex c;
    	c.real=real*c2.real-imag*c2.imag;
        c.imag=imag*c2.real+real*c2.imag;
        return c;
    
    }
    Complex Complex::operator/(Complex &c2)
    {
    	Complex c;
    	double d;
    	d=c2.real*c2.real+c2.imag*c2.imag;
    	c.real=(real*c2.real+imag*c2.imag)/d;
    	c.imag=(-real*c2.imag+imag*c2.real)/d;
        return c;
    }
    Complex operator-(Complex &c1,Complex &c2)
    {
    
    	Complex c;
    	c.real=c1.real-c2.real;
    	c.imag=c1.imag-c2.imag;
    	return c;
    }
    void Complex::display()
    {
    	cout<<"("<<real<<","<<imag<<"i"<<")"<<endl;
    }
    int main()
    {
    	Complex c1,c2,c3;
    	cin>>c1>>c2;
    	cout<<"c1=";
    	cout<<c1<<endl;
    	cout<<"c2=";
    	cout<<c2<<endl;
    	c3=c1+c2;
    	cout<<"c1+c2=";
    	cout<<c3<<endl;
    	c3=c1-c2;
    	cout<<"c1-c2=";
    	cout<<c3<<endl;
    	c3=c1*c2;
    	cout<<"c1*c2=";
    	cout<<c3<<endl;
    	c3=c1/c2;
    	cout<<"c1/c2=";
    	cout<<c3<<endl;
    	return 0;
    }
    
    


    感受:重载流提取运算符>>,使问题简单啊

  • 相关阅读:
    [luogu3393]逃离僵尸岛
    [BZOJ2818]GCD
    [SCOI2015]情报传递
    [NOIP2010]引水入城
    [luogu4315]月下“毛景树”
    「LibreOJ NOI Round #2」不等关系
    [HNOI2013]游走
    Yet Another Minimization Problem
    ZJOI2015 地震后的幻想乡
    [九省联考2018]一双木棋chess
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3045664.html
Copyright © 2011-2022 走看看