학기를 마무리하고 김호준 교수님과 함께 하는 공부가 시작되었다. 공부라기 보다는 교수님이 라운드 별로 과제를 내주시면 내가 기한 내에 그 과제를 성공적으로 구현해내면 된다!! 어디까지 해볼 수 있을 지 모르겠지만 이 시간을 통해서 엄청 많이 성장했으면 좋겠다:)

먼저 첫 과제는 계산기 만들기이다. 기한 : 6/19 ~ 6/21(오후8시)

사진 내가 구현하려고 했던 Mac용 계산기

계산기?? 일단 뭐 막막하긴 한데 계산기 계산은 뭐 알아서 해주는데 그렇게 어려울까? 하고 생각했는데 오산이었다.

숫자를 입력받게 프레임을 만들고 버튼을 만들고 연산 결과를 보여주고 연산의 우선 순위를 정해주고 int였다가 double이었다가 하는 과정을 겪으면서 이 간단해 보이는 계산기 하나도 실용성있게 만드려면 정말 많은 시간이 걸리겠다 라는 생각을 했다. 나는 Macbook에 있는 계산기와 비슷하게 만들기 위해서 엄청 많은 애를 썼다. 많이 부족했지만 그래도 기본 기능을 구현해 냈음에 만족한다.

먼저 틀을 만드는 것은 JFrame에 JLabel을 추가해주고 JLabel에 Jbutton을 추가해서 각 연산기호와 숫자를 입력 받을 수 있도록 하였다. 사진 프레임 설정

사진 버튼 설정

Jbutton에는 각각 actionlistener를 추가해서 button이 눌렸을 때마다 값을 받을 수 있도록 하였다.

그리고 연산의 pre라는 우선순위를 두고 키를 입력 받는 것을 stack에 저장해두었는데 연산의 우선순위를 두어서 + - 후에 곱셈 나눗셈이 오면 연산을 기다릴 수 있도록 설정해주었다.

사진

연산자를 입력받으면 cal이라는 함수 과정을 진행해주었는데 매번 결과 값을 받을 수 있게 해주었다.

사진 버튼 액션 리스너1

사진 버튼 액션 리스너2

이 과정을 통해서 나온 것!!

사진 계산기 결과물

세부 기능

  1. 불필요 0 제거
  2. 글자 수에 따라 글자크기 변경
  3. 연산 과정 중 연산 기호 누를 시 과정 값을 보여줌
  4. 연산 우선순위!! 여기에 내 가장 많은 시간을 바쳤다.

짧은 시간에 결과물을 내느라 살짝 힘들었지만 그래도 consol 창을 벗어나본 첫 경험이었기 때문에 많이 뿌듯하고 자신감을 가질 수 있었던 보람찬 시간이었다:)

코드는 github에 게시해놨다.

https://github.com/gur5381/JavaStudy18-1