【开发该软件的操作系统】: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)
结果:
原文连接:
Python设计一个名为Triangle的类来扩展GeometricObject类