10-3 继承与派生之圆柱体

本文介绍了一个使用C++实现的圆柱体类的设计与编程实践,包括点、圆和圆柱体三个类的定义与继承关系,演示了如何通过类的方法计算圆柱体的表面积和体积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

* 程序的版权和版本声明部分

* Copyright (c) 2012, 烟台大学计算机学院学生

* All rights reserved

* 文件名称:

* 作 者: 张传新

* 完成日期: 2012 年 4 月 23 日

* 版 本 号: 1.0

* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述:

* 程序输出: ......

* 程序头部的注释结束

*/

#include<iostream>   
  
#include<Cmath>   
  
#include<iomanip>   
  
#define PI 3.141592653   
  
using namespace std;  
  
class Point //定义坐标点类   
{  
public:  
    Point(){x = 0;y = 0;}  
    Point(double x0,double y0) {x = x0; y = y0;}  
    ~Point(){}  
    double getx(){return x;}  
    double gety(){return y;}  
    friend ostream &operator << (ostream & output, Point & c);  
protected:  
    double x, y;   //点的横坐标和纵坐标   
};    
  
//输出点的坐标信息
ostream &operator << (ostream & out, Point & c)  
{  
    out << "点坐标为:(" << c.x << "," << c.y << ")";  
  
    return out;  
}  
  
class Circle: public Point  //定义圆类 
{  
public:  
    Circle(){r = 0;}  
    Circle(double x0, double y0, double r);     //构造函数   
    ~Circle(){};  
    double getr(){return r;}  
    friend ostream &operator << (ostream & out, Circle & c);  
protected:  
    double r;  
};  
  
Circle::Circle(double x0, double y0, double R):Point(x0, y0),r(R){}  
  
//输出圆的信息
ostream &operator << (ostream & out, Circle & c)  
{  
	out << "所建圆的圆心为:" << "(" << c.getx() << "," << c.gety() << "), " << "半径为:" << c.r ;  
  
    return out;  
}  
  
class Cylinder: public Circle  
{  
public:  
    Cylinder(){height = 0;}  
    Cylinder(double x1,double y1, double r1, double h);  
    ~Cylinder(){}  
    double geth(){return height;}  
    double area();  
    double volume();  
    friend ostream &operator << (ostream & out, Cylinder & c);  
private:  
    double height;  
};  
  
Cylinder::Cylinder(double x1,double y1, double r1, double h):Circle(x1, y1, r1), height(h){}  
  
//计算圆柱体的面积
double Cylinder::area()  
{  
    return (PI * getr() * getr() + 2 * PI * getr() * height);  
}  
  
//计算圆柱体的体积
double Cylinder::volume()  
{  
    return (PI * getr() * getr() * height);  
}  
  
//输出圆柱体的信息
ostream &operator << (ostream & out, Cylinder & c)  
{  
    out << "圆心为:" <<  "(" << c.getx() << "," << c.gety() << "), " << "半径为:" << c.r  << ", 高为:" << c.height << "的圆柱体";  
  
    return out;  
}  
  
int main()  
{  
	Point po(3,4);

	Circle ci(3,4,5);

    Cylinder cy(3, 4, 5, 6); 

	cout << po << endl;

	cout << ci <<endl;
  
    cout << cy << endl;  
  
    cout << setiosflags(ios::fixed) << setprecision(2);  
  
    cout << "表面积是:" << cy.area() << endl;  
  
    cout << "体积是:" << cy.volume() << endl;  
  
    system("pause");  
  
    return 0;  
}  


运行结果:

点坐标为:(3,4)
所建圆的圆心为:(3,4), 半径为:5
圆心为:(3,4), 半径为:5, 高为:6的圆柱体
表面积是:267.04
体积是:471.24
请按任意键继续. . .

疑问

感言:

不容易啊。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值