- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一预做报告
实验一:关于抽象数据类型ADT的实验预做报告
设计与实现
复数的有关操作
(1)复数的ADT
(2)复数类模板的定义(XXXX.h,如complex.h)
template class T
class Complex
{
private:
T real,imag;
public:
Complex();
Complex(T r,T i);
T Getreal()const;
T Getimag()const;
ComplexT Add(Complex c);
ComplexT sub(Complex c);
ComplexT mul(Complex c);
ComplexT Div(Complex c);
ComplexT operator+(Complex c);
ComplexT operator-(Complex c);
ComplexT operator*(Complex c);
ComplexT operator/(Complex c);
void Output(ostream out);
void Input(istream in);
friend ostream operator(ostream out,ComplexT c);
friend istream operator(istream in,ComplexT c);
};
(3)复数类模板中成员函数的实现(complex.cpp)
enum Excode{Divbyzero};
template class T
ostream operator(ostream out,ComplexT c);
template class T
istream operator(istream in,ComplexT c);
template class T
ComplexT::Complex()
{
real=imag=0;
}
template class T
ComplexT::Complex(T r,T i)
{
real=r; imag=i;
}
template class T
T ComplexT::Getreal()const
{
return real;
}
template class T
T ComplexT::Getimag()const
{
return imag;
}
template class T
ComplexT ComplexT::Add(ComplexT c)
{
Complex c1;
c1.real=real+c.real;
c1.imag=imag+c.imag;
coutc1;
return c1;
}
...
template class T
ComplexT ComplexT::Div(ComplexT c)
{
Complex c1;
T x1,x2,x3;
x1=real*c.real+imag*c.imag;
x2=imag*c.real-real*c.imag;
x3=c.real*c.real+c.imag*c.imag;
if(x3==0) throw Divbyzero;
c1.real=x1/x3;
c1.imag=x2/x3;
coutc1;
return c1;
}
template class T
ComplexT ComplexT::operator+(ComplexT c)
{
Complex c1;
c1.real=real+c.real;
c1.imag=imag+c.imag;
coutc1;
return c1;
}
...
template class T
ComplexT ComplexT::operator*(ComplexT c)
{
Complex c1;
c1.real=real*c.real-imag*c.imag;
c1.imag=imag*c.real+real*c.imag;
coutc1;
return c1;
}
…
template class T
void ComplexT::Output(ostream out)
{
if(real!=0) outreal;
if(imag0) out+;
if(imag!=0) outimagi;
if(real==0imag==0) coutre
文档评论(0)