本文实例为大家分享了简单实现C++复数计算器的具体代码,供大家参考,具体内容如下
1.有关计算器的功能
A,实现多个复数(包括实数)的加减乘除,大小比较,
B.实现十进制实数的进制转换,可以转换任意进制
2.有关设计的原理
A.复数计算的部分,采用运算符的重载,进行复数的加减乘除以及大小比较
对于输入输出,(>>和<
输入的重载,实现a+bi形式的复数的输入。
输出的重载,实现实数的输出(实现特殊的只输出实部虚部之类的)。
加减乘除的重载,实现有关复数的运算。
B.进制转换的部分,采用进制转换的方法,实现10进制的任意进制转换。辗转相除,记录每次的余数,存储在数组中来记录转换得到的数字
3.有关设计的特点
A.采用函数对所实现功能进行封装。
B.采用运算符的重载,使复数运算更加方便
C.考虑所有的输入输出情况,对选择的操作,输入复数的类型等进行判断与相应的处理
D.程序在完成以后,接受大家建议,规范代码格式,自己在制作过程有所收获也有所学习。
下面是有关代码的实现:
#include
#include
#include
#include
#include
#include
#include
#define EPS 1e-5 //定义精度常数
using namespace std; //使用标准空间命名std
namespace NameCCom //定义命名空间NameCCom
{
class CCom //定义一个CCom类
{
public:
double Real,Image;//实部和虚部
CCom(double real=0,double image=0) //构造函数
{
Real=real;
Image=image;
}
friend istream & operator>>(istream &is,CCom &com); //重载输入
friend ostream & operator<
CCom operator+(CCom &com); //加法重载
CCom operator-(CCom &com); //减法重载
CCom operator*(CCom &com); //乘法重载
CCom operator/(CCom &com); //除法重载
CCom operator+=(CCom &com); //加法赋值重载
CCom operator-=(CCom &com); //减法赋值重载
CCom operator*=(CCom &com); //乘法赋值重载
CCom operator/=(CCom &com); //除法赋值重载
};
struct User //定义用户结构体类型
{
char szName[20]; //用户名
}user; //定义全局变量
int CCom::operator>(CCom &com) //重载运算符">",比较模的大小
{
if(mod()>com.mod())
return 1; //若大,则返回1
else
return 0; //否则,则返回0
}
int CCom::operator
{
if(mod()
return 1; //若小,则返回1