(사진출처)http://news.donga.com/BZIT/List/3/all/50/1103402/1
로또 랜덤번호 추출기
# 구현기능
1. 사용자로 부터 구매하고 싶은 게임의 갯수를 입력받을 수있다.
2. 생성된 랜덤 숫자는 중복값이 없도록 제어하고 오름차순으로 정렬해준다.
3. 이번주 당첨번호를 입력해주면 사용자가 구매한 모든 번호의 결과를 분석 출력해준다.
mainClass
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 32 33 34 35 36 | package main; import java.util.Scanner; import dao.daoClass; public class mainClass { public static void main(String[] arg) { Scanner sc = new Scanner(System.in); daoClass dao = new daoClass(); // Variable String chNum; int conNum; while (true) { System.out.println("# 행운이 가득한 로또 자동번호 추출기입니다 ^^"); System.out.print("구매 하시고 싶은 게임의 수를 입력하세요\n>>>"); if (!dao.controller(chNum = sc.next())) { System.out.println("문자 혹은 0장을 입력하실 수 없습니다."); continue; } conNum = Integer.parseInt(chNum); dao.ground(conNum); System.out.println("\n당첨을 기원합니다! ^^"); System.out.print("\n당첨결과를 확인 하시겠습니까?(y/n)\n>>>"); chNum = sc.next(); if(chNum.equals("y")||chNum.equals("Y")) { dao.search(conNum); } break; } } } | cs |
daoClass
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | package dao; import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; import dto.dtoClass; public class daoClass { Scanner sc = new Scanner(System.in); dtoClass dto = new dtoClass(); ArrayList<dtoClass> arrRNums = new ArrayList<dtoClass>(); int nums[] = new int[7]; // Input controller public boolean controller(String chNum) { boolean b = true; for (int i = 0; i < chNum.length(); i++) { char c = chNum.charAt(i); if (chNum.charAt(0) == 0) { b = false; break; } if ((int) c < 48 || (int) c > 57) { b = false; break; } } return b; } // gameRound public void ground(int conNum) { for (int i = 0; i < conNum; i++) { System.out.println(); // 개행 System.out.print((i + 1) + "번째 랜덤 로또번호 "); creRNum(); } } // create Random number public void creRNum() { int rNums[] = new int[6]; int temp; boolean checkNums[] = new boolean[45]; for (int i = 0; i < checkNums.length; i++) { checkNums[i] = false; } int w = 0; while (w < rNums.length) { temp = (int) (Math.random() * 45); if (checkNums[temp] == false) { checkNums[temp] = true; rNums[w] = temp + 1; w++; } } arrRNums.add(new dtoClass(rNums)); rNums = swap(rNums); for (int i = 0; i < rNums.length; i++) { System.out.print("[" + rNums[i] + "]"); } } // Swap public int[] swap(int rNums[]) { int temp; for (int i = 0; i < rNums.length; i++) { for (int j = 0; j < rNums.length; j++) { if (rNums[i] < rNums[j]) { temp = rNums[j]; rNums[j] = rNums[i]; rNums[i] = temp; } } } return rNums; } // search public void search(int chNum) { int count; // 맞은 갯수 int one = 0, two = 0, tre = 0, fou = 0, fiv = 0; // 등수 int fail =0; System.out.println("\n# 구매하신 " + chNum + "개 게임과 이번주 당첨번호를 비교합니다."); System.out.println("# 이번주 당첨번호를 입력하세요."); for (int j = 0; j < 7; j++) { if (j == 6) { System.out.print("보너스 번호를 입력하세요"); nums[j] = sc.nextInt(); break; } System.out.print((j + 1) + "번째 번호\n>>>"); nums[j] = sc.nextInt(); } for (int i = 0; i < arrRNums.size(); i++) { boolean b = false; count = 0; int temp[] = arrRNums.get(i).getrNums(); for (int j = 0; j < temp.length; j++) { for (int j2 = 0; j2 < nums.length; j2++) { if (temp[j] == nums[j2]) { count++; if (temp[j] == nums[6]) { b = true; } } } } System.out.println(); // 개행 if (count == 6 && b == false) { System.out.println((i+1)+"번 게임 축하합니다 1등 입니다."); print(temp,nums); one++; System.out.println(); // 개행 break; } else if (count == 6 && b == true) { System.out.println((i+1)+"번 게임 축하합니다 2등 입니다."); print(temp,nums); two++; System.out.println(); // 개행 } else if (count == 5 && b == false) { System.out.println((i+1)+"번 게임 축하합니다 3등 입니다."); print(temp,nums); tre++; System.out.println(); // 개행 } else if (count == 4 && b == false) { System.out.println((i+1)+"번 게임 축하합니다 4등 입니다."); print(temp,nums); fou++; System.out.println(); // 개행 } else if (count == 3 && b == false) { System.out.println((i+1)+"번 게임 축하합니다 5등 입니다."); print(temp,nums); fiv++; System.out.println(); // 개행 } else { System.out.println((i+1)+"번 게임 꽝!"); print(temp,nums); fail++; System.out.println(); // 개행 } } System.out.println(); //개행 System.out.println("1등 : "+one+"번\t2등 : "+two+"번\t3등 : "+tre+ "번\t4등 : "+fou+"번\t5등 : "+fiv+"번\t꽝 : "+fail+"번"); } // print public void print(int[] temp,int[] nums) { System.out.print("당첨번호 : "); System.out.print("[" + nums[0] + "]"+"[" + nums[1] + "]"+"[" + nums[2] + "]"+ "[" + nums[3] + "]"+"[" + nums[4] + "]"+"[" + nums[5] + "]"+ "[ 보너스 : " + nums[6] + "]\n"); System.out.print("내번호 : "); System.out.print("[" + temp[0] + "]"+"[" + temp[1] + "]"+"[" + temp[2] + "]"+ "[" + temp[3] + "]"+"[" + temp[4] + "]"+"[" + temp[5] + "]"); } } | cs |
dtoClass
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 | package dto; import java.util.Arrays; public class dtoClass { private int rNums[]; public dtoClass() { } public int[] getrNums() { return rNums; } public void setrNums(int[] rNums) { this.rNums = rNums; } @Override public String toString() { return "dtoClass [rNums=" + Arrays.toString(rNums) + "]"; } public dtoClass(int[] rNums) { super(); this.rNums = rNums; } } | cs |
..
..
Ps. 1000만개는 사야.. 1개 당첨되네요 ^^;;;
'오랜된 포스팅 > Java' 카테고리의 다른 글
Number Baseball Game ver_02 (+G.U.I 기능추가) (0) | 2018.06.09 |
---|---|
이클립스 한글 깨짐 방지 환경설정 (1) | 2018.06.07 |
List Management Functions in java (0) | 2018.06.01 |
Baseball member management project(+File func) (0) | 2018.06.01 |
C.R.U.D filework version project (0) | 2018.05.31 |