2, 图形的面积与周长计算程序:长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。
时间: 2024-05-02 14:16:54 浏览: 191
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
以下是使用抽象类的设计程序的示例,可以计算长方形和圆形的面积和周长:
```python
from abc import ABC, abstractmethod
import math
class Shape(ABC):
@abstractmethod
def perimeter(self):
pass
@abstractmethod
def area(self):
pass
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def perimeter(self):
return 2 * (self.length + self.width)
def area(self):
return self.length * self.width
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def perimeter(self):
return 2 * math.pi * self.radius
def area(self):
return math.pi * self.radius ** 2
```
在这个程序中,我们定义了一个抽象类 Shape,它有两个抽象方法 perimeter() 和 area(),表示周长和面积。然后我们定义了两个具体的子类 Rectangle 和 Circle,分别实现了它们自己的周长和面积计算方法。
使用这个程序,我们可以创建一个 Rectangle 对象或 Circle 对象,并调用它们的 perimeter() 和 area() 方法来计算它们的周长和面积。例如:
```python
rectangle = Rectangle(10, 5)
print(rectangle.perimeter()) # 30
print(rectangle.area()) # 50
circle = Circle(3)
print(circle.perimeter()) # 18.84955592153876
print(circle.area()) # 28.274333882308138
```
在这个示例中,我们创建了一个长方形对象和一个圆形对象,并分别计算了它们的周长和面积。由于我们使用了抽象类和多态的概念,我们可以轻松地扩展这个程序,添加更多的图形类型,而不需要修改现有的代码。
阅读全文