您的位置:首页 > 其它

第十、十一周项目一-点-圆-圆柱类族的设计(2)

2016-05-06 11:34 302 查看
/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All rights reserved
*文件名称:123.cpp
*作    者:王蕊
*完成日期:2016年5月6日
*版 本 号:v1.0
*
*问题描述:以点为基类,派生出一个圆类,增加数据成员r,和求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试。
*输入描述:无。
*程序输出:圆的圆心坐标,半径和面积。
*/
#include <iostream>
using namespace std;
class Point
{
public:
Point(double x=0,double y=0);                    //构造函数Point
void setPoint(double,double);                  ////设置x和y的坐标值
double getX( )
{
return x;
}              //x坐标
double getY( )
{
return y;
}              //y坐标
void show();
protected:                                       //受保护的成员
double x,y;
};
void Point::setPoint(double m,double n)  //设置x和y的坐标值
{
x=m;
y=n;
}
Point::Point(double m,double n)  //Point的构造函数
{
x=m;
y=n;
}
void Point::show()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
class Circle:public Point   //Circle是Point类的公用派生类
{
public:
Circle(double x=0,double y=0,double r=0);  //构造函数Circle
void setR(double);                  //设置半径的值
double getR( );               //读取半径的值
double area ( );                   //计算圆的面积
void show();
protected:
double radius;
};
Circle::Circle(double m,double n,double r):Point(m,n),radius(r) { } //定义构造函数

void Circle::setR(double r)  //设置半径的值
{
radius=r;
}
double Circle::getR( )  //读取半径的值
{
return radius;
}
double Circle::area( )  //计算圆的面积
{
return radius*radius*3.14159;
}
void Circle::show()  //输出点和圆的面积
{
cout<<"Point=("<<x<<", "<<y<<"), r="<<radius<<", area="<<area( )<<endl;
}

int main()
{
Circle c(1,2,3);
cout<<"圆的圆心,半径,面积为:"<<endl;
c.show();
c.setPoint(2,1);
c.setR(5);
cout<<"改变后的圆的圆心,半径,面积为:"<<endl;
c.show();
return 0;
}
运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: