天天看点

再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main

/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:main.cpp
*作    者:郭辉
*完成时间:2016年5月10日
*版 本 号:v1.0
*
*问题描述:再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。 
*输入描述:无。
 *程序输出:体积,表面积。
*/
#include<iostream>
using namespace std;
class point 
{
protected:
	int x;
	int y;
public:
	point(int,int);
	void show();
	double getx(){return x;}
	double gety(){return y;}
};
class Circle:public point
{
protected:
	double r;
	double c;
public:
	Circle(double i,double j,double k);
	void getr(double);
	double area();
	void cshow();
};
point::point(int a,int b)
{
	x=a;
	y=b;
}
void point::show()
{
	cout<<x<<" "<<y<<endl;
}
Circle::Circle(double i,double j,double k):point(i,j),r(k){}
void Circle::getr(double i)
{
	r=i;
}
double Circle::area()
{
	c=3.14*r*r;
	return c;
}
void Circle::cshow()
{
	cout<<"mianji:"<<c;
}
class Cylinder:public Circle
{
public:
	 Cylinder (int x=0,int y=0,double r=0,double h=0);
	double area();
	double volume();
	void show();
protected:
	double hi;
};
Cylinder::Cylinder(int x,int y,double r,double h) :Circle(x,y,r),hi(h){}
double Cylinder::area()
{
	return c*2+hi*2*3.14*r;
}
double Cylinder::volume()
{
	return Circle::area()*hi;
}
void Cylinder::show()
{
	cout<<"表面积:"<< area()<<"      体积:"<<volume();
}
int main()
{
	Cylinder cy1(3,6,5.2,10);
	cy1.show();


}
	
           
运行结果:
           
<img src="https://img-blog.csdn.net/20160510213306701" alt="" />