14_python实例—计算图形面积及周长

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()

 

posted @ 2022-08-05 09:14  tuyin  阅读(854)  评论(0)    收藏  举报