Python The Triangle class) Design a class named Triangle that extends the Geomet
ID: 3689169 • Letter: P
Question
Python The Triangle class) Design a class named Triangle that extends the GeometricObject class. The Triangle class contains: Three float data fields named side1, side2, and side3 to denote the three sides of the triangle. A constructor that creates a triangle with the specified side1, side2, and side3 with default values 1.0. The accessor methods for all three data fields. A method named getArea() that returns the area of this triangle. A method named getPerimeter() that returns the perimeter of this triangle. A method named _ _str_ _() that returns a string description for the triangle. For the formula to compute the area of a triangle, see Exercise 2.14. The _ _str_ _() method is implemented as follows: return "Triangle: side1 = " + str(side1) + " side2 = " + str(side2) + " side3 = " + str(side3) Draw the UML diagrams for the classes Triangle and GeometricObject. Implement the Triangle class. Write a test program that prompts the user to enter the three sides of the triangle, a color, and 1 or 0 to indicate whether the tri- angle is filled. The program should create a Triangle object with these sides and set the color and filled properties using the input. The program should display the triangle’s area, perimeter, color, and True or False to indicate whether the trian- gle is filled or not.
Explanation / Answer
import math
class GeometricObject :
def __init__(self):
self.color= 'black'
self.filled = 0 #0 -for false, 1 - for true
def getColor(self):
return self.color
def getFilled(self):
return self.filled
def setColor(self,color):
self.color = color
def setFilled(self, filled):
self.filled = filled
class Triangle(GeometricObject):
def __init__(self):
super().__init__()
self.side1 = 1.0
self.side2 = 1.0
self.side3 = 1.0
def setSides(self,side1,side2,side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
def getArea(self):
s = (self.side1+self.side2+self.side3)/2
area = math.sqrt( s* (s-self.side1) * (s-self.side2) * (s-self.side3))
return area
def getPerimeter(self):
return (self.side1+self.side2+self.side3)
def __str__(self):
output = ("Triangle: side1 = " + str(self.side1) + " side2 = " + str(self.side2)
+ " side3 = " + str(self.side3)+" color = "+self.color)
output = output+" Filled: "
if(self.filled == 0):
output = output+ "No"
else:
output = output+"Yes"
return output
tria1 = Triangle()
print(tria1, " Area: ",tria1.getArea(), " Perimeter: ",tria1.getPerimeter())
tria2 = Triangle()
tria2.setSides(3,4,5)
print(tria2, " Area: ",tria2.getArea(), " Perimeter: ",tria2.getPerimeter())
---output-------------------
Triangle: side1 = 1.0 side2 = 1.0 side3 = 1.0 color = black Filled: No Area: 0.4330127018922193 Perimeter: 3.0
Triangle: side1 = 3 side2 = 4 side3 = 5 color = black Filled: No Area: 6.0 Perimeter: 12
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.