问题及代码:
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:李一波 * 完成日期:2016年5月9日 * 版本号:vc++6.0 * * 问题描述: 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。 * 输入描述: * 程序输出: */ #include<iostream> using namespace std; #define PI 3.14 class Point { public: Point(int x,int y); void show(); private: int x; //横坐标 int y; //纵坐标 }; class Circle:public Point { public: Circle(int r,int x,int y); double area(); double zhouchang(); private: int r; //半径 }; class Cylinder:public Circle { public: Cylinder(int x,int y,int r,int gao); void area(); void volume(); private: int h; }; //下面定义类的成员函数 Point::Point(int x,int y) { this->x=x; this->y=y; } void Point::show() { cout<<x<<' '<<y<<endl; } Circle::Circle(int banjing,int x,int y):r(banjing),Point(x,y){} double Circle::area() { return r*r*PI; } double Circle::zhouchang() { return 2*r*PI; } void Cylinder::area() { double s; s=Circle::area()*2+Circle::zhouchang()*h; cout<<s<<endl; } void Cylinder::volume() { cout<<Circle::area()*h<<endl; } Cylinder::Cylinder(int x,int y,int r,int gao):Circle(x,y,r),h(gao){} //下面是测试函数 int main() { Point p(10,20); p.show(); Circle c(2,1,2); cout<<c.area()<<endl; Cylinder cy(2,1,2,1); cy.area(); cy.volume(); return 0; }
运行结果:
时间: 2024-11-05 21:38:29