C++实现的复数计算器(完整版源代码)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/************************************************************************

*《C++程序设计实践指导》

*

* 第2章 2.1 一个复数计算器程序

*

* (c) yrmuhon, 2009 2.9

************************************************************************/

#include

#include

#include

#include

#include

#include

//#define EPS len-5 // 定义精度常数

using namespace std;

namespace NameCComplex // 定义命名空间NameCComplex

{

/*-----------------------------------------------------------------------

|部分A:

| 复数类CComplex 的声明和定义,以及结构体类型用户User 的定义

|

----------------------------------------------------------------------*/

/*---------------------------------

| 复数类CComplex 的声明

--------------------------------*/

class CComplex

{

private:

double Real, Image; // 分别为复数的实部和虚部

public:

CComplex(double real=0, double image=0) // 构造函数

{

Real = real; Image = image;

}

friend istream & operator >> (istream & is, CComplex & com); // 重载输入

friend ostream & operator << (ostream & os, CComplex & com); // 重载输出

CComplex operator + (CComplex & com); // 加法重载

CComplex operator -(CComplex & com); // 减法重载

CComplex operator * (CComplex & com); // 乘法重载

CComplex operator += (CComplex & com); // 加法赋值重载

CComplex operator -= (CComplex & com); // 减法赋值重载

CComplex operator *= (CComplex & com); // 乘法赋值重载

CComplex operator ++ (); // 自加

CComplex operator -- (); // 自减

double mod(void);

int operator > (CComplex & com);

int operator < (CComplex & com);

int operator != (CComplex & com);

int operator == (CComplex & com);

};

/*------------------------------------

| 结构体类型用户User 的定义

-----------------------------------*/

struct User

{

char szName[20]; // 用户名

int nTime; // 使用次数

int nTest; // 测试次数

double dlAve; // 平均成绩

int nAdd; // 加法次数

int nSub; // 减法次数

int nMul; // 乘法次数

double dlScore[3]; // 3次测试得分

} user;

/*---------------------------------------------------------------

| 复数类CComplex 的类外定义部分

---------------------------------------------------------------*/

// 重载运算符“++”,实部与虚部均加1

CComplex CComplex::operator ++ ()

{

Real++;

Image++;

return *this;

}

// 重载运算符“--”,实部与虚部均减1

CComplex CComplex::operator -- ()

{

Real--;

Image--;

return *this;

}

// 求复数的模,返回实部^2 + 虚部^2

double CComplex::mod()

{

return Real * Real + Image * Image;

}

// 重载运算符“>”,比较模的大小

int CComplex::operator > (CComplex & com)

{

if ( mod() > com.mod() )

return 1; // 若大,则返回1 else

return 0;

}

// 重载运算符“<”,比较模的大小

int CComplex::operator < (CComplex & com)

{

if ( mod() < com.mod() )

return 1; // 若小,则返回1 else

return 0;

}

// 重载运算符“!=”,分别判断复数的实部与虚部int CComplex::operator != (CComplex & com)

{

if ( *this==com )

return 0;

else

return 1;

}

相关文档
最新文档