안드로이드 계산기 ver2 |
이 소스도 역시 "이클립스"로 제작되어 있으며
타겟 API는 15(4.0.3)
컴파일 API는 19(4.4.2)
로 하였습니다.
(그러므로 안드로이드 4.0.3 이하의 버전에서는 구동되지 않을수 있습니다.)
이클립스용 소스라서 "안드로이드 스튜디오"에서는 변환과정을 거쳐야합니다.
[업데이트 내역] 1. 소스 최적화 및 기능 분할 2. 괄호 연산 구현 3. 우선순위 연산 구현 4. 지우기(←)버튼 구현 |
업데이트 하다보니 소스가 완전히 달라졌습니다.
예전에는 위의 소스처럼 메인소스 내부에서 계산을 했다면
지금은
이렇게 내부에서는 계산을 하지 않고 입력된 식을 String으로 변환하여 전달해서
CalcEngine이라는 자바파일을 따로 생성하여
CharListStack과 DoubleListStack에 맞게끔 "스택연산"을 하도록 하였습니다.
(연산자는 CharListStack에 저장)
(피연산자는 DoubleListStack에 저장 및 계산)
메인 소스인 "MainActivity"에서는 식을 전달하고 "지우기"기능과 리스너 연결만 있을뿐
계산은 "CalcEngine"이 하게됩니다.
아직까지는 계산 오차를 발견하지 못했습니다.
다음 업데이트에서는
소스보기를 "파일 입출력"을 이용하여 구현할 예정입니다.
'Study > Android' 카테고리의 다른 글
[안드로이드] ADB를 무선으로 연결하기(하지만 완전한 무선은 아닌..) (0) | 2017.02.14 |
---|---|
[안드로이드] 툴바(Toolbar)의 왼쪽에 버튼을 달기 (3) | 2017.02.03 |
[안드로이드] ListView 갱신하기 (0) | 2017.02.03 |
[안드로이드] 파일경로 Uri를 String형의 Path로 변환하는 법 (0) | 2017.01.25 |
안드로이드 계산기 ver1 (Android 4.0.3(API 15) 기준)(소스 첨부) (0) | 2016.12.23 |