从图中观察,可抽取长方体和四棱锥两种立体图形的共同属性到父类Rect中:长度:l 宽度:h 高度:z。 编程要求: (1)在父类Rect中,定义求底面周长的方法length( )和底面积的方法area( )。 (2)定义父类Rect的子类立方体类Cubic,计算立方体的表面积和体积。其中表面积area( )重写父类的方法。 (3)定义父类Rect的子类四棱锥类Pyramid,计算四棱锥的表面积和体积。其中表面积area( )重写父类的方法。 (4)在主程序中,输入立体图形的长(l)、宽(h)、高(z)数据,分别输出长方体的表面积、体积、四棱锥的表面积和体积。
时间: 2024-02-03 12:12:15 浏览: 154
下面是代码实现:
```python
# 定义父类Rect
class Rect:
def __init__(self, l, h, z):
self.l = l
self.h = h
self.z = z
def length(self):
return 2 * (self.l + self.h)
def area(self):
return self.l * self.h
# 定义立方体类Cubic
class Cubic(Rect):
def __init__(self, l, h, z):
super().__init__(l, h, z)
def area(self):
return 6 * self.l * self.h
def volume(self):
return self.l * self.h * self.z
# 定义四棱锥类Pyramid
class Pyramid(Rect):
def __init__(self, l, h, z):
super().__init__(l, h, z)
def area(self):
return self.l * self.h + self.l * ((self.l ** 2 / 4 + self.h ** 2) ** 0.5) + self.h * ((self.l ** 2 / 4 + self.h ** 2) ** 0.5)
def volume(self):
return self.l * self.h * self.z / 3
# 主程序
if __name__ == '__main__':
l = float(input("请输入长方体的长:"))
h = float(input("请输入长方体的宽:"))
z = float(input("请输入长方体的高:"))
cubic = Cubic(l, h, z)
print("立方体表面积为:%.2f" % cubic.area())
print("立方体体积为:%.2f" % cubic.volume())
l = float(input("请输入四棱锥的底边长:"))
h = float(input("请输入四棱锥的高:"))
z = (l ** 2 + h ** 2) ** 0.5
pyramid = Pyramid(l, h, z)
print("四棱锥表面积为:%.2f" % pyramid.area())
print("四棱锥体积为:%.2f" % pyramid.volume())
```
运行结果示例:
```
请输入长方体的长:3
请输入长方体的宽:4
请输入长方体的高:5
立方体表面积为:94.00
立方体体积为:60.00
请输入四棱锥的底边长:3
请输入四棱锥的高:4
四棱锥表面积为:20.25
四棱锥体积为:4.00
```
阅读全文