• 利用 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

    可直接联系客服QQ交代需求:953586085

    欢迎光临程序代写小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail

    欢迎点击链接加入群聊【程序代写-接单群】共同致富:https://jq.qq.com/?_wv=1027&k=5WxihsL 

    群号:733065427

    
    
    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()
    
    
    
    
  • 相关阅读:
    大小端表示法
    构建二叉树并求其深度
    输入一行字符反向输出
    C++读取一行字符串输入
    关于递归调用的深度
    2016-9-22题目:extern char* 与char[]
    Ubuntu安装搜狗输入法
    判断字符串相等
    [Warning] deprecated conversion from string constant to 'char*' 原因
    ArcGIS API for JavaScript 4.2学习笔记[31] (补充学习)Task类
  • 原文地址:https://www.cnblogs.com/chenbocheng/p/10839348.html
Copyright © 2020-2023  润新知