c++复习一:复数运算的简单实现。
复数运算的简单实现。
程序很简单了。基本忘光了复数,重新了解了基本概念。如何在平面表示一个复数,复数的长度|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++复习一:复数运算的简单实现。的更多相关文章
- Java练习 SDUT-4303_简单的复数运算(类和对象)
简单的复数运算(类和对象) Time Limit: 2000 ms Memory Limit: 65536 KiB Problem Description 设计一个类Complex,用于封装对复数的下 ...
- 一些复数运算的C语言实现
很久不写博客了.第一次写博客是在04年,最近的一次还是在大学时,在学校时,甚至还有过自己去买虚拟主机搭WordPress写博客的经历.现在工作时间越长,越发现积累的重要性.那么就从这里开始吧,重新开始 ...
- C语言中复数运算及调用blas,lapack中复数函数进行科学计算
C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色.这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计 ...
- 算法笔记_047:复数运算(Java)
目录 1 问题描述 2 解决方案 1 问题描述 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间的加法.减法.乘法和除法 ...
- js中,三元运算的简单应用(?:)
js中,三元运算的简单应用: var sinOrMul = ""; sinOrMul =(subType=="single")?("<span ...
- Java编写能完成复数运算的程序
Java编写能完成复数运算的程序 题目简介: 整体分析: 界面分析: 实验代码: package complex; import java.awt.EventQueue; import javax.s ...
- [PHP][位转换积累]之异或运算的简单加密应用
异或的符号是^.按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0. xor运算的逆运算是它本身,也就是说两次异或同一个数 ...
- 关于PHP位运算的简单权限设计
写在最前面 最近想写一个简单的关于权限处理的东西,之前我也了解过用二进制数的位运算可以出色地完成这个任务.关于二进制数 的位运算,常见的就是“或.与.非”这三种简单运算了,当然,我也查看了下PHP手册 ...
- C++复数运算 重载
近期整理下很久前写的程序,这里就把它放在博文中了,有些比较简单,但是很有学习价值. 下面就是自己很久前实现的复数重载代码,这里没有考虑特殊情况,像除法中,分母不为零情况. #include <i ...
随机推荐
- Volley的基本用法
1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进行H ...
- mongo VUE 操作
一 修改字段名称 db.rc_配置_付款限额_消费.update({ "生效标识" : 1, "$atomic" : "true" },{ ...
- 修改ecshop让订单详情里将会员地址详情全部显示
$sql = "SELECT concat(IFNULL(c.region_name, ''), ' ', IFNULL(p.region_name, ''), " . &quo ...
- 搭建LAMP
RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置 /usr/local/apache /usr/local/mysql /usr/local/php 默认MySQL 数据库位 ...
- java从命令行接收多个数字,求和之后输出结果
设计思想:获取输入数的个数,然后将要相加的数字转换成为浮点型进行相加,最后进行输出 源代码: package Add; import java.util.Scanner; // 严羽卿 2015. ...
- WIN7 64位系统注册银行支付组件
WIN7 64位系统注册银行支付组件目前只尝试注册了银联的chinapay.dll和工行的icbcebankutil.dll 1.将dll文件拷贝到windows\syswow64\文件夹下(Win7 ...
- Spring AOP:面向切面编程,AspectJ,是基于注解的方法
面向切面编程的术语: 切面(Aspect): 横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象 通知(Advice): 切面必须要完成的工作 目标(Target): 被通知的对象 代理(Pr ...
- poj3372 Candy Distribution
可以证明: f(k) = k *(k - 1)/ 2 (1 ≤ k ≤ n)是n的完全剩余系当且仅当n = 2 ^ t. http://poj.org/problem?id=3372
- UML建模的要点总结
预备知识: 一.UML的特性与发展现状 UML是一种Language(语言) UML是一种Modeling(建模)Language UML是Unified(统一)Modeling Language 1 ...
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B
Description You are given a table consisting of n rows and m columns. Numbers in each row form a per ...