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

来源:互联网 发布:中核原子能公司 知乎 编辑:程序博客网 时间:2024/05/01 18:18

  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. }  
运行结果:
0 0
原创粉丝点击