zoukankan      html  css  js  c++  java
  • 课程设计__复数的计算

    1、操作符重载

    2、这里的复数并没有用class,下一篇会有。

    #include <stdio.h>
    #include <algorithm>
    #include <iostream>
    
    using namespace std;
    
    struct Complex
    {
        float real;
        float imag;
    };
    
    Complex operator +(Complex &a,Complex &b)
    {
        Complex c;
        c.real=a.real+b.real;
        c.imag=a.imag+b.imag;
        return c;
    }
    
    Complex operator -(Complex &a,Complex &b)
    {
        Complex c;
        c.real=a.real-b.real;
        c.imag=a.imag-b.imag;
        return c;
    }
    
    Complex operator *(Complex &a,Complex &b)
    {
        Complex c;
        c.real=a.real*b.real-a.imag*b.imag;
        c.imag=a.real*b.imag+a.imag*b.real;
        return c;
    }
    
    Complex operator /(Complex &a,Complex &b)
    {
        float fm;
        fm=a.real*b.real-a.imag*b.imag;///分母
        Complex c;
        c.real=(a.real*b.real-a.imag*b.imag)/fm;
        c.imag=(a.real*b.imag+a.imag*b.real)/fm;
        return c;
    }
    
    void printFormerAdd(Complex &a,Complex &b)///打印加法的原式
    {
        printf("(%.1f ,%.1f i)+(%.1f ,%.1f i)=",a.real,a.imag,b.real,b.imag);
    }
    
    void printFormerSub(Complex &a,Complex &b)///打印减法的原式
    {
        printf("(%.1f ,%.1f i)-(%.1f ,%.1f i)=",a.real,a.imag,b.real,b.imag);
    }
    
    void printFormerMul(Complex &a,Complex &b)///打印乘法的原式
    {
        printf("(%.1f ,%.1f i)*(%.1f ,%.1f i)=",a.real,a.imag,b.real,b.imag);
    }
    
    void printFormerDiv(Complex &a,Complex &b)///打印除法的原式
    {
        printf("(%.1f ,%.1f i)/(%.1f ,%.1f i)=",a.real,a.imag,b.real,b.imag);
    }
    
    void print(Complex c)///打印结果
    {
        printf("(%.1f ,%.1f i)
    ",c.real,c.imag);
    }
    
    int main()
    {
            Complex a,b,c;
            printf("This is complex's operation
    ");
            printf("Please input your wants complex's operation
    ");
            char o;
            scanf("%c",&o);
            system("cls");
            switch (o)
            {
            case '+':
                printf("Please input two complex's real and imag
    ");
                scanf("%f%f",&a.real,&a.imag);
                scanf("%f%f",&b.real,&b.imag);
                c=a+b;
                printFormerAdd(a,b);
                print(c);
                break;
            case '-':
                printf("Please input two complex's real and imag
    ");
                scanf("%f%f",&a.real,&a.imag);
                scanf("%f%f",&b.real,&b.imag);
                c=a-b;
                printFormerSub(a,b);
                print(c);
                break;
            case '*':
                printf("Please input two complex's real and imag
    ");
                scanf("%f%f",&a.real,&a.imag);
                scanf("%f%f",&b.real,&b.imag);
                c=a*b;
                printFormerMul(a,b);
                print(c);
                break;
            case '/':
                printf("Please input two complex's real and imag
    ");
                scanf("%f%f",&a.real,&a.imag);
                scanf("%f%f",&b.real,&b.imag);
                c=a/b;
                printFormerDiv(a,b);
                print(c);
                break;
            }
            system("pause");
        return 0;
    }
  • 相关阅读:
    第七次作业
    C语言总结(3)
    C语言总结(1)
    C语言总结(2)
    别人的经验
    代理模式(静态代理和动态代理)
    C++的反射
    Coretext实现图文混排及Gif图片播放
    IOS 中openGL使用教程1(openGL ES 入门篇 | 搭建openGL环境)
    IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5247124.html
Copyright © 2011-2022 走看看