complex_num.cpp

来自「这个我写的一个计算LC滤波器的程序」· C++ 代码 · 共 92 行

CPP
92
字号
// Complex_num.cpp: implementation of the CComplex_num class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Fileter.h"
#include "Complex_num.h"

#include "math.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CComplex_num::CComplex_num()
{
	real_part=0.0;
	virt_part=0.0;
}

CComplex_num::CComplex_num(double real,double virt)
{
	real_part=real;
	virt_part=virt;
}
CComplex_num::~CComplex_num()
{

}

double CComplex_num::GetAmp()
{
  return (sqrt(real_part*real_part+virt_part*virt_part));
}

double CComplex_num::GetPhase()
{
 return virt_part/real_part;
}

CComplex_num operator + (CComplex_num &num1,CComplex_num &num2)
{
	double Rresult,Vresult;
	Rresult=num1.real_part+num2.real_part;
	Vresult=num1.virt_part+num2.virt_part;
	return CComplex_num(Rresult,Vresult);
}

CComplex_num operator - (CComplex_num &num1,CComplex_num &num2)
{
	double Rresult,Vresult;
	Rresult=num1.real_part-num2.real_part;
	Vresult=num1.virt_part-num2.virt_part;
	return CComplex_num(Rresult,Vresult);
}

CComplex_num operator * (CComplex_num &num1,CComplex_num &num2)
{
	double Rresult,Vresult;
	Rresult=num1.real_part*num2.real_part-num1.virt_part*num2.virt_part;
	Vresult=num1.virt_part*num2.real_part+num1.real_part*num2.virt_part;
	return CComplex_num(Rresult,Vresult);
}
CComplex_num operator / (CComplex_num &num1,CComplex_num &num2)
{
	if(num2.real_part!=0||num2.virt_part!=0)
	{
	  double C1,C2,C3;
	  double Rresult,Vresult;
	  C1=num1.real_part*num2.real_part+num1.virt_part*num2.virt_part;
	  C2=num1.virt_part*num2.real_part-num1.real_part*num2.virt_part;
	  C3=num2.real_part*num2.real_part+num2.virt_part*num2.virt_part;
	
      Rresult=C1/C3;
	  Vresult=C2/C3;
	  return CComplex_num(Rresult,Vresult);
	}
	else return CComplex_num(0,0);
	
}
CComplex_num operator % (CComplex_num &num1,CComplex_num &num2)
{
	return (num1*num2)/(num1+num2);
}

⌨️ 快捷键说明

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