
复数四则运算 编程
一.实验目的熟悉抽象数据类型的表示和实现方法。抽象数据类型需借助固有数据类型来表示和实现,即利用高级程序设计语言中已存在的数据类型来说明新的结构,用已经实现的操作来组合新...
一.实验目的
熟悉抽象数据类型的表示和实现方法。抽象数据类型需借助固有数据类型来表示和实现,即利用高级程序设计语言中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作,具体实现细节则依赖于所用的语言的功能。
二.实验内容
1.问题描述
设计一个可进行复数运算的程序
2.基本要求
实现下列六种基本运算:
1)由输入的实部和虚部生成一个复数;
2)两个复数求和;
3)两个复数求差;
4)两个复数的求积;(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示。
三.实验环境
Microsoft Visual C++ 6.0
四. 测试数据
对下列数据实现求和:
(1)0,0;0,0
(2)3.1,0;4.22,8.9
(3)-1.33,2.34;0.1,-6.5
(4)0,9.7;-2.1,-9.7
(5)7.7,-8;-7.7,0
五.实验报告要求(手写)
(1)实验目的
(2)实验内容
(3)程序代码
(4)程序测试结果
(5)实验中遇到的问题及解决方法
(6)实验体会
请高手帮我写下C语言程序。上学期学的C语言都忘了 展开
熟悉抽象数据类型的表示和实现方法。抽象数据类型需借助固有数据类型来表示和实现,即利用高级程序设计语言中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作,具体实现细节则依赖于所用的语言的功能。
二.实验内容
1.问题描述
设计一个可进行复数运算的程序
2.基本要求
实现下列六种基本运算:
1)由输入的实部和虚部生成一个复数;
2)两个复数求和;
3)两个复数求差;
4)两个复数的求积;(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示。
三.实验环境
Microsoft Visual C++ 6.0
四. 测试数据
对下列数据实现求和:
(1)0,0;0,0
(2)3.1,0;4.22,8.9
(3)-1.33,2.34;0.1,-6.5
(4)0,9.7;-2.1,-9.7
(5)7.7,-8;-7.7,0
五.实验报告要求(手写)
(1)实验目的
(2)实验内容
(3)程序代码
(4)程序测试结果
(5)实验中遇到的问题及解决方法
(6)实验体会
请高手帮我写下C语言程序。上学期学的C语言都忘了 展开
1个回答
展开全部
#include <iostream.h>
class Complex{
private:
float _real;
float _image;
public:
Complex(float real=0,float image=0);
Complex operator +(const Complex &rhs);
Complex operator -(const Complex &rhs);
Complex operator *(const Complex &rhs);
float GetReal()const;
float GetImage()const;
};
Complex::Complex(float real,float image)
{
_real=real;
_image=image;
}
Complex Complex::operator +(const Complex &rhs)
{
_real+=rhs.GetReal();
_image+=rhs.GetImage();
return *this;
}
Complex Complex::operator -(const Complex &rhs)
{
_real-=rhs.GetReal();
_image-=rhs.GetImage();
return *this;
}
Complex Complex::operator *(const Complex &rhs)
{
_real=_real*rhs.GetReal()-_image*rhs.GetImage();
_image=_real*rhs.GetImage()+_image*rhs.GetReal();
return *this;
}
float Complex::GetReal()const
{
return _real;
}
float Complex::GetImage()const
{
return _image;
}
void main()
{
cout<<"依次输入两个复数的实部和虚部"<<endl;
float realA,imageA,realB,imageB;
cin>>realA>>imageA>>realB>>imageB;
Complex A(realA,imageA);
Complex B(realB,imageB);
Complex temp;
//减法和乘法类似
temp=A+B;
cout<<"两者之和为:"<<temp.GetReal()<<"+"<<temp.GetImage()<<"i"<<endl;
cout<<"其实部为"<<temp.GetReal()<<"虚部为"<<temp.GetImage()<<endl;
}
class Complex{
private:
float _real;
float _image;
public:
Complex(float real=0,float image=0);
Complex operator +(const Complex &rhs);
Complex operator -(const Complex &rhs);
Complex operator *(const Complex &rhs);
float GetReal()const;
float GetImage()const;
};
Complex::Complex(float real,float image)
{
_real=real;
_image=image;
}
Complex Complex::operator +(const Complex &rhs)
{
_real+=rhs.GetReal();
_image+=rhs.GetImage();
return *this;
}
Complex Complex::operator -(const Complex &rhs)
{
_real-=rhs.GetReal();
_image-=rhs.GetImage();
return *this;
}
Complex Complex::operator *(const Complex &rhs)
{
_real=_real*rhs.GetReal()-_image*rhs.GetImage();
_image=_real*rhs.GetImage()+_image*rhs.GetReal();
return *this;
}
float Complex::GetReal()const
{
return _real;
}
float Complex::GetImage()const
{
return _image;
}
void main()
{
cout<<"依次输入两个复数的实部和虚部"<<endl;
float realA,imageA,realB,imageB;
cin>>realA>>imageA>>realB>>imageB;
Complex A(realA,imageA);
Complex B(realB,imageB);
Complex temp;
//减法和乘法类似
temp=A+B;
cout<<"两者之和为:"<<temp.GetReal()<<"+"<<temp.GetImage()<<"i"<<endl;
cout<<"其实部为"<<temp.GetReal()<<"虚部为"<<temp.GetImage()<<endl;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询