C++复数类的设计
答案:2 悬赏:0 手机版
解决时间 2021-01-26 00:36
- 提问者网友:了了无期
- 2021-01-25 20:15
题目要求: 设计一个复数类,并实现相关的功能。 具体要求如下: (1) 该复数类的类名按照如下格式来写: class QHW_complex 其中QHW表示每个学生自己的姓名每个字的首字母,QHW表示这是某某某同学的考试卷; (2) 该复数类中必须有相应的构造函数、拷贝构造函数、析构函数;并设计相应的成员函数实现复数的加减乘除四则运算; (3) 整个程序设计必须按照多文件结构来设计; (4) 整个程序在设计过程中,必须要有相应的输入输出提示语句,在程序运行时,可以让使用者得到明确的提示,比如,提示需要输入哪些数据,提示怎样选择去做那种运算,提示运算输出的结果是什么,等等; 整个程序设计,最终以两个类型的结果体现出来. 题目就是这样,,急求高手帮忙,谢谢
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-01-25 21:21
分文件会的吧 记得不要重复包含 你用我下面程序改改就行了,以前写的 #include using namespace std; class Complex { public: Complex() {real = 0; imag = 0;} Complex(double r, double i){ real = r; imag = i;} Complex operator + (Complex &c2); Complex operator - (Complex &c2); Complex operator * (Complex &c2); Complex operator / (Complex &c2); void display(); private: double real; double imag; }; Complex Complex::operator +(Complex &c2) { Complex c; c.real = real + c2.real; c.imag = imag + c2.imag; return c; } Complex Complex::operator - (Complex &c2) { Complex c; c.real = real - c2.real; c.imag = imag - c2.imag; return c; } Complex Complex::operator * (Complex &c2) { Complex c; c.real = real * c2.real - imag * c2.imag; c.imag = imag * c2.real + real * c2.imag; return c; } Complex Complex::operator / (Complex &c2) { Complex c; c.real = (real * c2.real + imag * c2.imag) / (c2.real * c2.real + c2.imag * c2.imag); c.imag = (imag * c2.real -real * c2.imag) / (c2.real * c2.real + c2.imag * c2.imag); return c; } void Complex::display() { cout<< "(" << real << "," << imag << "i)" <全部回答
- 1楼网友:煞尾
- 2021-01-25 23:00
class complexnumber
{
double m_drealpart,m_dimaginpart;
complexnumber()//构造函数,将实部虚部置0
{
m_drealpart=0;
m_dimaginpart=0;
}
complexnumber(double r, double i)//构造函数,创建复数对象的同时完成复数的实部虚部的初始化,r为实部,i为虚部。
{
m_drealpart=r;
m_dimaginpart=i;
}
double getrealpart()//获得实部
{
return m_drealpart;
}
double gerimaginarypart()//获得虚部
{
return m_dimaginpart;
}
void setrealpart(double d)//置实部为d
{
m_drealpart=d;
}
void setimaginarypart(double d)//置虚部为d
{
m_dimaginpart=d;
}
complexnumber complexadd(complexnumber c)//当前复数与形参复数相加,将结果返回方法调用者。
{
m_drealpart+=c.m_drealpart;
m_dimaginpart+=c.m_dimaginpart;
return this;
}
complexnumber complexadd(double c)//当前复数与形参实数相加,结果返回给方法调用者。
{
m_drealpart+=c;
return this;
}
complexnumber complexminus(complexnumber c)//当前复数与形参复数相减,结果返回方法调用者。
{
m_drealpart-=c.m_drealpart;
m_dimaginpart-=c.m_dimaginpart;
return this;
}
complexnumber complexminus(double c)//当前复数与形参实数相减,结果返回给方法调用者。
{
m_drealpart-=c;
return this;
}
complexnumber complexmulti(complexnumber c)//当前复数与形参复数相乘,结果返回方法调用者。
{
double tempreal,tempimagin;
tempreal=m_drealpart;
tempimagin=m_dimaginpart;
m_drealpart=tempreal*c.m_drealpart-tempimagin*c.m_dimaginpart;
m_dimaginpart=tempreal*c.m_dimaginpart+tempimagin*c.m_drealpart;
return this;
}
string tostring()//把当前复数对象的实部虚部组合成a+bi的字符串形式。
{
return m_drealpart+"+"+m_dimaginpart+"i";
}
}
还没调试,应该是可以用的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯