Skip to content

DoH100/calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

레벨별 기능 설명

레벨 1

사용자 입력을 받아 기본 사칙연산(+, -, *, /), 나머지(%), 제곱(^) 연산을 수행합니다

양의 정수 입력만 받으며, 잘못된 입력이나 0으로 나누기 등 예외를 처리합니다

단일 연산 실행 후 종료 또는 계속 실행 선택 가능

레벨 2

계산 결과를 리스트에 저장하고, 리스트 초기화 및 가장 오래된 결과 삭제 기능을 추가했습니다

입력 검증과 예외 처리 강화, 반복문과 예외처리 구문을 개선했습니다

Calculator 클래스를 통해 연산 메서드를 분리하여 구조화하였습니다

레벨 3

제네릭과 enum을 활용해 실수 타입 연산을 지원합니다

OperatorEnum으로 연산자 및 실제 계산 로직을 캡슐화

결과 저장 및 관리 기능을 유지하며, 입력 검증과 예외 처리를 수행

LV1 주요 클래스 및 메서드 설명

Lv1calculator.App //lv 1 main 메서드에서 사용자 입력, 연산, 결과 출력 및 반복 제어를 담당합니다

LV2 주요 클래스 및 메서드 설명

Lv2calculator.Calculator // lv2

cal(int num1, int num2, char operator): 입력받은 연산자에 따라 덧셈, 뺄셈 등 연산 수행 후 결과 저장

getResults(): 연산 결과 리스트 복사본 반환

setResults(List): 결과 리스트 초기화

removeFirstResult(): 가장 오래된 연산 결과 삭제

Lv2calculator.App2 //lv2

사용자 입력, 결과 출력, 결과 리스트 관리 기능 포함

Calculator 인스턴스 활용

LV3 주요 클래스 및 메서드 설명

Lv3calculator.Calculator3 //lv3

제네릭 타입으로 실수 및 정수 지원

calculate(T num1, T num2, OperatorEnum operator): 연산자 enum을 이용해 계산 수행 후 결과 저장

결과 리스트 관리 메서드 포함 etResultsGreaterThan(double value) 메서드를 구현 -Java Stream과 람다식을 활용해 results 리스트에서 입력값보다 큰 결과만 걸러내 리스트로 반환

Lv3calculator.OperatorEnum //lv3

연산 기호와 실제 연산 메서드 calculate(double a, double b)를 갖는 enum

문자 입력으로부터 연산자 enum을 반환하는 fromChar(char ch) 메서드 제공

Lv3calculator.App3 //lv3

사용자 입력, 실수 연산, 결과 출력 및 리스트 관리, 예외 처리 담당 콘솔에서 기준값을 입력받아 해당 값보다 큰 연산 결과들을 출력

예외 처리 및 입력 검증 설명

사용자 입력 시 Scanner를 활용하며, 숫자가 아닌 입력에 대해 적절히 예외 처리하여 재입력 유도

음수 또는 0 이하의 숫자는 레벨 3에서는 양의 숫자만 받도록 제한. 레벨 1과 2에서는 0 포함 양의 정수 입력 허용

0으로 나누기 시 ArithmeticException 발생 및 안내 메시지 출력

0의 0승, 음수 지수 등 정의되지 않은 연산에 대해 IllegalArgumentException 발생 및 사용자 안내

연산 기호가 올바르지 않은 경우 예외 발생 후 재입력 유도

결과 리스트 조작 시 빈 리스트에 대한 삭제 요청 등 상황에 따라 안내 메시지 출력

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages