复数运算的简单实现。

程序很简单了。基本忘光了复数,重新了解了基本概念。如何在平面表示一个复数,复数的长度|x|=开根 a^2+b^2.和四则运算。

程序基本点:

封装和抽象:

1)封装成员数据,私有。 

2)分治思想,或树形数据结构,来解决运算。子结果和运算数 抽象为同一个类型。

main.cpp

#include <iostream>
#include "complexNumber.h" using namespace std; int main()
{
compleNumber a(,);
compleNumber b(,);
compleNumber c=a/b+a;
cout<<c<<endl; return ;
}
complexNumber.h
#ifndef COMPLEXNUMBER_H_INCLUDED
#define COMPLEXNUMBER_H_INCLUDED #include <iostream> using namespace std; class compleNumber
{
public:
compleNumber(float,float);
float getRealPart()const;
float getComplexPart()const;
private:
compleNumber();
float a;
float b;
}; compleNumber operator+(const compleNumber&,const compleNumber&);
compleNumber operator-(const compleNumber&,const compleNumber&);
compleNumber operator*(const compleNumber&,const compleNumber&);
compleNumber operator/(const compleNumber&,const compleNumber&); ostream& operator<<(ostream& os,const compleNumber& complexNumb); #endif // COMPLEXNUMBER_H_INCLUDED

complexNumber.cpp
//class compleNumber
//{
//public:
// compleNumber(float,float);
//private:
// compleNumber();
// float a;
// float b;
//};
//
//compleNumber operator+(const compleNumber&,const compleNumber&);
//compleNumber operator-(const compleNumber&,const compleNumber&);
//compleNumber operator*(const compleNumber&,const compleNumber&);
//compleNumber operator/(const compleNumber&,const compleNumber&); #include "complexNumber.h" compleNumber::compleNumber(float _a,float _b):a(_a),b(_b){} ostream& operator<<(ostream& os,const compleNumber& complexNumb)
{
return os<<complexNumb.getRealPart()<<"+"<<complexNumb.getComplexPart()<<"i";
} float compleNumber::getRealPart()const
{
return a;
}
float compleNumber::getComplexPart()const
{
return b;
} compleNumber operator+(const compleNumber& left,const compleNumber& right)
{
compleNumber ret(left.getRealPart()+right.getRealPart(),left.getComplexPart()+right.getComplexPart());
return ret;
} compleNumber operator-(const compleNumber& left,const compleNumber& right)
{
compleNumber ret(left.getRealPart()-right.getRealPart(),left.getComplexPart()-right.getComplexPart());
return ret;
} compleNumber operator*(const compleNumber& left,const compleNumber& right)
{
compleNumber ret(left.getRealPart()*right.getRealPart()-left.getComplexPart()*right.getComplexPart(),left.getRealPart()*right.getComplexPart()+left.getComplexPart()*right.getRealPart());
return ret;
} compleNumber operator/(const compleNumber& left,const compleNumber& right)
{
double PYfenmu=right.getComplexPart()*right.getComplexPart()+right.getRealPart()*right.getRealPart();
double realpart=(left.getRealPart()*right.getRealPart()+left.getComplexPart()*right.getComplexPart())/PYfenmu;
double complexPart=(left.getComplexPart()*right.getRealPart()-left.getRealPart()*right.getComplexPart())/PYfenmu;
compleNumber ret(realpart,complexPart);
return ret;
}

c++复习一:复数运算的简单实现。的更多相关文章

  1. Java练习 SDUT-4303_简单的复数运算(类和对象)

    简单的复数运算(类和对象) Time Limit: 2000 ms Memory Limit: 65536 KiB Problem Description 设计一个类Complex,用于封装对复数的下 ...

  2. 一些复数运算的C语言实现

    很久不写博客了.第一次写博客是在04年,最近的一次还是在大学时,在学校时,甚至还有过自己去买虚拟主机搭WordPress写博客的经历.现在工作时间越长,越发现积累的重要性.那么就从这里开始吧,重新开始 ...

  3. C语言中复数运算及调用blas,lapack中复数函数进行科学计算

    C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色.这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计 ...

  4. 算法笔记_047:复数运算(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间的加法.减法.乘法和除法 ...

  5. js中,三元运算的简单应用(?:)

    js中,三元运算的简单应用: var sinOrMul = ""; sinOrMul =(subType=="single")?("<span ...

  6. Java编写能完成复数运算的程序

    Java编写能完成复数运算的程序 题目简介: 整体分析: 界面分析: 实验代码: package complex; import java.awt.EventQueue; import javax.s ...

  7. [PHP][位转换积累]之异或运算的简单加密应用

    异或的符号是^.按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0. xor运算的逆运算是它本身,也就是说两次异或同一个数 ...

  8. 关于PHP位运算的简单权限设计

    写在最前面 最近想写一个简单的关于权限处理的东西,之前我也了解过用二进制数的位运算可以出色地完成这个任务.关于二进制数 的位运算,常见的就是“或.与.非”这三种简单运算了,当然,我也查看了下PHP手册 ...

  9. C++复数运算 重载

    近期整理下很久前写的程序,这里就把它放在博文中了,有些比较简单,但是很有学习价值. 下面就是自己很久前实现的复数重载代码,这里没有考虑特殊情况,像除法中,分母不为零情况. #include <i ...

随机推荐

  1. export

    export export PATH=$PATH:/ROOT

  2. js获取事件源

    js获取事件源:  1.       event.srcElement.nodeName   //获取事件源对象,但是火狐不支持event 2.      

  3. [ios][opengles]opengles纹理贴图

    参考:http://www.cnblogs.com/andyque/archive/2011/09/02/2155061.html

  4. Javascript中自动切换焦点

      <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&g ...

  5. Is It A Tree?(并查集)

    Is It A Tree? Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26002   Accepted: 8879 De ...

  6. Antenna Placement

    Antenna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7574 Accepted: 3762 Des ...

  7. WPFのTopMost属性的应用

    最近做一个东西,需要用到多个子窗体层级关系,首先,有一个MainWindow,然后有一个win1和win2甚至更多,我需要达到的控制是,win1选为focus的时候,win2在win1的上面,TopM ...

  8. 2016年10月29日 星期六 --出埃及记 Exodus 19:14

    2016年10月29日 星期六 --出埃及记 Exodus 19:14 After Moses had gone down the mountain to the people, he consecr ...

  9. java写的web服务器

    经常用Tomcat,不知道的以为Tomcat很牛,其实Tomcat就是用java写的,Tomcat对jsp的支持做的很好,那么今天我们用java来写一个web服务器 //首先得到一个server, S ...

  10. IOS文字属性备注

    // Predefined character attributes for text. If the key is not in the dictionary, then use the defau ...