class.cpp //类其中函数的编写
#include"iostream.h"
#include"CComplex.h"
void CComplex::setvalue(double a,double b)
{
mr=a;//赋值过程
mi=b;
}
void CComplex::showvalue()
{
if(mr!=0)//实部不为0
{
cout<<mr;
if(mi>0)//虚部大于0的情况
{
if(mi!=1)//虚部不为1的情况
cout<<"+"<<mi<<"i"<<endl;
else//虚部为1的情况
cout<<"+i"<<endl;
}
if(mi<0)//虚部小于0的情况
{
if(mi!=-1)//虚部不为-1的情况
cout<<mi<<"i"<<endl;
else//虚部为-1的情况
cout<<"-i"<<endl;
}
else
;//虚部为零,无操作
}
else//实部为0
{
if(mi>0)//虚部大于0的情况
{
if(mi!=1)//虚部不为1的情况
cout<<mi<<"i"<<endl;
else//虚部为1的情况
cout<<"i"<<endl;
}
if(mi<0)//虚部小于0的情况
{
if(mi!=-1)//虚部不为-1的情况
cout<<mi<<"i"<<endl;
else//虚部为-1的情况
cout<<"-i"<<endl;
}
if(mi==0)//虚部为零
cout<<"0"<<endl;//输出0
}
}
void CComplex::add(CComplex *zc)
{
zc->mr=zc->mr+mr;
zc->mi=zc->mi+mi;
}
void CComplex::subtraction(CComplex *zc)
{
zc->mr=mr-zc->mr;
zc->mi=mi-zc->mi;
}
CComplex CComplex:: multiply(CComplex zc1,CComplex zc2)
{
CComplex zc;
zc.mr=(zc1.mr*zc2.mr)-(zc1.mi*zc2.mi);
zc.mi=(zc1.mr*zc2.mi)+(zc1.mi*zc2.mr);
return zc;
}
CComplex CComplex::divide(CComplex zc1,CComplex zc2)
{
CComplex zc,zc3,temp;
if(zc2.mr!=0 || zc2.mi!=0)
{
zc.mr=zc2.mr;
zc.mi=zc2.mi*(-1);
zc3=zc3.multiply(zc1,zc);
temp=zc3.multiply(zc2,zc);
zc3.mr=zc3.mr/temp.mr;
zc3.mi=zc3.mi/temp.mr;
return zc3;
}
else
{
cout<<"输入的数字不能均为零!请重新输入。";
}
}
CComplex.h //头文件 类的定义
#ifndef _some
#define _some
class CComplex{
double mr,mi;
public:
void setvalue(double a,double b);
void showvalue();
void add(CComplex *zc);
void subtraction(CComplex *zc);
CComplex multiply(CComplex zc1,CComplex zc2);
CComplex divide(CComplex zc1,CComplex zc2);
};
#endif
CComplex.cpp //main函数的编写,包括交互的程序编写
#include"iostream.h"
#include"CComplex.h"
void main()
{
CComplex zc1,zc2;
int x;
//赋值
double a,b;
cout<<"请输入复数的实部与虚部(实部在前,虚部在后,空格隔开):"<<endl;
cin>>a>>b;
zc1.setvalue(a,b);
cout<<"请输入复数的实部与虚部(实部在前,虚部在后,空格隔开):"<<endl;
cin>>a>>b;
zc2.setvalue(a,b);
cout<<"请输入需要使用的功能:"<<endl;
cout<<"1.加法计算"<<endl;
cout<<"2.减法计算"<<endl;
cout<<"3.乘法计算"<<endl;
cout<<"4.除法计算"<<endl;
for(;1;)
{
cin>>x;
switch(x)
{
case 1:
//相加
zc1.add(&zc2);
//输出
cout<<"复数相加的结果:"<<endl;
zc2.showvalue();
break;
case 2:
zc1.subtraction(&zc2);
cout<<"复数相减的结果:"<<endl;
zc2.showvalue();
break;
case 3:
//相乘
zc1=zc1.multiply(zc1,zc2);
cout<<"复数相乘的结果:"<<endl;
zc1.showvalue();
break;
case 4:
//相除
zc1=zc1.divide(zc1,zc2);
cout<<"复数相除的结果:"<<endl;
zc1.showvalue();
break;
default:
cout<<"无此功能"<<endl;
break;
}
}
}
与C语言差不多,就是类的使用要小心。