点-圆-圆柱类族的设计 2


  1. /* 
  2.  *Copyright(c)2016,烟台大学计算机与控制工程学院 
  3.  *All rights reserved 
  4.  *文件名称:123.cpp 
  5.  *作    者:隋宗涛
  6.  *完成日期:2016年5月10日 
  7.  *版 本 号:v1.0 
  8.  * 
  9.  *问题描述:以点为基类,派生出一个圆类,增加数据成员r,和求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试。 
  10.  *输入描述:无。 
  11.  *程序输出:圆的圆心坐标,半径和面积。 
  12. */  
  13. #include <iostream>  
  14. using namespace std;  
  15. class Point  
  16. {  
  17. public:  
  18.     Point(double x=0,double y=0);                    //构造函数Point  
  19.     void setPoint(double,double);                  设置x和y的坐标值  
  20.     double getX( )  
  21.     {  
  22.         return x;  
  23.     }              //x坐标  
  24.     double getY( )  
  25.     {  
  26.         return y;  
  27.     }              //y坐标  
  28.     void show();  
  29. protected:                                       //受保护的成员  
  30.     double x,y;  
  31. };  
  32. void Point::setPoint(double m,double n)  //设置x和y的坐标值  
  33. {  
  34.     x=m;  
  35.     y=n;  
  36. }  
  37. Point::Point(double m,double n)  //Point的构造函数  
  38. {  
  39.     x=m;  
  40.     y=n;  
  41. }  
  42. void Point::show()  
  43. {  
  44.     cout<<"("<<x<<","<<y<<")"<<endl;  
  45. }  
  46. class Circle:public Point   //Circle是Point类的公用派生类  
  47. {  
  48. public:  
  49.     Circle(double x=0,double y=0,double r=0);  //构造函数Circle  
  50.     void setR(double);                  //设置半径的值  
  51.     double getR( );               //读取半径的值  
  52.     double area ( );                   //计算圆的面积  
  53.     void show();  
  54. protected:  
  55.     double radius;  
  56. };  
  57. Circle::Circle(double m,double n,double r):Point(m,n),radius(r) { } //定义构造函数  
  58.   
  59.   
  60. void Circle::setR(double r)  //设置半径的值  
  61. {  
  62.     radius=r;  
  63. }  
  64. double Circle::getR( )  //读取半径的值  
  65. {  
  66.     return radius;  
  67. }  
  68. double Circle::area( )  //计算圆的面积  
  69. {  
  70.     return radius*radius*3.14159;  
  71. }  
  72. void Circle::show()  //输出点和圆的面积  
  73. {  
  74.     cout<<"Point=("<<x<<", "<<y<<"), r="<<radius<<", area="<<area( )<<endl;  
  75. }  
  76.   
  77.   
  78. int main()  
  79. {  
  80.     Circle c(1,2,3);  
  81.     cout<<"圆的圆心,半径,面积为:"<<endl;  
  82.     c.show();  
  83.     c.setPoint(2,1);  
  84.     c.setR(5);  
  85.     cout<<"改变后的圆的圆心,半径,面积为:"<<endl;  
  86.     c.show();  
  87.     return 0;  
  88. }  
  89.  /*
     *Copyright(c)2016,烟台大学计算机与控制工程学院
     *All rights reserved
     *文件名称:123.cpp
     *作    者:王蕊
     *完成日期:2016年5月6日
     *版 本 号:v1.0
     *
     *问题描述:以点为基类,派生出一个圆类,增加数据成员r,和求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试。
     *输入描述:无。
     *程序输出:圆的圆心坐标,半径和面积。
    */
    #include <iostream>
    using namespace std;
    class Point
    {
    public:
        Point(double x=0,double y=0);                    //构造函数Point
        void setPoint(double,double);                  设置x和y的坐标值
        double getX( )
        {
            return x;
        }              //x坐标
        double getY( )
        {
            return y;
        }              //y坐标
        void show();
    protected:                                       //受保护的成员
        double x,y;
    };
    void Point::setPoint(double m,double n)  //设置x和y的坐标值
    {
        x=m;
        y=n;
    }
    Point::Point(double m,double n)  //Point的构造函数
    {
        x=m;
        y=n;
    }
    void Point::show()
    {
        cout<<"("<<x<<","<<y<<")"<<endl;
    }
    class Circle:public Point   //Circle是Point类的公用派生类
    {
    public:
        Circle(double x=0,double y=0,double r=0);  //构造函数Circle
        void setR(double);                  //设置半径的值
        double getR( );               //读取半径的值
        double area ( );                   //计算圆的面积
        void show();
    protected:
        double radius;
    };
    Circle::Circle(double m,double n,double r):Point(m,n),radius(r) { } //定义构造函数
    
    
    void Circle::setR(double r)  //设置半径的值
    {
        radius=r;
    }
    double Circle::getR( )  //读取半径的值
    {
        return radius;
    }
    double Circle::area( )  //计算圆的面积
    {
        return radius*radius*3.14159;
    }
    void Circle::show()  //输出点和圆的面积
    {
        cout<<"Point=("<<x<<", "<<y<<"), r="<<radius<<", area="<<area( )<<endl;
    }
    
    
    int main()
    {
        Circle c(1,2,3);
        cout<<"圆的圆心,半径,面积为:"<<endl;
        c.show();
        c.setPoint(2,1);
        c.setR(5);
        cout<<"改变后的圆的圆心,半径,面积为:"<<endl;
        c.show();
        return 0;
    }
运行结果:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值