Lab 12: Classes | CMSC 105 Elementary Programming - Fall 2024

Lab 12: Classes

Program 1: Triangle

triangle.py

''' 
Author name: <Your name here>
This program contains a Triangle class and test code to test a Triangle object.
'''

import math

class Triangle:
    # Construct a triangle class that has three sides as member variables
    # The sides have a default length of 1.0
    def __init__(self, s1 = 1.0, s2 = 1.0, s3 = 1.0):
        self.side1 = s1
        self.side2 = s2
        self.side3 = s3
    
    # This function will calculate the perimeter and return it.
    def getPerimeter(self):
        s = (self.side1 + self.side2 + self.side3) / 2
        return s
    
    # This function will calculate the area and return it.
    def getArea(self):
        s = self.getPerimeter()
        area = math.sqrt(s * (s - self.side1) * (s - self.side2) * (s - self.side3))
        return area
    

# This is my test code for the Triangle class
myTriangle1 = Triangle(2.3, 4.5, 3.0)

# Calculate the perimeter of triangle 1
perimeter1 = myTriangle1.getPerimeter()

# Calculate the area of triangle 1
area1 = myTriangle1.getArea()

print(f"Area1 = {area1}")
print(f"Perimeter1 = {perimeter1}")


myTriangle2 = Triangle(2.0, 4.0, 2.0)

print(f"Area2 = {myTriangle2.getArea()}")
print(f"Perimeter2 = {myTriangle2.getPerimeter()}")

myTriangle3 = Triangle()

print(f"Area2 = {myTriangle3.getArea()}")
print(f"Perimeter2 = {myTriangle3.getPerimeter()}")

Program 2: Practice

Practice.py

''' 
Author name: <Your name here>
This program contains a Practice class and test code to test a Practice object.
'''


class Practice:
    def __init__(self, l1=[], d1={}):
        # Constructor for the Practice class, default list and dict to empty.
        self.list1 = l1
        self.dict1 = d1
 
    def getList(self):
        return self.list1
 
    def setList(self, l1):
        self.list1 = l1
 
    def getDict(self):
        return self.dict1
 
    def setDict(self, d1):
        self.dict1 = d1

    def findMinList(self):
        if self.list1 is []:
            return None
        return min(self.list1)

    def findMaxList(self):
        if self.list1 is []:
            return None
        return max(self.list1)
 
    def findSumDict(self):
        return sum(self.dict1.values())
    


# Test a Practice object with initial values
l1 = [10, 20, 5, 30, 15]
d1 = {'a': 5, 'b': 10, 'c': 15}

my_practice = Practice(l1, d1)

print("Min value in list:", my_practice.findMinList()) 
print("Max value in list:", my_practice.findMaxList())
print("Sum of values in dict:", my_practice.findSumDict())