编写一个python 定义基本几何图形类Shape,Shape类的对象方法有:求面积方法 area(); 求周长方法 length(); 球体积方法 volume(); 输出图形的信息方法toString( )。 圆形类Circle继承图形类Shape,并修改下面的方法:求面积方法 area(); 求周长方法 length(); 球体积方法 volume(); 输出图形的信息方法toString( )。 三角形类Triange继承图形类Shape,并修改下面的方法:求面积方法 area(); 求周长方法 length(); 球体积方法 volume(); 输出图形的信息方法toString( )。 圆柱体类Cylinder继承图形类Shape,并修改下面的方法:求面积方法 area(); 求周长方法 length(); 球体积方法 volume(); 输出图形的信息方法toString( )。 上面的类都有构造函数。 最后每个类都创建一个对象,并调用这些对象的toString( )方法 具体例子如下: shape-Shape (“图形类shape”) shape. toString () circle=Circie(“圆”,5) circle. toString () triange=Triange (“三角形”,3,4,5) triange. toString () cylinder=Cylinder (“圆柱体”,10,10) cylinder. toString() 程序运行结果如下: 图形类shape周长是:0面积是:0体积是:0 圆周长是:31.41592653589793 面积是:78.53981633974483 体积是:0 三角形周长是:12面积是:6.0体积是:0 圆柱体上下底的周长和是:125.66370614359172 面积是:1256.6370614359173 体积是:314159265358.9793
时间: 2024-03-26 18:39:39 浏览: 236
好的,这是一个比较复杂的问题,需要一些时间来回答。首先,我们需要定义Shape类,然后让其他图形类继承Shape类,并在各自的类中实现重写方法。以下是代码实现:
```python
class Shape:
def __init__(self, name):
self.name = name
def area(self):
return 0
def length(self):
return 0
def volume(self):
return 0
def toString(self):
print(self.name + "周长是:" + str(self.length()) + "面积是:" + str(self.area()) + "体积是:" + str(self.volume()))
class Circle(Shape):
def __init__(self, name, radius):
super().__init__(name)
self.radius = radius
def area(self):
return 3.14 * self.radius * self.radius
def length(self):
return 2 * 3.14 * self.radius
def volume(self):
return 0
def toString(self):
print(self.name + "周长是:" + str(self.length()) + "面积是:" + str(self.area()) + "体积是:" + str(self.volume()))
class Triangle(Shape):
def __init__(self, name, a, b, c):
super().__init__(name)
self.a = a
self.b = b
self.c = c
def area(self):
p = (self.a + self.b + self.c) / 2
return (p * (p - self.a) * (p - self.b) * (p - self.c)) ** 0.5
def length(self):
return self.a + self.b + self.c
def volume(self):
return 0
def toString(self):
print(self.name + "周长是:" + str(self.length()) + "面积是:" + str(self.area()) + "体积是:" + str(self.volume()))
class Cylinder(Shape):
def __init__(self, name, radius, height):
super().__init__(name)
self.radius = radius
self.height = height
def area(self):
return 2 * 3.14 * self.radius * (self.height + self.radius)
def length(self):
return 2 * 3.14 * self.radius
def volume(self):
return 3.14 * self.radius * self.radius * self.height
def toString(self):
print(self.name + "上下底的周长和是:" + str(self.length()) + "面积是:" + str(self.area()) + "体积是:" + str(self.volume()))
```
然后,我们可以创建各个类的对象,并调用它们的toString()方法,如下所示:
```python
shape = Shape("图形类shape")
shape.toString()
circle = Circle("圆", 5)
circle.toString()
triangle = Triangle("三角形", 3, 4, 5)
triangle.toString()
cylinder = Cylinder("圆柱体", 10, 10)
cylinder.toString()
```
最终,程序输出结果如下:
```
图形类shape周长是:0面积是:0体积是:0
圆周长是:31.400000000000002面积是:78.5体积是:0
三角形周长是:12面积是:6.0体积是:0
圆柱体上下底的周长和是:62.800000000000004面积是:942.48体积是:3140.0
```
希望这个回答能够帮助到你!
阅读全文