利用 Python 尝试采用面向对象的设计方法计算图形面积及周长

 

利用 Python 尝试采用面向对象的设计方法。
(1)设计一个基类 Shape:
包含两个成员函数:
def cal_area(): 计算并返回该图形的面积,保留两位小数;
def cal_perimeter(): 计算并返回该图形的周长,保留两位小数。
def display(): 三行字符串,分别显示名称、面积、周长,数值四舍五入保留两
位小数,如下:
名称是 rect
面积是 6
周长是 10
包含三个变量:
name:表示名称,字符串类型;
area:表示面积,数字;
perimeter:表示周长,数字。
(2)设计三个派生类: Rectangle、 Triangle、 Circle;派生类分别实现基类中的两个成
员函数。
Rectangle:构造函数参数(n, a, b), n 为名称,其他均为浮点数,两位小数, a、 b 分
别代表长和宽。
Triangle:构造函数参数(n, a, b, c), n 为名称,其他均为浮点数,两位小数,代表三
边的长度。
Circle:构造函数参数(n, a), n 为名称, a 为浮点数,两位小数,代表圆的半径,圆
周率取 3.14 进行计算。
 

#!/usr/bin/python
# -*- coding: UTF-8 -*-                                                                                                                                                                                                                                                                                                                                                                                                                             
#题目8:计算图形面积及周长
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()



 

 

你可能感兴趣的:(代写,python)