pyth:编写几何图形面积计算程序,要求使用面向对象实现一个图形类,图形类中包含图形名称和 面积两个实例变量,定义一个计算图形面积的 方法,该方法能够根据图形的名称自动提示输入计算面积所需的变量,并完成面积的计算,将计算结果存储在类的实例变量中。
时间: 2024-03-25 10:38:14 浏览: 209
计算图形面积的程序
以下是一个用面向对象实现的几何图形面积计算程序:
```python
class Shape:
def __init__(self, name):
self.name = name
self.area = 0
def calculate_area(self):
pass
class Rectangle(Shape):
def __init__(self):
super().__init__("矩形")
def calculate_area(self):
self.length = float(input("请输入矩形的长度:"))
self.width = float(input("请输入矩形的宽度:"))
self.area = self.length * self.width
class Square(Shape):
def __init__(self):
super().__init__("正方形")
def calculate_area(self):
self.side = float(input("请输入正方形的边长:"))
self.area = self.side ** 2
class Triangle(Shape):
def __init__(self):
super().__init__("三角形")
def calculate_area(self):
self.base = float(input("请输入三角形的底边长度:"))
self.height = float(input("请输入三角形的高:"))
self.area = self.base * self.height / 2
class Circle(Shape):
def __init__(self):
super().__init__("圆形")
def calculate_area(self):
self.radius = float(input("请输入圆形的半径:"))
self.area = 3.14 * self.radius ** 2
class Trapezoid(Shape):
def __init__(self):
super().__init__("梯形")
def calculate_area(self):
self.top = float(input("请输入梯形上底长度:"))
self.bottom = float(input("请输入梯形下底长度:"))
self.height = float(input("请输入梯形高度:"))
self.area = (self.top + self.bottom) * self.height / 2
# 主程序
while True:
print("请选择要计算的图形类型:")
print("1. 矩形")
print("2. 正方形")
print("3. 三角形")
print("4. 圆形")
print("5. 梯形")
print("0. 退出程序")
choice = int(input("请输入选项:"))
if choice == 1:
shape = Rectangle()
elif choice == 2:
shape = Square()
elif choice == 3:
shape = Triangle()
elif choice == 4:
shape = Circle()
elif choice == 5:
shape = Trapezoid()
elif choice == 0:
break
else:
print("无效选项,请重新输入!")
continue
shape.calculate_area()
print("{}的面积为:{}".format(shape.name, shape.area))
```
在这个程序中,我们定义了一个基类`Shape`,它包含了图形的名称和面积两个实例变量以及一个计算面积的抽象方法`calculate_area`。然后我们针对不同类型的图形,分别定义了子类`Rectangle`、`Square`、`Triangle`、`Circle`和`Trapezoid`,它们继承了`Shape`类,并实现了`calculate_area`方法,以完成对应图形面积的计算。在主程序中,我们根据用户输入的选项,创建相应的图形对象,调用其`calculate_area`方法计算面积,并输出结果。
阅读全文