码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-05-07 09:35:24      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

<pre name="code" class="cpp">/*
 *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;
}
class Cylinder:public Circle
{
public:
    Cylinder (double x=0,double y=0,double r=0,double h=0);//构造函数Cylinder
    void setHeight(double);                      //设置圆柱的高
    double getHeight( ) const;                    //读取圆柱的高
    double area( ) const;                         //计算圆柱的表面积
    double volume( ) const;                       //计算圆柱的体积
    void show();
protected:
    double height;                               //圆柱高
};
Cylinder::Cylinder(double m,double n,double r,double h) :Circle(m,n,r),height(h){}  //定义构造函数

void Cylinder::setHeight(double h)  //设置圆柱的高
{
    height=h;
}
double Cylinder::getHeight( ) const  //读取圆柱的高
{
    return height;
}
double Cylinder::area() const  //计算圆柱的表面积
{
    return 2*(radius*radius*3.14159)+2*3.14159*radius*height;
}
double Cylinder::volume() const  //计算圆柱的体积
{
    return radius*radius*3.14159*height;
}

void Cylinder::show()
{
    cout<<"Point=("<<x<<","<<y<<"), r="<<radius<<", h="<<height
        <<", area="<<area( )<<", volume="<<volume( )<<endl;
}
int main( )
{
    Cylinder cy1(1,2,3,4);
    cout<<"坐标,半径,高,圆柱表面积,圆柱体积"<<endl;
    cy1.show();
    cy1.setHeight(5);
    cy1.setR(6);
    cy1.setPoint(2,1);
    cout<<"改变后的坐标,半径,高,圆柱表面积,圆柱体积"<<endl;
    cy1.show();
    return 0;
}



运行结果:

技术分享

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

标签:

原文地址:http://blog.csdn.net/wangrui813/article/details/51330517

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!