* 程序头部注释开始* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.* 文件名称:
* 作 者: 时永杰
* 完成日期:2012 年 4月 22日
* 版 本 号:v1.1
#include <iostream>
using namespace std;
const double PI =3.14159;
class Point
{
public:
Point(double x=0,double y=0):a(x),b(y){}
~Point();
protected:
double a;
double b;
};
class Circle:public Point
{
public:
Circle(double a, double b,double z=0):Point(a,b){r=z;}
~Circle();
double getmianji();
double getzhouchang();
protected:
double r;
};
class Cylinder:public Circle
{
public:
Cylinder(double a,double b,double r,double height=0):Circle(a,b,r){h=height;}
~Cylinder();
double getbiaomianji();
double gertiji();
double geta()
{
return a;
}
friend ostream &operator<<(ostream &output,Cylinder c1);
private:
double h;
};
Point ::~Point()
{}
Circle::~Circle()
{}
double Circle::getzhouchang()
{
return (2*PI*r);
}
double Circle::getmianji()
{
return (PI*r*r);
}
Cylinder::~Cylinder()
{}
double Cylinder::getbiaomianji()
{
cout<<"表面积为";
return (getmianji()*2+getzhouchang()*h);
}
double Cylinder::gertiji()
{
cout<<"体积为";
return (getmianji()*h);
}
ostream &operator<<(ostream &output,Cylinder c1)
{
output<<"该点为:"<<"("<<c1.geta()<<","<<c1.b<<")"<<endl;
output<<"基于该点圆柱体底面半径为"<<c1.r<<" "<<"高为"<<c1.h<<endl;
output<<c1.gertiji()<<endl;
output<<c1.getbiaomianji()<<endl;
return output;
}
int main()
{
Cylinder c1(1,2,3,5);
cout<<c1;
system("PAUSE");
return 0;
}