好文档 - 专业文书写作范文服务资料分享网站

复 数 的 运 算 法 则( 2 0 2 0)

天下 分享 时间: 加入收藏 我要投稿 点赞

C++ 复数运算

【现场实战追-女孩课-程】【Q:1О⒈6.x.⒐⒌2б】 完成复数类的运算符重载函数,包括: 基本算术运算(+、-、*、-、=)

自增自减运算(前置++、后置++、前置–、后置–) 流运算符( 、)

z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。

运算法则:

加法: (a+bi)+(c+di)=(a+c)+(b+d)i 减法:(a+bi)-(c+di)=(a-c)+(b-d)i

乘法:(a+bi)(c+di)=ac+adi+bci+bdi2 = (ac-bd)+(bc+ad)i 除法:(a+bi)-(c+di)=(ac+bd)-(c2+d2) +((bc-ad)-(c2+d2))i 由上面题目得知,该复数需要运用到重载函数。所以先写一个.h头文件,

如下Plural.h文件 #pragma once #include iostream using namespace std; class Plural {

Plural(double x = 0, double y = 0) { before = x;

after = y; --基本算术运算

friend Plural operator + (const Plural, const Plural); friend Plural operator - (const Plural, const Plural); friend Plural operator * (const Plural, const Plural); friend Plural operator - (const Plural, const Plural); Plural operator = (const Plural); --自增自减运算

Plural operator ++();--前置++ Plural operator ++(int);--后置++ Plural operator --();--前置-- Plural operator --(int);--后置-- --流运算符( 、)

friend ostream operator (ostream output, Plural); friend istream operator (istream input, Plural); private:

double before, after;

然后创建一个.cpp文件(要和.h文件同名)。 如下Plural.cpp文件

#include \获取头文件

Plural operator + (const Plural a, const Plural b) { return Plural(a.before + b.before, a.after + b.after);

Plural operator - (const Plural a, const Plural b) { return Plural(a.before - b.before, a.after - b.after); Plural operator * (const Plural a, const Plural b) { Plural coud;

--(ac - bd) + (bc + ad)i

coud.before = a.before * b.before - a.after*b.after; coud.after = a.after*b.before + a.before * b.after; return coud;

Plural operator -(const Plural a, const Plural b) { Plural coud;

--(ac + bd) - (c2 + d2) + ((bc - ad) - (c2 + d2))i coud.before

=

((a.before*b.before)+(a.after*b.after))-((b.before*b.before)+(b.after*b.after));

coud.after

=

((a.after*b.before)-(a.before*b.after))-((b.before*b.before)+(b.after*b.after));

return coud; --前置++

Plural Plural:: operator++() { return Plural(++before, ++after); --后置++

Plural Plural:: operator++(int) { return Plural(before++, after++); --前置--

Plural Plural:: operator--() { return Plural(--before, --after); --后置--

Plural Plural::operator--(int) { return Plural(before--, after--);

Plural Plural :: operator = (const Plural l) { if (this!=l) before = l.before; after = l.after; return *this; --流运算符

ostream operator(ostream output, Plural ary) { return output \istream operator (istream input, Plural ary) { return input ary.before ary.after; 最后在main.cpp文件中写入定义和操作值 main.cpp如下: #include \int main()

Plural a, b, c;

cout \cout \运算符+:\cout \运算符-:\cout \运算符*:\cout \运算符-:\++a, ++b;

cout \前置++: a = \a++, b++;

cout \后置++: a = \--a, --b;

cout \前置--: a = \a--, b--;

cout \后置--: a = \演示效果如下:

四元数的矢量部分可以用外积提取出来,就象用点积分离标量那样: Complex operator+(Complex c1, Complex c2) {

此时,重载的是全局操作符,需要把一个操作符函数(类似于全局函数)声明为类的友元。

47 return this.a+\

DivisionException::DivisionException(string

message,

MyComplex divident, MyComplex divisor) :runtime_error(message)

Complex Complex ::operator+=(const Complex c)--加上自身 Output()--初始条件:复数已经存在, --操作结果:以复数形式输出复数到屏幕上

return

MyComplex(a_

+

secondMyComplex.a_,

b_

+

secondMyComplex.b_);

创建复数类。然后重载流操作运算符,能够执行输入输出(10分) Complex operator +=(const Complex c2)

复 数 的 运 算 法 则( 2 0 2 0)

C++复数运算【现场实战追-女孩课-程】【Q:1О⒈6.x.⒐⒌2б】完成复数类的运算符重载函数,包括:基本算术运算(+、-、*、-、=)自增自减运算(前置++、后置++、前置–、后置–)流运算符(、)z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。运算法则:加法
推荐度:
点击下载文档文档为doc格式
0n77u0dnn79pugm7qnnb9acj39qq6000egg
领取福利

微信扫码领取福利

微信扫码分享