面向对象复习(2)

2019-04-08 18:34

(5) ;//给name初始化 cout<<\}

~ Person ( )

{ (6) ;//释放内存空间 cout<<\}

void show( ); private:

char *name; };

void Person::show( ) {cout<

{Person student1(\

(7) .show( ); }

11、定义一个Point类,由它公有派生出矩形类Rectangle和圆类Circle,计算各派生类对象的面积。

#include const double PI=3.14159; class Point { protected: double x;

double y; public:

Point(double a,double b){x=a; (8) ;} };

class Rectangle: (9) {public:

square(double a,double b): (10) { } void area(); };

void Rectangle ::area( )

{ cout<<\ (11) <

Circle (double a,double b,double c): (12) { r=c;}

void area(); private:

double r; };

void Circle ::area( )

{ cout<<\ (13) <

6

void main( )

{ Rectangle r(5.5,6.0); Circle c(0,0,5.0); r.area( ); c.area( ); }

12、利用友元函数实现比较两个点离原点的距离。 #include class Point { public:

Point(double xx,double yy)

{ (14) ; (15) ;} void Getxy( ) ;

(16) int compare(Point &a, Point &b); private:

double x,y; } ;

void (17) Getxy( ) {cout<<\

int compare(Point &a, Point &b)//若a比b更近,则返回0,否则返回1 { (18) ; double db=b.x*b.x+b.y*b.y ;

return (19) ; }

void main( ) {

Point p1(1.0,3.0),p2(2.0,4.0); cout<<\ cout<<\

int d= (20) ; if(!d) cout<<\ else cout<<\ }

13、此程序的功能是求Fibonacci 数列前40个数,请填空。 #include #include void main() {long f1,f2; int i;

(1) ; for(i=1;i<=20;i++)

{cout<

7

(3) ;} }

14、此程序的功能是:构造一个类Box,含有3个数据成员,分别表示盒子的3条边长,还有一个成员函数,用来计算盒子的体积,请给程序填空。 #include class Box {private:

double line,width,height; double volume; public:

Box(double a, double b, double c); void vol( ); };

(4) (double a, double b, double c) { line=a;width=b;height=c; (5) ; } void Box::vol( )

{ cout<

{ Box x(3.4, 4.5, 8.3),y(2.0, 4.0, 6.0); x.vol( ); y.vol( ); }

15、下列程序是有一个基类figure,派生两个square和isosceles_triangle,让每一个派生类都定义一个函数area(),分别用来显示矩形与等腰三角形的面积,请给程序填空。 请给程序填空。 #include class figure {public:

double height, width; };

class square: (7) {public:

square(double h,double w); void area(); };

class isosceles_triangle: (8) {public:

isosceles_triangle(double h,double w); void area(); };

square::square(double h,double w){height=h;width=w;} void square::area()

{cout<<\ (9) <

8

isosceles_triangle::isosceles_triangle(double h,double w) {height=h;width=w;}

void isosceles_triangle::area()

{cout<<\ (10) <

{ square s(10.0,6.0);

isosceles_triangle i(8.0,6.0); s.area();i.area(); } 16、有一个向量Vector,包括一个点的坐标位置x和y,设计两个友元函数add() 和sub(),实现两个向量的加法和减法,请填空。 #include class Vector {private: int x,y; public:

Vector(){}

Vector( (11) ) {x=i;y=j;} void disp()

{cout<<\

(12) (Vector &v1,Vector &v2) {Vector v;

v.x=v1.x+v2.x;

(13) ; return v; }

(14) (Vector &v1,Vector &v2) {Vector v;

(15) ; v.y=v1.y-v2.y; return v; } };

void main()

{Vector v1(10,20),v2(4,5),v3;

v3=add(v1,v2); cout<<\

cout<<\v3.disp();cout<

v1.disp();cout<<\}

17、下列程序对复数类Complex的减法进行运算符的重载,请填空。 #include class Complex

9

{private:

double real; double imag; public:

Complex(){ (16) } Complex(double r,double i) { (17) }

friend Complex operator-(Complex &c1,Complex &c2); void display(); };

(18) (Complex &c1,Complex &c2) { (19) ;

c.real=c1.real-c2.real; c.imag=c1.imag-c2.imag; (20) ; }

18、下列程序求解矩形两条对角线的元素之和。 #include void main( ) {

int i,j,sum1,sum2;

int a[][4]={43,54,32,5,46,98,74,24,39,58,46,25,81,42,67,20}; sum1=0; (1) ; for(i=0;i<4;i++) for(j=0;j<4;j++) {

if( (2) ) sum1+=a[i][j]; if( (3 ) sum2+=a[i][j]; }

cout<

19、完成下面类的定义: #include #include class Student {private: char *name; int num; float score; public:

Student(char *,int,float);

10


面向对象复习(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:红血丝形成的原因红血丝怎么消除

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: