下面的Shape类是一个表示形状的抽象类,area()为求图形面积的函数,total()则是一个通用的用以求不同形状的图形面积总和的函数 要求: (1)从Shape类派生出圆类Circle,正方形类Square,圆类新增数据成员半径radius,正方形类新增数据成员边长a,圆类和正方形类都有构造函数,修改,显示数据成员值的函数以及求面积函数 (2)写出main函数,计算半径为5.5的圆和边长为9.9的正方形的面积和(要求必须通过调用total函数计算)
时间: 2024-01-22 15:20:57 浏览: 66
编写一个抽象类Shape
4星 · 用户满意度95%
```python
import math
# 定义抽象类Shape
class Shape:
def area(self):
pass # 抽象方法,由子类实现
# 圆类
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
def display(self):
print("圆的半径为:", self.radius)
def modify(self, radius):
self.radius = radius
# 正方形类
class Square(Shape):
def __init__(self, a):
self.a = a
def area(self):
return self.a ** 2
def display(self):
print("正方形的边长为:", self.a)
def modify(self, a):
self.a = a
# 计算总面积
def total(shapes):
sum_area = 0
for shape in shapes:
sum_area += shape.area()
return sum_area
# 主函数
def main():
circle = Circle(5.5)
square = Square(9.9)
shapes = [circle, square]
total_area = total(shapes)
print("圆和正方形的总面积为:", total_area)
if __name__ == '__main__':
main()
```
输出结果:
```
圆和正方形的总面积为: 129.47350858679314
```
阅读全文