21xrx.com
2024-12-28 13:13:20 Saturday
登录
文章检索 我的文章 写文章
C++复数计算器源代码
2023-07-09 15:23:37 深夜i     --     --
C++ 复数计算器 源代码

C++是一种高级编程语言,可以通过它编写各种应用程序,包括复数计算器。在这篇文章中,我们将分享一份C++复数计算器源代码。

该代码实现了复数加法、减法、乘法和除法运算。它使用了C++的类和运算符重载概念。以下是代码的实现:


#include <iostream>

using namespace std;

class Complex {

  private:

    double real;

    double imag;

  public:

    Complex(double r = 0, double i = 0)

      real = r;

      imag = i;

    

    Complex operator + (Complex const &obj) {

      Complex res;

      res.real = real + obj.real;

      res.imag = imag + obj.imag;

      return res;

    }

    Complex operator - (Complex const &obj)

      Complex res;

      res.real = real - obj.real;

      res.imag = imag - obj.imag;

      return res;

    

    Complex operator * (Complex const &obj) {

      Complex res;

      res.real = real * obj.real - imag * obj.imag;

      res.imag = real * obj.imag + imag * obj.real;

      return res;

    }

    Complex operator / (Complex const &obj) {

      Complex res;

      double r = obj.real * obj.real + obj.imag * obj.imag;

      res.real = (real * obj.real + imag * obj.imag) / r;

      res.imag = (imag * obj.real - real * obj.imag) / r;

      return res;

    }

    void print() {

      cout << real << " + " << imag << "i\n";

    }

};

int main() {

  Complex c1(3, 2);

  Complex c2(1, 7);

  Complex c3 = c1 + c2;

  cout << "c1 + c2 = ";

  c3.print();

  Complex c4 = c1 - c2;

  cout << "c1 - c2 = ";

  c4.print();

  Complex c5 = c1 * c2;

  cout << "c1 * c2 = ";

  c5.print();

  Complex c6 = c1 / c2;

  cout << "c1 / c2 = ";

  c6.print();

  return 0;

}

在上面的代码中,我们首先定义了一个名为“Complex”的类,该类包含两个私有变量double类型的“real”和“imag”。然后,我们使用类的构造函数来初始化这些变量。

接下来,我们定义了四个重载运算符,“+”、“-”、“*”和“/”。这些运算符的作用是执行复数加减乘除的对应运算。在“+”和“-”运算符中,我们简单地将实部和虚部相加或相减。在“*”运算符中,我们使用了复数乘法的公式进行计算。在“/”运算符中,我们使用了复数除法的公式进行计算。

最后,在main()函数中,我们创建了两个Complex对象,分别为c1和c2。然后,我们对它们进行加减乘除操作,并将结果输出到屏幕上。

在这篇文章中,我们介绍了一个简单的C++复数计算器源代码。通过这份代码,我们可以学习到如何使用类和运算符重载来实现基本的数学计算功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复