계산기 만들기
목표
•
하나의 클래스(Calculator)에서 모든 기능 구현
•
사용자 입력을 받아 사칙연산 수행
•
Scanner, if/switch 문법 활용
•
콘솔 기반 입출력 처리
필수 구현 기능
1. 기본 사칙연산
지원할 연산:
+ (덧셈)
- (뺄셈)
* (곱셈)
/ (나눗셈)
Java
복사
2. 사용자 인터페이스
=== Java 계산기 ===
첫 번째 숫자를 입력하세요: 10
연산자를 입력하세요 (+, -, *, /): +
두 번째 숫자를 입력하세요: 5
결과: 10.0 + 5.0 = 15.0
계속 계산하시겠습니까? (y/n): y
Java
복사
3. 필수 예외 처리
•
0으로 나누기 방지
•
잘못된 연산자 입력 처리
•
숫자가 아닌 입력 처리
구현 템플릿
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("=== Java 계산기 ===");
System.out.println("계산기를 종료합니다.");
scanner.close();
}
}
Java
복사
구현 단계별 가이드
Step 1: 기본 구조 만들기
1.
Scanner 객체 생성
2.
while 무한 루프 구성
3.
숫자 2개와 연산자 입력받는 코드 작성
Step 2: 연산 로직 구현
•
아래와 같은 포맷팅으로 기능이 수행되도록 구현
첫 번째 숫자: 10
연산자: +
두 번째 숫자: 5
결과: 15.0
이전 결과(15.0)를 사용하시겠습니까? (y/n): y
연산자: *
숫자: 2
결과: 30.0
Java
복사
Step 3: 예외 처리 추가
try {
// 입력 받는 코드
} catch (InputMismatchException e) {
System.out.println("숫자를 입력해주세요.");
scanner.nextLine(); // 잘못된 입력 제거
continue;
}
Java
복사
Step 4: 결과 출력 및 반복 처리
•
결과를 보기 좋게 포맷팅
=== Java 계산기 ===
첫 번째 숫자를 입력하세요: 10
연산자를 입력하세요 (+, -, *, /): +
두 번째 숫자를 입력하세요: 5
결과: 10.0 + 5.0 = 15.0
계속 계산하시겠습니까? (y/n): y
Java
복사
•
사용자가 계속할지 선택할 수 있도록 구현
Step 5: 연산 기록 보관
•
연산 결과를 보관할 자료구조를 선택하여 보관
Step 6: 추가 연산자
•
사칙연산에 아래와 같은 연산 기능 추가
% (나머지)
^ (거듭제곱) - Math.pow() 사용
sqrt (제곱근) - Math.sqrt() 사용
Java
복사
Step 7: 메뉴 관리
•
아래와 같은 포맷팅으로 메뉴를 선택하고 기능이 수행되도록 구현
=== 계산기 메뉴 ===
1. 계산하기
2. 계산 이력 보기
3. 이력 지우기
0. 종료
선택:
Java
복사
체크리스트
필수 구현 사항 
두 숫자와 연산자 입력받기
사칙연산 (+, -, *, /) 구현
0으로 나누기 예외 처리
잘못된 연산자 입력 처리
계속/종료 선택 기능
결과를 보기 좋게 출력
코드 품질 
적절한 변수명 사용
주석으로 코드 설명
코드 컨벤션 준수
예외 상황 처리
사용자 경험 
명확한 입력 안내 메시지 출력
오류 발생 시 친절한 안내 메세지 출력
테스트 케이스
정상 동작 테스트
입력: 10, +, 5 → 출력: 15.0
입력: 20, -, 8 → 출력: 12.0
입력: 6, *, 7 → 출력: 42.0
입력: 15, /, 3 → 출력: 5.0
Java
복사
예외 상황 테스트
입력: 10, /, 0 → "0으로 나눌 수 없습니다"
입력: 5, #, 3 → "지원하지 않는 연산자입니다"
입력: abc, +, 5 → "숫자를 입력해주세요"
Java
복사
GitHub 제출 가이드
1. calculator-project 에 있는 프로젝트 fork 받아주세요.
가이드
2. 본인 계정에 fork된 repository에서 clone 받아 local에 환경을 만들어주세요.
가이드
3. 새로운 branch 생성 후 해당 branch에서 요구사항에 맞게 구현해주세요.
가이드
4. 구현은 기능단위로 commit & push 해주세요.
가이드
5. 최종 제출 시에만 Pull Request하여 tutor-lth 저장소로 요청해주세요.
가이드
README.md 작성 예시
# Java 계산기
## 프로젝트 설명
콘솔 기반의 간단한 계산기 프로그램입니다.
## 기능
- 사칙연산 (+, -, *, /)
- 연속 계산 가능
- 예외 처리
## 실행 방법
```bash
javac Calculator.java
java Calculator
Markup
복사
커밋 메세지 작성 예시
feat: 기본 사칙연산 기능 구현
fix: 0으로 나누기 예외 처리 추가
docs: README.md 작성
refactor: 코드 구조 개선
Markup
복사