华科C++第七次上机作业.doc

华科C++第七次上机作业.doc
华科C++第七次上机作业.doc

第七次上机作业

1、范例:设计并测试一个矩形类(Rectangle)。属性为矩形的左下角与右上角的坐标,矩形

水平放置。操作为计算矩形的周长和面积。

2、 #include

3、 #include

4、 using namespace std;

5、 class Rectangle{

6、double left, top;

7、double right, bottom;

8、 public:

9、Rectangle(double l=0,double t=0,double r=0,double b=0);

10、~Rectangle(){};

11、void Assign(double l,double t,double r,double b);

12、void Show();

13、double Area();

14、double Perimeter();};

15、Rectangle:: Rectangle(double l ,double t, double r, double b){

16、left=l ;top =t;

17、right=r; bottom=b;}

18、void Rectangle::Assign(double l,double t,double r,double b){

19、left=l ;top =t;

20、right=r; bottom=b;}

21、void Rectangle::Show(){

22、cout<< "left-top point is("<

23、cout<<"right-bottom point is("<

24、double Rectangle::Area(){

25、return fabs((right-left)*fabs(bottom-top));

26、}

27、double Rectangle::Perimeter(){

28、return 2*(fabs(right-left)+fabs(bottom-top));

29、}

30、int main(){

31、Rectangle rect;

32、();

33、(100,200,300,400);

34、();

35、Rectangle rect1(0,0,200,200);

36、();

37、(100,200,300,400);

38、();

39、cout<<"?? ?y"<<()<<'\t'<<"? ü3¤ "<<()<

40、cout<<"?? ?y"<<()<<'\t'<<"? ü3¤ "<<()<

41、return 0;}

42、

(1)将Rectangle(double l=0, double t=0, double r=0, double b=0); 改为Rectangle(double l, double t, double r, double b);

程序仍能正确运行吗为什么

答:无法正确运行,因为数据成员没有初值。

(2)注意成员函数 void Show( ) 、 double Area () 、 double Perimeter( ) 的使用,因为在第三章

如果需编写类似功能的一般函数是需要带参数(形参)的。

而在此处作为类的成员函数又不需要带参数。思考为什么

答:构造函数是隐式调用的

(3)理解 void Assign(double l,double t,double r,double b);函数的作用。将Rectangle(double l=0, double t=0, double r=0, double b=0);

改为 Rectangle(double l, double t, double r, double b); 这时,有人认为 Rectangle(double l, double t, double r, double b) 和 void Assign(double l,double t,

double r,double b) 的功能相同,那么 Assign 函数能否去掉呢请试一试,结果会怎样

答:不能,结果无法运行。

2、定义一个圆类(Circle),要求用两种方法定义:

方法一:要求属性为半径,操作为计算圆的周长和面积。

#include

#include

using namespace std;

const double PI=;

class Circle{

private:

double Radius;

public :

Circle(double r=0);

~Circle(){};

void Assign(double r);

double zc();

double mj();

};

Circle::Circle(double r){

Radius=r;}

void Circle::Assign( double r){

Radius=r;}

double Circle::zc(){

return (PI*Radius*2);

}

double Circle::mj(){

return (PI*Radius*Radius);}

int main (){

Circle yuan;

;

cout<<" 周长 "<<()<

cout<<" 面积 "<<()<

return 0;

}

方法二:要求属性为半径(radius)、圆周长和面积,操作为输入半径,并计算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为 0,周长和面积在构造函数中生成)和拷贝构造函数。

相关主题
相关文档
最新文档