- 일반(쌀집) 계산기
(python 프로그램) allcalc.org 쌀집 계산기
1. GUI 껍데기 제작 (완료)
https://github.com/creeras/ricecalculator
* 디스플레이를 어떻게 하는게 좋을런지?
14 자리 LCD Segment 를 구현하면 좋겠으나...
신경쓸 부분이 많을 것 같으니... 무리
* 숫자 Display 와 상태 Display 는 최소 2줄로 분리해야하지 않나?
2. 알맹이 제작 중
댓글 3
-
-
-
테스트 계산식
1+2+3+4+5+6+7+8+9+10 = 55
-1 = 54
= 53 // -1 상수(반복) 계산
= 52
= 51
= 50
÷ 5 = 10
= 2 // ÷5 상수계산
× 3 = 6
= 12 // ×2 반복계산, 곱하기만 다름
= 24 // ×2 반복계산, 곱하기만 다름
GT : 369 // = 키 누른 결과의 합
TAX+ : 405.9 // TAX 10% 세후 가격 기본 설정
TAX- : 369 // 세전 가격
- 30% : 258.3 // % 계산
+ 30% : 335.79 // % 계산
M+
- GT = -33.21
M- MR : 369
√ : 19.20937...
M/EX // 환률 모드로 변경
1 C1 C2 : 1350 // 1 $(는) \(로 얼마?)
C3 : 160 // 연속으로 환률버튼시, 엔화로는 얼마?
C4 : 0.95 // 유로화로 얼마?
C2 : 1350 // 원화로 얼마?
100 C3 C2 : 843.75 // 100 엔(C3)은 원화(C2)로 얼마?
50 C1 C4 : 47.5 // 50 달러(C1)는 유로화(C4)로 얼마?
100,000,000 C2 C1 : 74,074.074 // 1 억원(C2)은 달러(C1)로 얼마?
-
-
-
allcalc.org 버튼
계산식 entry 가 클립보드에 저장됨.
15 + 6 → 21 + 7 → 28 + 8 → 36 + 9 → 45 + 10 = 55 55 - 1 = 54 - 1 = 53 - 1 = 52 - 1 = 51 - 1 = 50 50 ÷ 5 = 10 ÷ 5 = 2 2 × 3 = 6 × 2 = 12 × 2 = 24 Recall GT = 369 TAX *= 405.9 TAX ÷= 369 369 *(1- 30%) = 258.3 258.3 *(1+ 30%) = 335.79 M += 335.79 335.79 - Recall GT = 369 = -33.21 M -= -33.21 Recall M = 369.00 (√369.00 = 19.209372712299) C1($) = 1 환전 → → C2(₩) = 1350 → C3(¥) = 160.00000000000 → C4(€) = 0.95000000000000 → C2(₩) = 1350.0000000000 C3(¥) = 100 환전 → → C2(₩) = 843.7500 C1($) = 50 환전 → → C4(€) = 47.50 C2(₩) = 100000000 환전 → → C1($) = 74074.074074074
-
버튼 기능을 구현하기 위한 큰 틀에서의 방향
1. 이벤트 처리 메서드 추가:
* `click` 메서드를 확장하여 각 버튼에 대한 동작을 정의합니다.
* 버튼의 구분하여 처리 로직을 구분합니다.
ㄴ 숫자(12개) : 00, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, .(dot)
ㄴ 연산자(13개) :
ㄴ 상수 계산 필요(4개) : +, -, *, /,
ㄴ 그 외(4개) : =, sqrt, %, ±
ㄴ 메모리 관련 기능(5개) : MC, MR, M-, M+, GT
ㄴ 기타 기능(3개) : M/EX, TAX-, TAX+
ㄴ 삭제, 초기화 관련(3개) : AC, C, ▶
2. 상태 설정:
* 계산기의 현재 상태를 저장할 변수들을 추가합니다
ㄴ 이전 결과, 현재 연산자, 현재 입력,
ㄴ 메모리 값 : M_메모리, GT_메모리
* 모드 스위치와 숫자 스위치의 상태를 반영할 로직을 구현합니다.
3. 계산 로직 구현:
* 연산 로직 구현
ㄴ 사칙연산
ㄴ 상수계산
ㄴ 제곱근
ㄴ 퍼센트
* 기타 메서드
ㄴ 계산 결과를 표시창에 업데이트
4. GUI 버튼과 기능 연결:
* 각 버튼에 `command` 매개변수를 사용하여 해당 기능을 연결
* `lambda` 함수를 활용하여 매개변수를 전달할 수 있습니다.
5. 특수 기능 구현:
* 메모리 관련 기능 (M+, M-, MR, MC)을 구현합니다.
* TAX+, TAX-, GT 등의 특수 기능에 대한 로직을 추가합니다.
6. 입력 검증 및 예외 처리:
* 잘못된 입력이나 연산에 대한 처리 로직을 추가합니다.
* 오류 메시지를 표시하는 기능을 구현합니다.
7. 디스플레이 업데이트:
* 입력과 결과를 실시간으로 표시창에 업데이트하는 메서드를 만듭니다.
8. 모드 전환 기능:
* 스위치의 상태에 따라 계산 모드를 변경하는 로직을 구현합니다.
9. 리팩토링 및 최적화:
* 코드를 모듈화하고 재사용 가능한 함수들로 분리합니다.
* 성능 개선을 위해 필요한 부분을 최적화합니다.
이러한 방향으로 단계적으로 개발을 진행하면 효과적으로 계산기의 기능을 구현할 수 있을 것입니다.
각 단계를 구현한 후 테스트를 진행하고, 필요에 따라 수정 및 개선해 나가는 것이 좋습니다.