天天看點

再以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="" />