과제/계산기

Calculator lv1~lv4

crablo 2024. 3. 7. 16:23
728x90

Calculator과제를 통해서 개념정리를 할 수 있었다.

맨처음 readLine()이 아무리 터미널 창에 쳐도 에러만 떠서 포기하려했었으나,

이번 주차는 화면에 중점을 두기보단 기초개념 복습 및 정리기간이었기 때문에 어떻게든 찾아서 해결했다.

문제는 이러했다.

애뮬레이터 버튼을 눌러서 오류가 났었던 것이었다 ㅎㄷㄷ

이것때문에 아까운 시간을 날렸었던것 같다.

나는 아래와 같이 다시 프로젝트를 시작했다.

 

이상태에서 시작했어야했고 처음부터 나는 Empty view를 생성해서 망했던것 같다.

그 후는 실행이 정상적으로 되었다.

lv1~lv4까지 구현해보았다. 

lv1: 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들고, 클래스를 이용하여 연산을 진행하고 출력하기
lv2:
  • Lv1에서 만든 Calculator 클래스에 출력 이후 추가 연산을 가능하도록 코드를 추가하고, 연산 진행 후 출력하기
  • Lv1에서 만든 Calculator 클래스에 나머지 연산자(%)를 추가하기. 그리고 -1을 입력 할 때까지 계산을 반복합니다. (1번 +, 2번 -, 3번 *, 4번 /, 5번 %)
lv3:
  • AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스를을 만든 후 클래스간의 관계를 고려하여 Calculator 클래스와 관계를 맺기
    • 관계를 맺은 후 필요하다면 Calculator 클래스의 내부 코드를 변경하기
      • 나머지 연산자(%) 기능은 제외합니다.
    • Lv2 와 비교하여 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
      • hint. 클래스의 책임(단일책임원칙)
 lv4:
  • AddOperation(더하기), SubtractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스들을 AbstractOperation라는 클래스명으로 만들어 사용하여 추상화하고 Calculator 클래스의 내부 코드를 변경합니다.
    • Lv3 와 비교해서 어떠한 점이 개선 되었는지 스스로 생각해 봅니다.
      • hint. 클래스간의 결합도, 의존성(의존성역전원칙)

 

위 조건대로 구현해 보았고 결과는 git에 올려놨다.

https://github.com/ellycrab/calculatorHomework/tree/Submit1

 

GitHub - ellycrab/calculatorHomework: 계산기 과제 (lv1~lv4)

계산기 과제 (lv1~lv4). Contribute to ellycrab/calculatorHomework development by creating an account on GitHub.

github.com

Calculatorlv1 파일위치 https://github.com/ellycrab/calculatorHomework/tree/Submit1/calculatorlv1/app/src/main/java/com/ellycrab/calculatorlv1

Calculatorlv2 파일위치

https://github.com/ellycrab/calculatorHomework/tree/Submit1/Calculatorlv2/app/src/main/java/com/ellycrab/calculatorlv2

Calculatorlv3 파일위치

https://github.com/ellycrab/calculatorHomework/tree/Submit1/Calculatorlv3/app/src/main/java/com/ellycrab/calculatorlv3

Calculatorlv4 파일위치

https://github.com/ellycrab/calculatorHomework/tree/Submit1/Calculatorlv4/app/src/main/java/com/ellycrab/calculatorlv4

lv1을 작성후 lv2~4까지는 클래스파일을 각각 만들어 기능들을 분리하는 작업이었고, 클래스와 상속 그리고 추상클래스에대한 이해가 있어야했다.

아직도 느끼는 거지만 어떤 언어가 되었든 직접 만들어보지 않은이상 와닿지 않은것 같고, 아직도 부족하다는 생각이 많이 들었다.

아직 시간이 남아있어 남은기간동안 의미있게 부족한 부분을 채워나갔으면 좋겠다.

 

 

 

 

 

728x90

'과제 > 계산기' 카테고리의 다른 글

Calculator lv5 stack클래스 이용  (0) 2024.03.12
Calculator lv4 추상클래스 설계  (2) 2024.03.07