coding/Project

[Python] 활용편 - 04 - Class 함수(1)(도형 넓이 계산기 만들기)

양한마리 2022. 9. 13. 20:52
728x90

 


:: 파이썬 과제 - class 활용하기 (1) ::

1. 도형 넓이 계산기 만들기

원, 삼각형, 사각형


1. 도형 넓이 계산기

요구조건

  • 인스턴스를 선언할 때 가로, 세로 길이를 받을 수 있는 클래스를 선언해 주세요
  • 인스턴스에서 사각형, 삼각형, 원의 넓이를 구하는 메소드를 생성해주세요
    • 원의 넓이를 계산할 때는 세로 길이는 무시하고, 가로 길이를 원의 지름이라 가정하고 계산해 주세요

풀이)

# 클래스 함수 사용
class Calculator() :
    pie = 3.1415

    def __init__(self) : # __init__ 함수로 선택 목록을 인스턴스 실행시 보여준다.
        print("\n"
              ":: 도형 목록 ::\n"
              "===========================\n"
              "1.원\n"
              "2.삼각형\n"
              "3.사각형\n"
              "0.Quit\n"
              "===========================\n")

    def Circle(self, rad) : # 원의 넓이를 구하는 함수
        self.area = (rad/2) ** 2 * self.pie # 공식(원)
        return self.area

    def Triangle(self, height, length) : # 삼각형의 넓이를 구하는 함수
        self.area = (height * length) / 2 # 공식(삼각형)
        return self.area

    def Square(self, height, width) : # 사각형의 넓이를 구하는 함수
        self.area = width * height # 공식(사각형)
        return  self.area

def On_Off() : # 반복문에서 종료, 재시작을 선택하는 함수
    result = int(input("\n"
                       "Off(1) - 종료 / On(2) - 재시작 : "))
    if result == 2:
        pass
    elif result == 1:
        print("종료합니다.")
        quit() # 종료하는 함수


while True :
    area_cal = Calculator() # 인스턴스 생성

    N = int(input("목록에서 넓이를 구할 도형 번호를 입력해주세요 : "))

    if N == 1 :
        rad = int((input("원의 지름을 입력하세요 : ")))
        print(f"지름 길이가 {rad} 인 원의 넓이는 약 {area_cal.Circle(rad):.2f} 입니다.") # area_cal.Circle(rad) 원의 넓이를 구하는 함수 실행

        On_Off() # 반복문에서 종료, 재시작을 선택하는 함수

    elif N == 2 :
        height = int(input("삼각형의 높이를 입력하세요 : "))
        length = int(input("삼각형의 밑변을 입력하세요 : "))
        print(f"높이가 {height} 이고, 밑변이 {length} 인 삼각형의 넓이는 {area_cal.Triangle(height, length)} 입니다.") # area_cal.Triangle(height, length) 삼각형의 넓이를 구하는 함수 실행

        On_Off() # 반복문에서 종료, 재시작을 선택하는 함수

    elif N == 3 :
        height = int(input("사각형의 세로 길이를 입력하세요 : "))
        width = int(input("사각형의 가로 길이를 입력하세요 : "))
        print(f"세로 길이가 {height} 이고, 가로 길이가 {width} 인 사각형의 넓이는 {area_cal.Square(height, width)} 입니다.") # area_cal.Square(height, width) 사각형의 넓이를 구하는 함수 실행

        On_Off() # 반복문에서 종료, 재시작을 선택하는 함수

    elif N == 0 :
        print("종료합니다.")
        break

    else:
        print("목록에 없는 값을 입력하여 재시작 합니다.")

 

 


실행 예시)

:: 도형 목록 ::
===========================
1.원
2.삼각형
3.사각형
0.Quit
===========================
# __init__ 으로 보여지는 목록 ↑↑

목록에서 넓이를 구할 도형 번호를 입력해주세요 : 3
사각형의 세로 길이를 입력하세요 : 5
사각형의 가로 길이를 입력하세요 : 20
세로 길이가 5 이고, 가로 길이가 20 인 사각형의 넓이는 100 입니다.
# while 반복문에 class 함수가 실행되는 내용 :: 넓이를 구한 값 ↑↑

Off(1) - 종료 / On(2) - 재시작 : 2
# On_Off() 함수로 실행되는 내용 ↑↑

:: 도형 목록 ::
===========================
1.원
2.삼각형
3.사각형
0.Quit
===========================
# __init__ 으로 보여지는 목록 ↑↑

목록에서 넓이를 구할 도형 번호를 입력해주세요 : 1
원의 지름을 입력하세요 : 19
지름 길이가 19 인 원의 넓이는 약 283.52 입니다.
# while 반복문에 class 함수가 실행되는 내용 :: 넓이를 구한 값 ↑↑

Off(1) - 종료 / On(2) - 재시작 : 1
종료합니다.
# On_Off() 함수로 실행되는 내용 ↑↑

종료 코드 0(으)로 완료된 프로세스

 


 

728x90
반응형