Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

프로젝트 설명

간단한 로또 발매기를 구현한다.

  1. 로또 번호의 숫자 범위는 1 ~ 45 이다.
  2. 1개의 로또를 발행할 때 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다.
  3. 당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다.
  • 1등 : 6개 번호 일치 / 2,000,000,000원
  • 2등 : 5개 번호 일치 + 보너스 번호 일치 : 30,000,000원
  • 3등 : 5개 번호 일치 : 1,500,000원
  • 4등 : 4개 번호 일치 : 50,000원
  • 5등 : 3개 번호 일치 : 5,000원
  1. 로또 구입 금액을 입력하면 구입 금액에 해당하는 만큼 로또를 발행해야 한다.
  2. 로또 1장의 가격은 1,000원이다.
  3. 당첨 번호와 보너스 번호를 입력받는다.
  4. 사용자가 구매한 로또 번호와 당첨 번호를 비교하여 당첨 내역 및 수익률을 출력하고 로또 게임을 종료한다.
  5. 사용자가 잘못된 값을 입력한 경우 IllegalArgumentException을 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 받는다.
  6. Exception이 아닌 IllegalArgumentException, IllegalStateException 등과 같은 명확한 유형을 처리한다.

입출력 요구 사항

입력

  1. 로또 구입 금액을 입력받는다. 구입 금액은 1,000원 단위로 입력 받으며 1,000원으로 나누어 떨어지지 않는 경우 예외처리한다.
  2. 당첨 번호를 입력 받는다. 번호는 쉼표(,)를 기준으로 구분한다.
  3. 보너스 번호를 입력 받는다.

출력

  1. 발행한 로또 수량 및 번호를 출력한다.
  2. 로또 번호는 오름차순으로 정렬하여 보여준다.
  3. 당첨내역을 출력한다.
  4. 수익률은 소수점 둘째 자리에서 반올림한다.(ex. 100.0%, 51.5%, 1,000,000.0%)
  5. 예외 상황 시 에러 문구를 출력해야 한다. 단, 에러 문구는 "[ERROR]"로 시작해야 한다.

프로그래밍 요구사항

  1. indent 2까지만 허용
  2. 3항 연산자 금지
  3. 메서드는 최대한 작게
  4. 메서는의 길이는 15라인 이하
  5. else 사용 금지
  6. Enum 적용
  7. 주어진 Lotto 클래스 사용해야하며, 내부 필드(인스턴스 변수) 추가 금지, 접근제어자 변경 금지, 페키지 변경은 가능

기능목록

입력기능

  • 로또 구입 금액 입력 기능
  • 당첨 번호 입력 기능
    • 번호를 쉼표로 구분하는 기능
  • 보너스 번호 입력 기능

출력기능

  • 발행한 로또 수량 출력 기능
  • 발행한 로또 번호 출력 기능
    • 오름차순 정렬 기능
  • 당첨내역 출력 기능
  • 수익률 출력 기능
  • 예외 상황 시 [ERROR]문구 출력 기능

로직기능

  • 로또 숫자들이 생성되는 기능
    • 1000원 단위로 로또 1개(6개 랜덤 숫자) 발행기능
  • 숫자 일치 확인 기능
    • 1,2,3,4,5등 확인 기능
  • 수익률(-100% ~ 200,000,000%) 계산 기능
  • 수익률 소수점 둘째 자리에서 반올림 기능

주어진 기능

  • Randoms.pickUniqueNumbersInRange(1, 45, 6) : 1~45 사이 중복되지 않은 정수 6개 반환
  • Console.readLine() : 사용자 입력 기능

예외상황 발생 목록

  • 구입 금액이 1,000원으로 나누어 떨어지지 않는 경우 예외 발생
  • 구입 금액을 음수로 입력 시 예외 발생
  • 당첨 번호 입력 시 숫자 이외의 문자, 특수문자가 들어가는 경우 예외 발생
  • 구분자가 쉼표가 아닐 경우 예외 발생
  • 보너스 번호 입력 시 숫자 이외의 문자, 특수문자 입력 시 예외 발생
  • 당첨번호, 보너스 번호 입력 시 허용된 숫자범위(1~45)이외 숫자 입력 시 예외 발생
  • 당첨번호, 보너스 번호 간의 중복된 숫자 입력 시 예외 발생

변할 수 있는 것들(정책적인 부분)(변할 수 있는 부분과 변하지 않는 부분을 나누자)

  • 사회 상황에 따라서 각 등수별 당첨금액이 달라질 수 있다.
  • 사회 상황에 따라서 로또 번호들의 범위(1~45)가 변할 수 있다
  • 로또가 1~5 등 말고도 7, 8등이 생길 수도 있다. 즉 등수가 더 다양해 질 수 있음.
  • 사회 상황에 따라서 번호가 6개 이상으로 될 수 있을꺼 같다(= 최근 뉴스에 나옴)
  • 사회 상황에 따라서 1000원에 로또 한장이 아니라 2000원에 로또 한장 이런식으로 변할 수도 있을거 같음

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages