JAVA/문제풀이
컬렉션 프레임워크 연습문제2(로또 프로그램)
inderrom
2022. 10. 28. 01:39
package kr.or.ddit.basic;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
public class LottoStore {
private Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
new LottoStore().lottoStart();
// LottoStore lotto = new LottoStore();
// lotto.lottoStart();
}
public void lottoStart() {
while (true) {
int choice = displayMenu();
switch (choice) {
case 1:
buyLotto();
break; // 로또 구입
case 2:
System.out.println("감사합니다.");
return; // 프로그램 종료
default:
System.out.println("번호를 잘못 입력했습니다 1 또는 2를 눌러주세요");
}
}
}
// 로또 구입을 처리하는 메서드
private void buyLotto() {
System.out.println();
System.out.println("Lotto 구입 시작");
System.out.println("");
System.out.println("(1000원에 로또번호 하나입니다.)");
System.out.println("금액 입력 : ");
int money = scan.nextInt();
if (money < 1000) {
System.out.println("입력금액이 너무 적습니다. 로또번호 구입 실패!!!");
return;
}
if (money >= 101000) {
System.out.println("금액이 너무 많습니다. 로또번호 구입 실패 !!!");
return;
}
HashSet<Integer> lottoSet = new HashSet<Integer>();
// 구매할 로또의 개수 구하기
int count = money / 1000;
Random rnd = new Random();
System.out.println();
System.out.println("행운의 로또번호는 아래와 같습니다.");
for (int i = 1; i <= count; i++) { // 구매 개수만큼 반복
while (lottoSet.size() < 6) { // 로또 번호만들기 ==>1 ~ 45사이의 중복되지 않는 6개의 숫자 만들기
lottoSet.add(rnd.nextInt(45) + 1);
}
// Set에 만들어진 로또번호를 List에 담고, 정렬하여 출력한다.
ArrayList<Integer> lottoList = new ArrayList<Integer>(lottoSet);
Collections.sort(lottoList);
System.out.println("로또번호" + i + " : " + lottoList);
lottoSet.clear(); // Set에 저장된 이전에 만들어진 번호를 모두 삭제한다.
}
System.out.println();
System.out.println("받은 금액은" + money + "원이고, 거스름돈은" + (money % 1000) + "원 입니다.");
}
// 메뉴를 출력하고 선택번호를 입력받아 반환하는 메서드
public int displayMenu() {
System.out.println();
System.out.println("========================");
System.out.println(" Lotto 프로그램");
System.out.println("------------------------");
System.out.println(" 1. Lotto 구입");
System.out.println(" 2. 프로그램 종료");
System.out.println("=========================");
System.out.println(" 메뉴선택 : ");
System.out.println();
return scan.nextInt();
}
}