类的组合课外编程练习.docx
第一题/*-【程序设计】-题目:定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径和表示圆心坐标的点类对象。圆类成员函数包括构造函数、求面积的函数和输出显示圆心坐标及圆半径的函数。输出结果见样张.JPG-*/#include <iostream>using namespace std;const double PI=3.14159;/*Program*/class Pointint xx,yy;public:Point(int x=0,int y=0)xx=x;yy=y;Point(Point&p)xx=p.xx;yy=p.yy;int getX()return xx;int getY()return yy;void SetP(int x,int y);void Point:SetP(int x,int y)xx=x;yy=y;class CirclePoint p1;int radius;public:Circle(Point p0,int r=0);Circle()Circle(Circle&c);void show(); double getArea()double y;y=radius*radius*PI;return y;void SetCC(Point p0,int r);Circle:Circle(Point p0,int r):p1(p0)radius=r;Circle:Circle(Circle&c):p1(c.p1)radius=c.radius;void Circle:SetCC(Point p0,int r)p1=p0;radius=r;/* End */void Circle:show()cout<<"圆心X坐标="<<p1.getX()<<",圆心Y坐标="<<p1.getY()<<endl; cout<<"圆半径="<<radius<<endl;int main() Point p1(9,2),p2; /9为x坐标,2为y坐标 Circle c1(p1,7),c2; /7为半径 p1为圆心点 c1.show(); cout<<"圆的面积="<<c1.getArea()<<endl; p2.SetP(1,1);/改变圆心坐标 c2.SetCC(p2,4);/以p2为圆心坐标,改变c2的半径 c2.show();/显示c2 cout<<"圆的面积="<<c2.getArea()<<endl; return 0;第二题/*-【程序设计】-题目:定义一个点类Point,包括x坐标和y坐标(int)。定义一个CRect类,代表一个矩形,要求CRect类中有代表矩形的左上角坐标(x1,y1)和右下角坐标(x2,y2)点类的对象,要求CRect类中有两个成员函数RectHeight()和RectWidth(),通过这两个函数能得到矩形的高和宽。(高和宽必须为非负数)输出结果见样张.JPG-*/#include <iostream>#include <cmath>using namespace std;/*Program*/class Pointint xx,yy;public:Point(int x=0,int y=0)xx=x;yy=y;Point(Point&p)xx=p.xx;yy=p.yy;void setP(int x,int y);int getX()return xx;int getY()return yy;void Point:setP(int x,int y)xx=x;yy=y;class CRectPoint p1,p2;public:CRect(Point pm,Point pn);CRect();CRect(CRect&c);int RectHeight()int y;if(p1.getY()>p2.getY()y=p1.getY()-p2.getY();elsey=p2.getY()-p1.getY();return y;int RectWidth()int X;if(p1.getX()>p2.getX()X=p1.getX()-p2.getX();elseX=p2.getX()-p1.getX();return X;void SetR(Point pm,Point pn)p1=pm;p2=pn;CRect:CRect(Point pm,Point pn):p1(pm),p2(pn)CRect:CRect(CRect&c):p1(c.p1),p2(c.p2)/* End */int main() Point p1(1,9),p2(8,5),p3,p4; /p1-左上角坐标 1-x坐标 9-y坐标 p2-右下角坐标 8-x坐标 5-y坐标 CRect cr(p1,p2),cr1; cout<<"Height="<<cr.RectHeight()<<endl; /输出矩形高度 cout<<"Width="<<cr.RectWidth()<<endl; /输出矩形宽度 p3.setP(1,1);/改变p坐标 p4.setP(3,5); / 改变p4坐标 cr1.SetR(p3,p4); /p3-左上角坐标 p4-右下角坐标 cout<<"Height="<<cr1.RectHeight()<<endl; cout<<"Width="<<cr1.RectWidth()<<endl; return 0;