zoukankan      html  css  js  c++  java
  • YTU 2440: C++习题 复数类--重载运算符+,-,*,/

    2440: C++习题 复数类--重载运算符+,-,*,/

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 1189  解决: 774

    题目描述

    定义一个复数类Complex,重载运算符“+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编写程序,分别求两个复数之和、差、积和商。

    输入

    两个复数

    输出

    两个复数之和、差、积和商

    样例输入

    3 4
    5 -10
    

    样例输出

    c1+c2=(8.00,-6.00i)
    c1-c2=(-2.00,14.00i)
    c1*c2=(55.00,-10.00i)
    c1/c2=(-0.20,0.40i)
    

    提示

    前置代码及类型定义已给定如下,提交时不需要包含,会自动添加到程序前部



    /* C++代码 */

    #include <iostream>

    #include <iomanip>

    using namespace std;

    class Complex

    {

    public:

        Complex();

        Complex(double r,double i);

        Complex operator+(Complex &c2);

        Complex operator-(Complex &c2);

        Complex operator*(Complex &c2);

        Complex operator/(Complex &c2);

        void display();

    private:

        double real;

        double imag;

    };



    主函数已给定如下,提交时不需要包含,会自动添加到程序尾部



    /* C++代码 */



    int main()

    {

        double real,imag;

        cin>>real>>imag;

        Complex c1(real,imag);

        cin>>real>>imag;

        Complex c2(real,imag);

        cout<<setiosflags(ios::fixed);

        cout<<setprecision(2);

        Complex 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();

        return 0;

    }

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include <iostream>
    #include <iomanip>
    using namespace std;
    class Complex
    {
    public:
        Complex();
        Complex(double r,double i);
        Complex operator+(Complex &c2);
        Complex operator-(Complex &c2);
        Complex operator*(Complex &c2);
        Complex operator/(Complex &c2);
        void display();
    private:
        double real;
        double imag;
    };
    Complex::Complex()
    {
        real=0;
        imag=0;
    }
    Complex::Complex(double r,double i)
    {
        real=r;
        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;
        c.imag=imag+c2.imag;
        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;
    }
    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;
    }
    void Complex::display()
    {
        cout<<"("<<real<<","<<imag<<"i)"<<endl;
    }
    int main()
    {
        double real,imag;
        cin>>real>>imag;
        Complex c1(real,imag);
        cin>>real>>imag;
        Complex c2(real,imag);
        cout<<setiosflags(ios::fixed);
        cout<<setprecision(2);
        Complex 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();
        return 0;
    }

  • 相关阅读:
    定义全局时间过滤器
    vue局部过滤器和全局过滤器
    vue-ref指令
    vue进行代码排序
    vue-通过name进行数据过滤
    将vue文档下载到本地预览
    由于vue的for循环id并不严谨,提高id严谨性
    vue指令v-for报错:Elements in iteration expect to have 'v-bind:key' directives.eslint-plugin-vue
    FlowPortal BPM历史版本升级说明
    102从 Outlook 中将电子邮件、联系人和日历导出到 .pst 文件
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989444.html
Copyright © 2011-2022 走看看