λλμ΄ μ½ 5κ°μ κ°μ κ΅λΉμμ μ¬μ μ€ μ²« μ μ νλ‘μ νΈλ₯Ό μ μνκ² λμμ΅λλ€. 머리μ κ·Έλ €μ§ νλ‘μ νΈμ μ’ λ₯λ λ€μνλλ° νμ¬ μμ€μΌλ‘ μ μ κ°λ₯ν λͺ©λ‘λ€λ‘ μ 리νλ€λ³΄λ μμ£Ό μ μ μκ° λμμ΅λλ€. π μκ³ κ·μ¬μ΄ μ 첫 νλ‘μ νΈλ₯Ό μκ°ν΄λ릴κ²μ!
2022λ 8μ 24μΌ - 2022λ 9μ 1μΌ(μ΄ 10μΌ)
μ μν λνλ‘λλ νλ‘μ νΈ λͺ μμλ μ μΆκ° κ°λ₯νλ― λ³΅κΆ μμ€ν μ λλ€. νλ‘κ·Έλ¨μ μμνκ² λλ©΄ λ‘λ ꡬμ μ μν νμκ°μ μ μ¬λΆλ₯Ό λ¬»κ³ κ·Έμ λ°λ₯Έ μΈμ μ¬νμ λ°μ΅λλ€. λ‘λλ₯Ό ꡬ맀ν μ μλ μ΄λ€ μ ν(λ―Έμ±λ μλ ꡬ맀 λΆκ°)μ λ°μ§ μλλ€λ©΄ λ‘λλ₯Ό ꡬ맀ν μ μκ³ λ‘λ ꡬμ μ 0λΆν° 9κΉμ§ μΌμ μλ¦¬λ‘ 6κ°μ μ«μλ₯Ό μ λ ₯ν μ μμ΅λλ€. μ λ ₯ν μ«μλ‘ λ‘λ ꡬ맀λ₯Ό μ§ννλ©΄ νμκ°μ μ μ λ ₯νλ κ²°μ λΉλ°λ²νΈλ₯Ό μ λ ₯νλ©΄ λ‘λ κ΅¬λ§€κ° μλ£λ©λλ€. μ΄νμ λλ€μΌλ‘ λ‘λ μ«μκ° μμ±λκ³ κ·Έ λ²νΈκ° μ¬μ©μκ° μ λ ₯νλ λ²νΈμ λμΌνλ©΄ λΉμ²¨μ΄κ³ κ·Έλ μ§ μμΌλ©΄ λμ²¨μ΄ λλ μμ€ν μ λλ€.
λνλ‘λλ ν¬κ² Scanner, 무ν 루νμ μ μ΄, thread κ·Έλ¦¬κ³ λλ€ λ©μλμ κΈ°λ₯μ κ°μ§κ³ μμ΅λλ€. νμκ°μ μ μ¬μ©μμ μΈμ μ¬νμ Scanner ν΄λμ€λ‘ μ λ ₯λ°κ³ , μΈμ μ¬νμ μλͺ»λ λ΄μ©μ΄ μ λ ₯λλ©΄ λ€μ μ λ ₯μ μ λν μ μλλ‘ λ¬΄ν 루νμμ 쑰건문μ μ¬μ©νμκ³ , μΆμ²¨μ΄ μ§νλκ±°λ λΉμ²¨μ μ 무λ₯Ό νμΈν λ thread sleep λ©μλλ₯Ό μ¬μ©νμ¬ μ‘°κΈμ κΈ΄μ₯κ°μ λν΄μ€¬μ΅λλ€. κ·Έλ¦¬κ³ λΉμ°ν λ‘λμ νΉμ±μ λλ€μΌλ‘ μμ±λλ λ‘λμ λ²νΈλ₯Ό μν΄ λλ€ λ©μλλ₯Ό μ¬μ©νμμ΅λλ€.
package lottery;
import java.util.Calendar;
public class DatePrinter {
// μΊλ¦°λ ν΄λμ€λ₯Ό νλΌλ―Έν°λ‘ μ λ¬λ°μ,
// κ·Έ κ°μ²΄κ° ν¬ν¨νκ³ μλ μκ°μ μΆλ ₯νλ λ©μλ
public static void printDateTime( Calendar cal ) {
// λ
, μ, μΌ, μ, λΆ, μ΄ => 24μκ°μ
int yy = cal.get(Calendar.YEAR);
// μλ°μμμ μμ 0λΆν° μμλλ€.
int mm = cal.get(Calendar.MONTH) + 1;
int dd = cal.get(Calendar.DAY_OF_MONTH);
int hh = cal.get(Calendar.HOUR_OF_DAY);
int mi = cal.get(Calendar.MINUTE);
int ss = cal.get(Calendar.SECOND);
}
}
package lottery;
public class Loading {
public void loading(){
// νλ‘κ·Έλ¨μ μ£Όμ΄μ§ μκ°λμ λκΈ°νλλ‘ νλ μ²λ¦¬
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
}
}
package lottery;
import harrypotter.PersonalData;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Calendar;
public class Lottery {
String randomNum = "";
String[] randomNumbers = new String[6];
// λλ€μΌλ‘ λ‘λλ²νΈκ° μμ±λκ² νλ€.
// λ²μλ₯Ό κ°λ λλ€κ°μ μμ±νμ¬ λ¦¬ν΄νλ λ©μλ
public static int random(int min, int max) {
int num = (int)((Math.random() * (max - min + 1)) + min);
return num;
}
public void randomLotteryNum() {
for(int i = 0; i < 6; i++) {
randomNum += PersonalData.getInstance().random(0, 9);
}
this.randomNum = randomNum;
}
// λλ€μΌλ‘ μμ±λ λ‘λ λ²νΈλ₯Ό μΆλ ₯νλ€.
public void lotteryNum() {
System.out.println("\n[INFO] λ‘λ λΉμ²¨ λ²νΈ μλ΄ λ립λλ€.");
System.out.println("\nβ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
β");
System.out.println("β
ββ
ββ
ββ
ββ
β[" + randomNum + "]β
ββ
ββ
ββ
ββ
β");
System.out.println("β
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
ββ
β");
SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss");
Calendar time = Calendar.getInstance();
String format_time1 = format1.format(time.getTime());
System.out.println(format_time1);
System.out.println("\n=================================================================\n");
}
// λ‘λ κ²°κ³Όλ₯Ό μΆλ ₯νλ€.
public void result() {
Membership m = Membership.getInstance();
Purchase p = Purchase.getInstance();
System.out.println("[INFO] " + m.name + "λμ λΉμ²¨ κ²°κ³Ό 3μ΄ νμ μλ΄λ립λλ€.");
System.out.println("\n=================================================================\n");
Loading l = new Loading();
l.loading();
if( p.customerNum.equals(randomNum) ) {
System.out.println("[INFO] " + m.name + "λμ λ‘λλ²νΈλ "+ p.customerNum + "μ
λλ€.");
System.out.println("[INFO] μΆνλ립λλ€. λ‘λμ λΉμ²¨λμ΅λλ€.");
}else {
System.out.println("[INFO] " + m.name + "λμ λ‘λλ²νΈλ "+ p.customerNum + "μ
λλ€.");
System.out.println("[INFO] λ첨μ
λλ€. λ€μ κΈ°νλ₯Ό λ
Έλ €λ³΄μΈμ.");
}
System.out.println("\n=================================================================\n");
System.out.println("[INFO] λ‘λ μΆμ²¨μ΄ μλ£λμ΅λλ€. κ°μ¬ν©λλ€.");
System.out.println("\n=================================================================");
}
}
package lottery;
import java.util.Calendar;
import java.util.Scanner;
public class Membership {
// μ±κΈν€ κ°μ²΄ μμ±
private static Membership m;
public static Membership getInstance() {
if( m == null ) {
m = new Membership();
}
return m;
}
public static void freeInstance() {
m = null;
}
private Membership() {}
String name; // μ΄λ¦
String personalYY; // νμ΄λ λ
λ
String personalMM; // νμ΄λ μ
String personalDD; // νμ΄λ μΌ
String email; // μ΄λ©μΌ
String address; // μ£Όμ
String pw; // μΉ΄λ λΉλ°λ²νΈ
// νμκ°μ
μμ
public void membershipGuide() {
Scanner sc = new Scanner(System.in);
System.out.println(
" \n\n ## #### ###### ###### ###### ##### ## ## \r\n"
+ " ## ## ## ## ## ## ## ## ## ## \r\n"
+ " ## ## ## ## ## ##### ##### ###### \r\n"
+ " ## ## ## ## ## ## ## ## ## \r\n"
+ " ###### #### ## ## ###### ## ## ##");
System.out.println("\n[INFO] μλ
νμΈμ. λνλ‘λμ
λλ€.\n"
+ "λ‘λ ꡬμ
μ μν΄μ νμκ°μ
μ΄ νμν©λλ€.\n"
+ "νμκ°μ
μ μ§ννμκ² μ΅λκΉ?\n"
+ "[1] μ\t[2] μλμ");
String answer = "";
for(;;) {
System.out.print("\nμ
λ ₯ : ");
answer = sc.next();
if(answer.equals("1") || answer.equals("μ")) {
personalData();
break;
}else if(answer.equals("2") || answer.equals("μλμ")){
System.out.println("\n[ERROR] νμμ΄ μλλ©΄ λ‘λλ₯Ό ꡬ맀ν μ μμ΅λλ€.");
System.exit(0);
}else {
System.out.println("\n[ERROR] μλͺ»λ μ
λ ₯μ
λλ€. λ€μ μ
λ ₯ν΄μ£ΌμΈμ.");
}
}
}
public void personalData() {
Scanner sc = new Scanner(System.in);
System.out.println("\n=================================================================\n");
System.out.println("[INFO] νμκ°μ
μ μν΄ μλμ μμμ μ±μμ£ΌμΈμ.\n");
System.out.print("* μ΄λ¦ : ");
this.name = sc.next();
// λ―Έμ±λ
μλ κ°μ
ν μ μλ€.
// μλ
μμΌμ 쑰건μ λ§μ§ μμΌλ©΄ λ€μ μ
λ ₯μ ν΄μΌλλ€.
int personalYYnum = 0;
int personalMMnum = 0;
int personalDDnum = 0;
// μ
λ ₯νλ μ°λκ° μ¬ν΄λ₯Ό λκΈ°μ§ μκ² λ§λ λ€.
Calendar cal = Calendar.getInstance();
int yy = cal.get(Calendar.YEAR);
for(;;) {
System.out.print("* νμ΄λ μ°λ : ");
this.personalYY = sc.next();
personalYYnum = Integer.parseInt(personalYY);
if( personalYYnum == yy || personalYYnum > yy - 20 && personalYYnum < yy) {
System.out.println("[ERROR] λ―Έμ±λ
μλ λ‘λλ₯Ό ꡬ맀ν μ μμ΅λλ€."
+ "\nνμκ°μ
μ΄ μ’
λ£λ©λλ€.");
System.exit(0);
}else if( personalYYnum < 1900 || personalYYnum > yy) {
System.out.println("[ERROR] μλͺ»λ μ
λ ₯μ
λλ€."
+ "\nνμ΄λ μ°λλ₯Ό λ€μ μ
λ ₯ν΄μ£ΌμΈμ.\n");
}else {
break;
}
}
for(;;) {
System.out.print("* νμ΄λ μ : ");
this.personalMM = sc.next();
personalMMnum = Integer.parseInt(personalMM);
if( personalMMnum == 0 || personalMMnum > 12) {
System.out.println("[ERROR] μλͺ»λ μ
λ ₯μ
λλ€."
+ "\nνμ΄λ μμ λ€μ μ
λ ₯ν΄μ£ΌμΈμ.\n");
}else {
break;
}
}
// μ
λ ₯ν μμ λ°λ₯Έ μΌμ λ³ν
DatePrinter.printDateTime(cal);
cal.set(Calendar.DAY_OF_MONTH, personalMMnum);
int day_count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
for(;;) {
System.out.print("* νμ΄λ μΌ : ");
this.personalDD = sc.next();
personalDDnum = Integer.parseInt(personalDD);
if(personalDDnum == 0 || personalDDnum > day_count + 1) {
System.out.println("[ERROR] μλͺ»λ μ
λ ₯μ
λλ€."
+ "\nνμ΄λ μΌμ λ€μ μ
λ ₯ν΄μ£ΌμΈμ.\n");
}else {
break;
}
}
System.out.print("* μ£Όμ : ");
this.address = sc.next();
System.out.print("* κ²°μ λΉλ°λ²νΈ : ");
sc.nextLine(); // next() μ€λ₯ λ°©μ§
this.pw = sc.next();
System.out.println("\n[INFO] νμκ°μ
μ΄ μλ£λμμ΅λλ€.");
System.out.println("\n=================================================================");
}
}
package lottery;
import java.util.Scanner;
public class Purchase{
// μ±κΈν€ κ°μ²΄ μμ±
private static Purchase p;
public static Purchase getInstance() {
if( p == null ) {
p = new Purchase();
}
return p;
}
public static void freeInstance() {
p = null;
}
private Purchase() {}
String customerNum = "";
public void purchaseQuestion(){
Membership m = Membership.getInstance();
Scanner sc = new Scanner(System.in);
System.out.println("\n[INFO]" + m.name + "λ, μλ
νμΈμ."
+ "\nλ‘λλ₯Ό ꡬ맀νμκ² μ΅λκΉ?"
+ "\n[1] μ \t [2] μλμ");
String answer = "";
for(;;) {
System.out.print("\nμ
λ ₯ : ");
answer = sc.next();
if(answer.equals("1") || answer.equals("μ")) {
letsLottery();
System.out.println("\n=================================================================");
break;
}else if(answer.equals("2") || answer.equals("μλμ")){
System.out.println("\n[ERROR] λ‘λ κ΅¬λ§€κ° μ’
λ£λμμ΅λλ€.");
System.exit(0);
}else {
System.out.println("\n[ERROR] μλͺ»λ μ
λ ₯μ
λλ€. λ€μ μ
λ ₯ν΄μ£ΌμΈμ.");
}
}
}
public void letsLottery() {
Scanner sc = new Scanner(System.in);
System.out.println("\n[INFO] 1μ μ리 μ«μλ‘ μ΄ 6κ°μ λ‘λ λ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.");
String num1 = "";
String num2 = "";
String num3 = "";
String num4 = "";
String num5 = "";
String num6 = "";
// 1μ μ리 μ«μκ° μλλ©΄ 무ν λ°λ³΅
for(;;) {
System.out.print("첫λ²μ§Έ λ²νΈ μ
λ ₯ : ");
num1 = sc.next();
if(num1.length() != 1) {
System.out.println("1μ μ리 μ«μλ§ μ
λ ₯ν΄μ£ΌμΈμ. ( 0 ~ 9 )");
}else {
break;
}
}
for(;;) {
System.out.print("λλ²μ§Έ λ²νΈ μ
λ ₯ : ");
num2 = sc.next();
if(num2.length() != 1) {
System.out.println("1μ μ리 μ«μλ§ μ
λ ₯ν΄μ£ΌμΈμ. ( 0 ~ 9 )");
}else {
break;
}
}
for(;;) {
System.out.print("μΈλ²μ§Έ λ²νΈ μ
λ ₯ : ");
num3 = sc.next();
if(num3.length() != 1) {
System.out.println("1μ μ리 μ«μλ§ μ
λ ₯ν΄μ£ΌμΈμ. ( 0 ~ 9 )");
}else {
break;
}
}
for(;;) {
System.out.print("λ€λ²μ§Έ λ²νΈ μ
λ ₯ : ");
num4 = sc.next();
if(num4.length() != 1) {
System.out.println("1μ μ리 μ«μλ§ μ
λ ₯ν΄μ£ΌμΈμ. ( 0 ~ 9 )");
}else {
break;
}
}
for(;;) {
System.out.print("λ€λ²μ§Έ λ²νΈ μ
λ ₯ : ");
num5 = sc.next();
if(num5.length() != 1) {
System.out.println("1μ μ리 μ«μλ§ μ
λ ₯ν΄μ£ΌμΈμ. ( 0 ~ 9 )");
}else {
break;
}
}
for(;;) {
System.out.print("μ¬μ―λ²μ§Έ λ²νΈ μ
λ ₯ : ");
num6 = sc.next();
if(num6.length() != 1) {
System.out.println("1μ μ리 μ«μλ§ μ
λ ₯ν΄μ£ΌμΈμ. ( 0 ~ 9 )");
}else {
break;
}
}
this.customerNum= num1 + num2 + num3 + num4 + num5 + num6;
System.out.print("\n[INFO] μ
λ ₯νμ λ²νΈλ" + "[" + num1 + "]" + "[" + num2 + "]" + "[" + num3 + "]"
+ "[" + num4 + "]" + "[" + num5 + "]" + "[" + num6 + "]" + "μ
λλ€.");
System.out.println("\nμ
λ ₯νμ λ²νΈλ‘ λ‘λ ꡬ맀 μ§ννμκ² μ΅λκΉ?"
+ "\n[1] μ \t [2] μλμ");
String answer = "";
for(;;) {
System.out.print("\nμ
λ ₯ : ");
answer = sc.next();
if(answer.equals("1") || answer.equals("μ")) {
order();
break;
}else if(answer.equals("2") || answer.equals("μλμ")){
System.out.println("\n[ERROR] λ‘λ κ΅¬λ§€κ° μ’
λ£λμμ΅λλ€.");
System.exit(0);
}else {
System.out.println("\n[ERROR] μλͺ»λ μ
λ ₯μ
λλ€. λ€μ μ
λ ₯ν΄μ£ΌμΈμ.");
}
}
}
public void order() {
Membership m = Membership.getInstance();
Scanner sc = new Scanner(System.in);
String pw = "";
for(;;) {
System.out.println("\n[INFO] κ²°μ λΉλ°λ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.");
System.out.print("μ
λ ₯ : ");
pw = sc.next();
if(pw.equals(m.pw)) {
System.out.println("\n[INFO] κ²°μ κ° μλ£λμμ΅λλ€.");
System.out.println("\n[INFO] 3μ΄ νμ λ‘λ μΆμ²¨μ΄ μ§νλ©λλ€.");
break;
}else {
System.out.println("\n[ERROR] κ²°μ λΉλ°λ²νΈκ° μΌμΉνμ§ μμ΅λλ€. λ€μ μ
λ ₯ν΄μ£ΌμΈμ.");
}
}
}
}
// λ©μΈλ©μλκ° ν¬ν¨λμ΄ μλ ν΄λμ€λ‘ μ¬μ©μκ° μ€νμ νκ² λ ν΄λμ€
package lottery;
public class Main {
public static void main(String[] args) {
// νμμΈμ¬ λ° νμκ°μ
μ§ν μ¬λΆ
Membership m = Membership.getInstance();
m.membershipGuide();
// νμκ°μ
μ νλ€.
// λ‘λλ₯Ό ꡬ맀
Purchase p = Purchase.getInstance();
// λ‘λ ꡬ맀 μ¬λΆλ₯Ό λ¬»κ³ λ‘λλ₯Ό ꡬ맀νλ€.
p.purchaseQuestion();
// λ‘λ μΆμ²¨ λ‘λ©
Loading l = new Loading();
l.loading();
// λ‘λ λ²νΈλ₯Ό μΆμ²¨νλ€.
Lottery lt = new Lottery();
// λλ€μΌλ‘ λ‘λ λ²νΈλ₯Ό μμ±νλ€.
lt.randomLotteryNum();
// λΉμ²¨λ λ‘λ λ²νΈλ₯Ό μΆλ ₯νλ€.
lt.lotteryNum();
// λΉμ²¨ κ²°κ³Όλ₯Ό μΆλ ₯νλ€.
lt.result();
}
}
(1)
(2)
μ²μ ν΄λ³΄λ νλ‘μ νΈμΈ λ§νΌ μμ¬μ λ§μλ° κ·Έ μμ¬λ§νΌ λ°λΌ μ£Όμ§ μλ μ μ€λ ₯μ λ§μ΄ λ΅λ΅ν¨μ λκΌμ΅λλ€. λΉκΉλ»μ©ν νλ‘μ νΈλ μλμ§λ§ νλλΆν° μ΄κΉμ§ κΈ°ννκ³ μ μνλ κ³Όμ μ κ²ͺκ³ λλ μ°Έ μμ€νκ² λκ»΄μ§λ νλ‘μ νΈμ λλ€. μ μμ νλ κ³Όμ μ΄ μ½μ§λ§μ μμμ§λ§ 차곑차곑 μμκ° μ§μλ€μ΄ κΈ°λκ° λκ³ κ·Έ μ§μλ€μ ν΅ν΄μ λ λμ κ²°κ³Όλ¬Όλ€μ λ§λ€μ΄κ° λ λ€μ΄ μ€λ μΌλ‘ λ€κ°μ΅λλ€.
μ λ³΄κ³ κ°λλ€!!