简单的说一下,我是在DEV C++上实现的复数四则运算。如果学习过JAVA、C++等面向对象高级程序设计语言,那么对抽象数据类型是非常容易理解的。抽象数据类型就类似于java中的类。
废话不多说了直接上代码。
#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
typedef struct
{
float Realpart;//实数集,实部。
float Imagepart;//实数集,虚部。
}Complex;
void Creat(Complex &C, float x, float y) //构造一个复数。
{
C.Realpart = x;//复数的实部
C.Imagepart = y;//复数的虚部系数
}
float GetReal(Complex C)//获取实部
{
return C.Realpart;
}
float GetImag(Complex C)//获取虚部系数。
{
return C.Imagepart;
}
Complex Add(Complex C1, Complex C2)//两个复数相加
{
Complex sum;
sum.Realpart = C1.Realpart + C2.Realpart;
sum.Imagepart = C1.Imagepart + C2.Imagepart;
return sum;
}
Complex Sub(Complex C1, Complex C2)//两个复数相减。
{
Complex difference;
difference.Realpart = C1.Realpart - C2.Realpart;
difference.Imagepart = C1.Imagepart - C2.Imagepart;
return difference;
}
Complex Mul(Complex C1, Complex C2)//两个复数相乘。
{
Complex mul;
mul.Realpart = C1.Realpart * C2.Realpart - C1.Imagepart * C2.Imagepart;
mul.Imagepart = C1.Imagepart * C2.Realpart + C1.Realpart * C2.Imagepart;
return mul;
}
Complex Div(Complex C1, Complex C2) //两个复数相除。
{
Complex div ;
div.Realpart = (C1.Realpart * C2.Realpart + C1.Imagepart * C2.Imagepart)/(C2.Realpart * C2.Realpart + C2.Imagepart * C2.Imagepart);
div.Imagepart = (C1.Imagepart * C2.Realpart - C1.Realpart * C2.Imagepart)/(C2.Realpart * C2.Realpart + C2.Imagepart * C2.Imagepart);
return div;
}
int main()
{
Complex Com,Com1,Com2,Com3;
float R,I,R1,I1,R2,I2;
int choose = -1;
cout <<"1, 建立\n";
cout <<"2, 取实部\n";
cout <<"3, 取虚部\n";
cout <<"4, 求和\n";
cout <<"5, 求差\n";
cout <<"6, 求积\n";
cout <<"7, 求商\n";
cout <<"0, 退出\n";
while(choose != 0)
{
cout <<"请选择:";
cin >>choose;
switch (choose)
{
case 1://建立一个复数。
cout << "输入1个复数\n";
cin >> R >> I;
Creat(Com,R,I);
cout << "复数" <<Com.Realpart<<"+"<<Com.Imagepart<<"i"""<<endl;
break;
case 2://取复数实部。
cout << "输入1个复数\n";
cin>>R>>I;
Creat(Com,R,I);
cout << "复数实部:"<<GetReal(Com)<<endl;
break;
case 3://取复数虚部。
cout<< "输入一个复数\n";
cin>>R1>>I1;
Creat(Com,R1,I1);
cout << "复数虚部:"<<GetImag(Com)<<endl;
break;
case 4://复数求和
cout << "输入第1个复数\n";
cin>>R1>>I1;
Creat(Com1,R1,I1);
cout << "输入第2个复数\n";
cin>>R2>>I2;
Creat(Com2,R2,I2);
cout << "复数相加:" <<Add(Com1,Com2).Realpart;
cout << "+" <<Add(Com1,Com2).Imagepart<<"i"<<endl;
break;
case 5://复数相减
cout << "输入第1个复数\n";
cin>>R1>>I1;
Creat(Com1,R1,I1);
cout << "输入第2个复数\n";
cin>>R2>>I2;
Creat(Com2,R2,I2);
cout << "复数相减:" <<Sub(Com1,Com2).Realpart;
cout << "+" <<Sub(Com1,Com2).Imagepart<<"i"<<endl;
break;
case 6://复数相乘。
cout << "输入第1个复数\n";
cin>>R1>>I1;
Creat(Com1,R1,I1);
cout << "输入第2个复数\n";
cin>>R2>>I2;
Creat(Com2,R2,I2);
cout << "复数相积:" <<Mul(Com1,Com2).Realpart;
cout << "+" <<Mul(Com1,Com2).Imagepart<<"i"<<endl;
break;
case 7://复数相除
cout << "输入第1个复数\n";
cin>>R1>>I1;
Creat(Com1,R1,I1);
cout << "输入第2个复数\n";
cin>>R2>>I2;
Creat(Com2,R2,I2);
cout << "复数相除:" <<Div(Com1,Com2).Realpart;
cout << "+" <<Div(Com1,Com2).Imagepart<<"i"<<endl;
break;
}
}
return 0;
}
复数的四则运算数学表达这里我就不叙述了,如果有不会的小伙伴可以去搜索一下。