0
点赞
收藏
分享

微信扫一扫

Python设计一个名为Triangle的类来扩展GeometricObject类,该类包含:三个名字为side1,side2,side3的浮点数据域表示三角形的三个边一个构造方法构造默认一个

以沫的窝 2022-04-13 阅读 97
python

【开发该软件的操作系统】:windows10

【软件开发环境/开发工具】:PyCharm

【编程语言】:Python

【开发目的】:这是老师布置的作业啦~ 供初学者参考学习

【开发者】:江西农业大学2020级大二学生


设计一个名为Triangle的类来扩展GeometricObject类,该类包含:

三个名字为side1,side2,side3的浮点数据域表示三角形的三个边

一个构造方法构造默认一个三角形,执行三边分别为1.0

三个数据域的访问器方法

一个获得面积的方法

一个获得周长的方法

一个对三角形的字符串描述


我的:

import math


class Triangle:
    def __init__(self, x0=3.0, y0=4.0, z0=5.0):
        self.side1 = x0
        self.side2 = y0
        self.side3 = z0

    def getSide1(self):
        return self.side1

    def getSide2(self):
        return self.side2

    def getSide3(self):
        return self.side3

    def getArea(self):
        fistNum = (self.side1 + self.side2 + self.side3) / 2
        S = math.sqrt(fistNum * (fistNum - self.side1) * (fistNum - self.side2) * (fistNum - self.side3))
        return S

    def getPeri(self):
        return self.side1 + self.side2 + self.side3

    def getScribe(self):
        return "Triangle:side1 = " + str(self.side1) + " side2 = " + str(self.side2) + " side3 = " + str(self.side3)


tr1 = Triangle(3.0, 4.0, 5.0)
print(tr1.getArea())
print(tr1.getPeri())
print(tr1.getScribe())

结果:

 老师的:

import abc

class GeometricObject(metaclass=abc.ABCMeta):
    def __init__(self):
        self.area = 0.0
        self.perimeter = 0.0

    @abc.abstractmethod
    def calcArea(self):
        pass
    @abc.abstractmethod
    def calcPerimeter(self):
        pass

class Triangle(GeometricObject):
    def __init__(self,side1=1.0,side2=1.0,side3=1.0):
        GeometricObject.__init__(self)
        self.side1 = side1
        self.side2 = side2
        self.side3 = side3

    @property
    def Side1(self):
        return self.side1
    @Side1.setter
    def Side1(self,val):
        self.side1 = val

    @property
    def Side2(self):
        return self.side2

    @Side2.setter
    def Side2(self, val):
        self.side2 = val

    @property
    def Side3(self):
        return self.side3

    @Side3.setter
    def Side3(self, val):
        self.side3 = val

    def calcArea(self):
        p = self.calcPerimeter()
        self.area = (p * (p-self.side1) * (p-self.side2) * (p-self.side3)) ** 0.5
        return self.area

    def calcPerimeter(self):
        self.permiter = self.side1 + self.side2 + self.side3
        return self.permiter



t = Triangle(3,4,5)
t.calcPerimeter()
t.calcArea()
print("三角形的三条边长是:",t.Side1,t.Side2,t.Side3)
print("三角形的周长是:",t.permiter)
print("三角形的面积是:",t.area)

结果:

  共同进步,祝大家学有所成!

举报

相关推荐

0 条评论