作者:小song喪_774 | 来源:互联网 | 2023-06-02 09:02
importmathclassShape:def__init__(self,name,area,perimeter):self.namenameself.areaareaself.
import math
class Shape:
def __init__(self, name, area, perimeter):
self.name = name
self.area = area
self.perimeter = perimeter
def cal_area(self):
pass
def cal_perimeter(self):
pass
def display(self):
print('名称:', self.name)
print('面积:', self.area)
print('周长:', self.perimeter)
class Rectangle(Shape):
def __init__(self, n, a, b):
self.n = n
self.a = a
self.b = b
def cal_area(self):
area = round(self.a * self.b, 2)
def cal_perimeter(self, ):
perimeter = round(2 * (self.a + self.b), 2)
class Triangle(Shape):
def __init__(self, n, a, b, c):
self.n = n
self.a = a
self.b = b
self.c = c
def cal_area(self):
p = (self.a + self.b + self.c) / 2
area = round(math.sqrt(p * (p - self.a) * (p - self.b) * (p - self.c)), 2)
return area
def cal_perimeter(self):
perimeter = self.a + self.b + self.c
return perimeter
class Circle(Shape):
def __init__(self, n, a):
self.n = n
self.a = a
def cal_perimeter(self):
perimeter = round(2 * 3.14 * self.a, 2)
return perimeter
def cal_area(self):
area = round(3.14 * self.a ** 2, 2)
return area
if __name__ == '__main__':
cir = Circle('cir', 3)
result = Shape(cir.n, cir.cal_area(), cir.cal_perimeter())
result.display()
ret = Rectangle('ret', 4, 5)
result = Shape(ret.n, ret.cal_area(), ret.cal_perimeter())
result.display()
tri = Triangle('tri', 2, 4, 5)
result = Shape(tri.n, tri.cal_area(), tri.cal_perimeter())
result.display()