⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complex.cpp

📁 该程序是一个含直流输电系统的潮流计算程序 程序运行需要包含Boost库文件,需要在VS2005环境以上(VC6.0不完全符合C++标准,可能有些变量作用域问题,无法通过调试) 潮流程序计算主要参考
💻 CPP
字号:
#include <cmath>
#include <stdexcept>

#include "Complex.h"

using std::cout;

Complex::Complex() {
	 Real = 0;
	 Imag = 0;
 }

 Complex::Complex(double X) {
	Real = X;
	Imag = 0.0;
}

Complex::Complex(double X, double Y) {
	Real = X;
	Imag = Y;
}

Complex::Complex(Complex const& c) {
  Real = c.Real;
	Imag = c.Imag;
}

Complex Complex::operator + (Complex const& X) {
	return Complex(Real + X.Real, Imag + X.Imag);
}

Complex Complex::operator - (Complex const& X) {
	return Complex(Real - X.Real, Imag - X.Imag);
}

Complex Complex::operator * (Complex const& X) {
  return Complex(Real*X.Real - Imag*X.Imag, Real*X.Imag + Imag*X.Real);
}

Complex Complex::operator / (Complex const& X) {
	double drt = X.Real * X.Real + X.Imag * X.Imag;

	if ( drt == 0.0 ) {
    throw std::domain_error("The divisor is zero!");
  }

	return Complex((Real * X.Real + Imag * X.Imag)/drt, (Imag * X.Real - Real * X.Imag)/drt);
}

Complex Complex::operator / (double d) {
	if ( d == 0.0 ) {
    throw std::domain_error("The divisor is zero!");
  }

	return Complex(Real/d, Imag/d);
}

Complex Complex::Conj() const {
	return Complex(Real, -Imag);
}

double Complex::absCplx() const {
  return std::sqrt(Real*Real + Imag*Imag);
}

void Complex::Display() const {
	cout<<Real<<" + j"<<Imag;
}

void Complex::Display(ostream& out) const {
	out<<Real<<" + j"<<Imag;
}

ostream& operator << (ostream& out, Complex& d){
	d.Display(out);
	return out;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -