C++面向对象实验报告 下载本文

(2)实验指导书P107 3

三、实验环境

联想计算机,Windows XP操作系统,Visual C++ 6.0

四、算法描述及实验步骤

(1)编写源程序。

(2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。

(3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。 (4)运行程序,分析结果。

(5)将调试好的程序保存在自己的用户目录中,文件名自定。

五、调试过程

在类Time中漏掉‘void gettime();‘语句导致错误。

六、实验结果

(1)

(2)

七、总结

(1)掌握了运算符重载的应用。 (2)了解到运算符重载的形式。

附录:

代码如下: (1)//sy6_1.cpp #include using namespace std; class complex

{

public:

complex(){real=imag=0.0;}

complex(double r){real=r;imag=0.0;} complex(double r,double i){real=r;imag=i;} complex operator+(const complex &c); complex operator-(const complex &c); complex operator*(const complex &c); complex operator/(const complex &c); friend void print(const complex &c);

private:

double real,imag; };

inline complex complex::operator+(const complex &c) {

return complex(real+c.real,imag+c.imag); }

inline complex complex::operator-(const complex &c) {

return complex(real-c.real,imag-c.imag);

}

inline complex complex::operator*(const complex &c)

{

return complex(real*c.real-imag*c.imag,real*c.imag+imag*c.real); }

inline complex complex::operator/(const complex &c) {

return complex((real*c.real+imag*c.imag)/(c.real*c.real+c.imag*c.imag),

(imag*c.real-real*c.imag)/(c.real*c.real+c.imag*c.imag));

}

void print(const complex &c) {

if(c.imag<0)

cout<

cout<

}

int main()

{ complex c1(2.0),c2(3.0,-5.0),c3; c3=c1+c2;

cout<<\print(c3); c3=c1-c2;

cout<<\print(c3); c3=c1*c2;

cout<<\print(c3); c3=c1/c2;

cout<<\

print(c3);

c3=(c1+c2)*(c1-c2)*c2/c1;

cout<<\print(c3); cout<

return 0;} (2)//sy6_2.cpp #include

using namespace std;

class Time {

public: Time(){hours=0;minutes=0;seconds=0;}

Time(int h,int m,int s) {

hours=h;minutes=m;seconds=s;

}

Time operator+(Time&);

void gettime(); private:

int hours,minutes,seconds; };

Time Time::operator+(Time& time) { int h,m,s;

s=time.seconds+seconds; m=time.minutes+minutes+s/60; h=time.hours+hours+m/60; Time result(h,m`,s`); return result; }

void Time::gettime()

{

cout<

Time t1(8,51,40),t2(4,15,30),t3; t3=t1+t2;

t3.gettime(); return 0;}

实验7 模板

一、实验目的和要求

(1)能够使用c++模板机制定义重载函数。 (2)能够实例化及使用函数模板。 (3)能够实例化和使用类模板。

(4)应用标准c++模板库(STL)通用算法和函数对象实现查找与排序。

二、实验内容和原理

(1)实验指导书P109 1 (2)实验指导书P112 4

三、实验环境

联想计算机,Windows XP操作系统,Visual C++ 6.0

四、算法描述及实验步骤

(1)编写源程序。

(2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。

(3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。 (4)运行程序,分析结果。

(5)将调试好的程序保存在自己的用户目录中,文件名自定。

五、调试过程