您的位置:首页 > 编程语言 > C语言/C++

复数运算类

2015-04-24 19:54 323 查看
这两天老师让做一个复数运算类,上机前做了一个。结果我做的跟老师的要求不一样。具体不详细说了,来看代码吧。

自己做的:

#include<iostream>
using namespace std;
class complex
{
public:
complex(){real1= 0;imag1=0;real2= 0;imag2=0;oper1='i';oper2='i';}
double real1,real2,real3,imag1,imag2,imag3;
char oper1,oper2,oper3;
void in()//输入函数
{
cout<<"请输入第一个数:";
cin>>real1>>imag1>>oper1;

cout<<"请输入第二个数:";
cin>>real2>>imag2>>oper2;
}
void add()//加法
{
real3=real1+real2;
imag3=imag1+imag2;
if(imag3>0)
oper3='+';

}
void sub()//减法
{
real3=real1-real2;
imag3=imag1-imag2;
if(imag3>0)
oper3='+';

}
void mul()//乘法
{
real3=(real1*real2)-(imag1*imag2);
imag3=(imag1*real2)+(real1*imag2);
if(imag3>0)
oper3='+';
}
void div()//除法
{
if(real2==0&&imag2==0)
{
cout<<"除数不可以是0"<<endl;
}
else
{
real3=((real1*real2)+(imag1*imag2))/(real2*real2+imag2*imag2);
imag3=((imag1*real2)-(real1*imag2))/(real2*real2+imag2*imag2);
if(imag3>0)
oper3='+';
}
}
void out()//输出函数
{
if(real3!=0&&imag3>0)
cout<<real3<<oper3<<imag3<<"i"<<endl;
if(real3!=0&&imag3<0)
cout<<real3<<imag3<<"i"<<endl;
if(real3==0&&imag3!=0)
cout<<imag3<<"i"<<endl;
if(real3!=0&&imag3==0)
cout<<real3<<endl;
if(real3==0&&imag3==0)
cout<<"0"<<endl;
}
};

int main()
{
complex a;
int num;
cout<<"1--加法,2--减法,3--乘法,4--除法,0--退出"<<endl;
while(cin>>num)
{
if(num==1)
{a.in();a.add();a.out();}
if(num==2)
{a.in();a.sub();a.out();}
if(num==3)
{a.in();a.mul();a.out();}
if(num==4)
{a.in();a.div();a.out();}
if(num==0)
break;
cout<<"1--加法,2--减法,3--乘法,4--除法,0--退出"<<endl;
}
}


2.老师要求:

#include<iostream>
using namespace std;
class complex
{
public:
double real,imag;
complex(){real= 0;imag=0;} //构造函数1
complex(double real,double imag)//构造函数2
{
this->real=real;
this->imag=imag;
}
void set(double real,double imag)
{
this->real=real;
this->imag=imag;
}
void print()//输出函数
{

if(imag>0)
cout<<real<<"+"<<imag<<"i"<<endl;
if(imag<0)
cout<<real<<imag<<"i"<<endl;
if(imag==0)
cout<<real<<endl;
}

};complex
4000
sub(complex c1,complex c2)//减法
{
complex c3;
c3.real=c1.real-c2.real;
c3.imag=c1.imag-c2.imag;
return c3;
}
complex add(complex c1,complex c2)//加法
{
complex c3;
c3.real=c1.real+c2.real;
c3.imag=c1.imag+c2.imag;
return c3;
}
int main()
{
complex c1(2,4);
complex c2,c3;
c2.set(2,-4);
c1.print();
c2.print();
c3.print();
c3=add(c1,c2);  c3.print();
c3=sub(c1,c2);  c3.print();

}


总结:老师要求的有关于构造函数的知识,稍微高端点==。自己做的有些缺点–不能直接输入123之类的实数,都待改进。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息