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

📄 复数计算.cpp

📁 这是一些c++例程
💻 CPP
字号:
// 复数计算.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include "math.h"

class Complex
{
public:
	double Re,Im;					//成员变量,分别表示复数的实部与虚部
	Complex( double r=0, double i=0);		//构造函数
	Complex &operator =(Complex &rhs);		//成员函数,重载运算符"=",进行变量赋值
	Complex operator +(Complex &rhs); 		//成员函数,重载运算符"+",进行两复数加法
	Complex operator -(Complex &rhs); 		//成员函数,重载运算符"-",进行两复数减法
	Complex operator *(Complex &rhs);		//成员函数,重载运算符"*",进行两复数乘法
	Complex operator *(double n); 			//成员函数,重载运算符"*",进行复数与实数的乘法
	Complex operator /(double n);			//成员函数,重载运算符"/",进行复数与实数的除法
	Complex &operator +=(Complex &rhs); 	//成员函数,重载运算符"+=",实现复数相加并赋值
	double Range();					//成员函数,用于对复数求模
};

Complex::Complex(double r,double i):Re(r),Im(i){}			//构造函数

Complex& Complex::operator =(Complex &rhs) 			//赋值
{
	Re=rhs.Re;Im=rhs.Im;
	return *this;
}

Complex Complex::operator +(Complex &rhs) 			//加法
{
	return Complex(Re+rhs.Re,Im+rhs.Im); 
}

Complex Complex::operator -(Complex &rhs) 				//减法
{
	return Complex(Re-rhs.Re,Im-rhs.Im); 
}

Complex Complex::operator *(Complex &rhs) 				//乘法
{
	return Complex(Re*rhs.Re-Im*rhs.Im,Im*rhs.Re+Re*rhs.Im); 
}

Complex Complex::operator *(double n) 				//数乘
{
	return Complex(Re*n,Im*n); 
}

Complex Complex::operator /(double n) 				//数除
{
	return Complex(Re/n,Im/n); 
}

Complex& Complex::operator +=(Complex &rhs) 			//相加并赋值
{
	Re+=rhs.Re;Im+=rhs.Im;
	return *this;
}

double Complex::Range() 							//求模
{
	return sqrt(Re*Re+Im*Im);
}

void main()
{
		Complex z1(3,4),z2(1,-1);
		Complex u,v;
		u=z1+z2;
		printf("(%.3f,%.3fi) + (%.3f,%.3fi) = (%.3f,%.3fi)\n",z1.Re,z1.Im,z2.Re,z2.Im,u.Re,u.Im);
		v=z1*z2;
		printf("(%.3f,%.3fi) * (%.3f,%.3fi) = (%.3f,%.3fi)\n",z1.Re,z1.Im,z2.Re,z2.Im,v.Re,v.Im);
		v=u;
		u+=Complex(-5,6);
		printf("(%.3f,%.3fi) + (%.3f,%.3fi) = (%.3f,%.3fi)\n",v.Re,v.Im, Complex(-5,6).Re, Complex(-5,6).Im,u.Re,u.Im);
		v=u/2.5;
		printf("(%.3f,%.3fi) / %.3f = (%.3f,%.3fi)\n",u.Re,u.Im,2.5,v.Re,v.Im);
		printf("Range of (%.3f,%.3fi) = %.3f\n",z1.Re,z1.Im,z1.Range());
}

⌨️ 快捷键说明

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