第十周项目1(3)

迷南。 2021-06-10 20:41 483阅读 0赞

问题及代码:

  1. /*copyright(c)2016.烟台大学计算机学院
  2. * All rights reserved,
  3. * 文件名称:text.Cpp
  4. * 作者:李一波
  5. * 完成日期:2016年5月9日
  6. * 版本号:vc++6.0
  7. *
  8. * 问题描述: 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。
  9. * 输入描述:
  10. * 程序输出:
  11. */
  12. #include<iostream>
  13. using namespace std;
  14. #define PI 3.14
  15. class Point
  16. {
  17. public:
  18. Point(int x,int y);
  19. void show();
  20. private:
  21. int x; //横坐标
  22. int y; //纵坐标
  23. };
  24. class Circle:public Point
  25. {
  26. public:
  27. Circle(int r,int x,int y);
  28. double area();
  29. double zhouchang();
  30. private:
  31. int r; //半径
  32. };
  33. class Cylinder:public Circle
  34. {
  35. public:
  36. Cylinder(int x,int y,int r,int gao);
  37. void area();
  38. void volume();
  39. private:
  40. int h;
  41. };
  42. //下面定义类的成员函数
  43. Point::Point(int x,int y)
  44. {
  45. this->x=x;
  46. this->y=y;
  47. }
  48. void Point::show()
  49. {
  50. cout<<x<<' '<<y<<endl;
  51. }
  52. Circle::Circle(int banjing,int x,int y):r(banjing),Point(x,y){}
  53. double Circle::area()
  54. {
  55. return r*r*PI;
  56. }
  57. double Circle::zhouchang()
  58. {
  59. return 2*r*PI;
  60. }
  61. void Cylinder::area()
  62. {
  63. double s;
  64. s=Circle::area()*2+Circle::zhouchang()*h;
  65. cout<<s<<endl;
  66. }
  67. void Cylinder::volume()
  68. {
  69. cout<<Circle::area()*h<<endl;
  70. }
  71. Cylinder::Cylinder(int x,int y,int r,int gao):Circle(x,y,r),h(gao){}
  72. //下面是测试函数
  73. int main()
  74. {
  75. Point p(10,20);
  76. p.show();
  77. Circle c(2,1,2);
  78. cout<<c.area()<<endl;
  79. Cylinder cy(2,1,2,1);
  80. cy.area();
  81. cy.volume();
  82. return 0;
  83. }

运行结果:

Center

发表评论

表情:
评论列表 (有 0 条评论,483人围观)

还没有评论,来说两句吧...

相关阅读