第十周实验报告三

  1. * 程序的版权和版本声明部分  
  2. * Copyright (c) 2011, 烟台大学计算机学院学生  
  3. * All rights reserved.  
  4. * 文件名称:  
  5. * 作者:李君凯  
  6. * 完成日期: 2012年 4月 23日
  7. * 版本号:  
  8. *对任务及求解方法的描述部分 
    #include <iostream>
    
    #include<Cmath>   
      
    #include<iomanip>   
      
    using namespace std;
    
    const double PI = 3.141592653;
    
    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 & input, Point & c);  
    protected:  
        double x, y;   //点的横坐标和纵坐标   
    };
    ostream &operator << (ostream & input, Point & c)
    {
    	input << "点:(" << c.x << "," << c.y << ")";  
      
        return input;  
    }
    class Circle: public Point   //以点类为基类的派生类
    {  
    public:  
        Circle(){radius = 0;}  
        Circle(double x0, double y0, double r):Point(x0, y0),radius(r){ }      //构造函数   
        ~Circle(){} 
        double getr(){return radius;}  
    	double area1();
        friend ostream &operator << (ostream & out, Circle & c);  
    protected:  
        double radius;  
    };  
    double Circle::area1() //圆形面积
    {
    	double c_area = PI * getr() * getr();
    
    	return c_area;
    }
    ostream &operator << (ostream & out, Circle & c)  
    {  
        out << "(" << c.getx() << "," << c.gety() << ")" << "为圆心" << c.radius << "为半径的圆";  
      
        return out;  
    }  
      
    class Cylinder: public Circle  //以圆类为基类的派生类
    {  
    public:  
        Cylinder(){height = 0;}  
        Cylinder(double x1,double y1, double r1, double h):Circle(x1, y1, r1), height(h){ }  
        ~Cylinder(){}  
        double geth(){return height;}  
        double area2();  
        double volume();  
        friend ostream &operator << (ostream & out, Cylinder & c);  
    private:  
        double height;  
    };  
       
    double Cylinder::area2()  
    {  
      
        //double c_area = PI * getr() * getr();  
      
        double c_cir = 2 * PI * getr() * height;   //圆柱侧面积
      
        return (c_cir + 2 * area1());  
    }  
      
    double Cylinder::volume()  
    {  
        return (PI * getr() * getr() * height);  
    }  
      
    ostream &operator << (ostream & out, Cylinder & c)  
    {  
        out << "(" << c.getx() << "," << c.gety() << ")" << "为圆心" << c.radius << "为半径" << c.height << "为高的圆柱体";  
      
        return out;  
    }  
      
    int main()  
    {  
        Cylinder cy(3, 2, 2, 5);  
      
        cout << cy << endl;  
      
        cout << setiosflags(ios::fixed) << setprecision(2);  
      
        cout << "表面积是:" << cy.area2() << endl;  
      
        cout << "体积是:" << cy.volume() << endl;  
      
        system("pause");  
      
        return 0;  
    }  
    
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值