본문 바로가기
JAVA/Collection

LottoStore(로또구입예제)

by 미눅스[멘토] 2023. 6. 22.
728x90
package kr.or.ddit.basic;

import java.nio.file.spi.FileSystemProvider;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.Vector;

public class LottoStore {
	Scanner scanner = new Scanner(System.in);
	public static void main(String[] args) {
		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("번호를 잘못 선택했습니다. 다시 선택하세요....");
			}
		}
	}
	
	//메뉴를 출력하고 사용자가 선택한(입력한) 메뉴 번호를 반환하는 메서드
	private 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.print("메뉴선택 :");
		return scanner.nextInt();
	}
	
	
	//로또 구입을 처리하는 메서드
	private void buyLotto() {
		System.out.println();
		System.out.println("로또 구입 시작");
		System.out.println();
		System.out.println("(1000원에 로또번호 하나입니다.)");
		System.out.println("금액 입력 : ");
		int money = scanner.nextInt();
		
		if (money<1000) {
			System.out.println("입력 금액이 너무 적습니다. 로또번호 구입 실패!!!");
			return;
		}
		if (money>=101000) {
			System.out.println("입력 금액이 너무 많습니다. 로또번호 구입 실패!!!");
			return;
		}
		//----------------------------------------------
		HashSet<Integer> lottoSet = new HashSet<>();
		Random random = new Random();
		int count = money / 1000; //금액을 1000으로 나눈 몫 구하기 (로또 구매 수)
		System.out.println();
		
		for (int i = 1; i <= count; i++) {
			while(lottoSet.size()<6) {
				lottoSet.add(random.nextInt(45)+1); //1~45사이의 난수를 만들어서 Set에 추가한다.
			}
			
//			System.out.println("로또번호 " + i + " : " + lottoSet);
			// Set의 데이터를 List에 넣어서 List객체 생성하기
			ArrayList<Integer> lottoList = new ArrayList<>(lottoSet);
			Collections.sort(lottoList);
			
			System.out.println("로또번호 " + i + " : " + lottoList);
			lottoSet.clear();	//한번의 작업이 끝나면 Set의 데이터를 비워준다.
		}
		System.out.println();
		System.out.println("받은 금액은 "+money+"원이고 거스름돈은 "+money%1000 +"원입니다.");
		
		
	}
}

'JAVA > Collection' 카테고리의 다른 글

PhonBookTest(전화번호 관리 예제)  (0) 2023.06.23
HotelTest(호텔예약)예제  (0) 2023.06.23
VectorTest  (0) 2023.06.22
StackTest  (0) 2023.06.22
StackQueueTest  (2) 2023.06.22