Skip to content

msmk530/java-lotto-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

자바어플리케이션 - 로또

기능 요구사항

  • 로또 게임 기능을 구현해야 한다. 규칙을 모르면 검색해 로또 규칙을 찾아본다.
  • 로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다.
  • 로또 1장의 가격은 1000원이다.
  • 로또 당첨 금액은 고정되어 있는 것으로 한다.
  • 수익률을 계산해 출력해야 한다.
  • 추첨 번호를 자동으로 생성해야 한다.
  • 사용자가 수동으로 추첨 번호를 입력할 수 있도록 해야 한다.
  • 입력한 금액, 자동 생성 숫자, 수동 생성 번호를 입력하도록 해야 한다.

프로그래밍 요구사항

  • 예외가 발생하는 부분에 대해 자바 Exception을 적용해 예외처리한다.
  • 사용자가 입력한 값에 대한 예외 처리를 철저히 한다.
  • 배열 대신 ArrayList를 사용한다.
  • 모든 원시 값과 문자열을 포장한다.
  • 줄여쓰지 않는다(축약 금지).
  • 일급 콜렉션을 쓴다.
  • 모든 로직에 단위 테스트를 구현한다. 단, UI(System.out, System.in) 로직은 제외
  • MVC 패턴 구조를 유지하면서 구현한다.
  • 자바 코드 컨벤션을 지키면서 프로그래밍한다.
  • indent(인덴트, 들여쓰기) depth를 2을 넘지 않도록 구현한다. 1까지만 허용한다.
    • 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
    • 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
  • else 예약어를 쓰지 않는다.
    • 힌트: if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
    • else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다.
  • 함수(또는 메소드)의 길이가 10라인을 넘어가지 않도록 구현한다.
    • 함수(또는 메소드)가 한 가지 일만 잘 하도록 구현한다.

구현해야 할 기능

  1. 구입 금액 입력받기.
    • 최소 1000원 이상으로 입력받고, 1000원 단위로 입력받기.
  2. 수동으로 생성할 개수 입력받기.
    • 입력한 금액으로 살 수 있는 개수 이하로 입력받기.
    • 적어도 0이상이어야 함. (마이너스 개수 불가능)
  3. 수동으로 생성할 로또 번호 입력받기.
    • 중복되지 않는번호 6개를 한세트로, 2번에서 입력받은 개수 세트만큼 번호를 입력받음.
  4. 수동번호 로또 생성.
    • 3번에서 입력된 수동번호 리스트를 통해 해당 번호리스트를 지닌 로또 만듬.
  5. 자동번호 로또 생성.
    • 전체 개수중 2번 개수를 뺀 나머지 개수만큼 자동번호로 로또를 생성.
  6. 구매된 로또 내용 출력해주기.
  7. 당첨번호와 보너스 번호 입력받기.
    • 중복되지 않는 6개의 당첨번호와 1개의 보너스 번호 입력받기.
  8. 당첨번호와 구매된 로또 비교하여 당첨 통계 출력하기.

실행 결과

로또

About

로또게임 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%