第10周实验报告3

实验目的:求圆柱体的表面积和体积并输出

* 程序头部注释开始
* 程序的版权和版本声明部分
* 烟台大学计算机学院学生
* 文件名称:         圆柱体类和派生

* 作    者:          胡斌                
* 完成日期:  2012 年 4月24日
* 版本号:     v1.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,6);  
  
    Circle ci(3,6,2);  
  
    Cylinder cy(3, 6, 2, 4);   
  
    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,6)
所建圆的圆心为:(3,6), 半径为:2
圆心为:(3,6), 半径为:2, 高为:4的圆柱体
表面积是:62.83
体积是:50.27
请按任意键继续. . .

 

比较难,费了好大劲才做出来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值