复数运算类
2015-04-24 19:54
323 查看
这两天老师让做一个复数运算类,上机前做了一个。结果我做的跟老师的要求不一样。具体不详细说了,来看代码吧。
自己做的:
2.老师要求:
总结:老师要求的有关于构造函数的知识,稍微高端点==。自己做的有些缺点–不能直接输入123之类的实数,都待改进。
自己做的:
#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之类的实数,都待改进。
相关文章推荐
- 第八周项目一 复数类拓展之复数与double型数据的运算
- 用java实现复数的加减乘除运算
- 运算符的重载(复数的相关运算)
- 洗刷刷——实现复数运算中+运算符的重载
- 处理一个复数于double数相加的运算
- 算法-->复数运算
- 实现复数的一般算术运算
- Java练习之复数运算
- 第7周任务3(使用类模板,实现复数的四则运算)
- 复数的四则运算
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 算法提高 6-17复数四则运算
- 《更好的解释(数学篇)》——第六章 复数运算
- java中复数四则运算的小程序
- 复数运算 最大公倍数
- 8-1——复数类运算符的重载 double数据与复数之间的运算 任务三
- 复数运算
- 算法笔记_156:算法提高 6-17复数四则运算(Java)
- 项目五--复数运算
- Data Structures——Chapter One Exercises(换位置+复数的加减乘除运算)