일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- crud
- ibatis
- 반복문
- 자바문제
- 생활코딩
- spring
- 컬렉션프레임워크
- ddit
- 대덕인재개발원
- Android
- 이클립스
- python
- nodejs
- 자바
- pyqt
- FastAPI
- 배열
- JDBC
- Mac
- Oracle
- html
- jsp
- Homebrew
- Java
- 단축키
- 객체지향
- API
- servlet
- 맥
- Error
Archives
- Today
- Total
romworld
컬렉션 프레임워크 연습문제2(로또 프로그램) 본문
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();
}
}
'JAVA > 문제풀이' 카테고리의 다른 글
컬렉션 프레임워크 연습문제4(Hotel) (0) | 2022.10.28 |
---|---|
컬렉션 프레임워크 연습문제3(전화번호부) (0) | 2022.10.28 |
컬랙션 프레임워크 연습 문제 1(베이스볼게임) (0) | 2022.10.28 |
컬렉션 프레임워크 문제 (List, Map) (0) | 2022.10.10 |
Chapter 07 상속 문제 풀이 ( Human, 도형클래스, Bank) (0) | 2022.10.10 |
Comments