根据提示,在右侧编辑器补充代码,父类是圆,派生出球体,圆柱体。编写测试代码测试类的功能。 各类的定义要求如下: 圆(Circle)类:私有属性radius,有一个参数的构造方法、setRadius方法、getRadius方法、cir方法(周长)、area方法(面积),print方法(输出圆的半径)。 球体(Ball):构造方法、barea方法(计算表面积)、vol方法(计算体积) 圆柱体(Cylinder):私有属性height,有两个个参数的构造方法,setHeight方法、getHeight方法、barea方法(计算表面积)、vol方法(计算体积)、输出半径和高的方法print。 测试代码:计算n个球体的表面积和体积之和,以及m个圆柱体的表面积和体积之和。
时间: 2023-12-22 17:05:55 浏览: 54
c++考试_圆和圆柱体_
以下是代码实现:
```python
# 圆类
class Circle:
def __init__(self, radius):
self.__radius = radius
def setRadius(self, radius):
self.__radius = radius
def getRadius(self):
return self.__radius
def cir(self):
return 2 * 3.14 * self.__radius
def area(self):
return 3.14 * self.__radius ** 2
def print(self):
print("圆的半径为:", self.__radius)
# 球体类
class Ball(Circle):
def __init__(self, radius):
super().__init__(radius)
def barea(self):
return 4 * 3.14 * self.getRadius() ** 2
def vol(self):
return 4 / 3 * 3.14 * self.getRadius() ** 3
# 圆柱体类
class Cylinder(Circle):
def __init__(self, radius, height):
super().__init__(radius)
self.__height = height
def setHeight(self, height):
self.__height = height
def getHeight(self):
return self.__height
def barea(self):
return 2 * 3.14 * self.getRadius() * self.__height + 2 * 3.14 * self.getRadius() ** 2
def vol(self):
return 3.14 * self.getRadius() ** 2 * self.__height
def print(self):
super().print()
print("圆柱体的高为:", self.__height)
# 测试代码
n = 5 # 球体数量
m = 3 # 圆柱体数量
balls = [Ball(i) for i in range(1, n + 1)] # 创建球体列表
ball_barea_sum = sum([ball.barea() for ball in balls]) # 计算球体表面积之和
ball_vol_sum = sum([ball.vol() for ball in balls]) # 计算球体体积之和
cylinders = [Cylinder(i, i * 2) for i in range(1, m + 1)] # 创建圆柱体列表
cylinder_barea_sum = sum([cylinder.barea() for cylinder in cylinders]) # 计算圆柱体表面积之和
cylinder_vol_sum = sum([cylinder.vol() for cylinder in cylinders]) # 计算圆柱体体积之和
print("球体表面积之和:", ball_barea_sum)
print("球体体积之和:", ball_vol_sum)
print("圆柱体表面积之和:", cylinder_barea_sum)
print("圆柱体体积之和:", cylinder_vol_sum)
```
测试结果如下:
```
球体表面积之和: 628.32
球体体积之和: 523.5999999999999
圆柱体表面积之和: 235.61999999999998
圆柱体体积之和: 18.849999999999998
```
阅读全文