/*
*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="" />