JAVA/sparta
[sparta lecture] - 개인과제 (키오스크) 2일차
nam_ji
2024. 1. 5. 14:24
스파르타코딩클럽 개인 과제 (키오스크) 2일차
- 필수 요구 사항은 구현해서 이제부터 코드를 간소화 해보려고 합니다.
- 구현된 코드는
-
더보기메뉴 클래스
public class Menu { String[] mainMenu = {"Buggers | 앵거스 비프 통살을 다져만든 버거", "Frozen Custard | 매장에서 신선하게 만드는 아이스크림", "Drinks | 매장에서 직접 만드는 음료", }; }
-
더보기상품 클래스
public class Product extends Menu { String[] buggersInfo = { "ShackBurger | W 6.9 | 토마토, 양상추, 쉑소스가 토핑된 치즈버거", "SmokeShack | W 8.9 | 베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거", "Shroom Burger | W 9.4 | 몬스터 치즈와 체다 치즈로 속을 채운 베지테리안 버거", "Cheeseburger | W 6.9 | 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거", "Hamburger | W 5.4 | 비프패티를 기반으로 야채가 들어간 기본버거" }; String[] iceCreamInfo = { "GODIVA DARK CRUNCH | W 1.9 | 진한 고디바 초콜릿 아이스크림에 고디바 카라멜 초콜릿 리본과 크리스피 펄, 브라우니가 쏘옥!", "Chocolate Mousse | W 2.9 | 초콜릿 칩이 들어있는 진한 초콜릿 아이스크림", "Puss In Boots | W 3.9 | 밀크 초콜릿, 다크 초콜릿, 화이트 무스 세 가지 아이스크림에 달콤 바삭한 초코볼이 더해진 아이스크림", "Red Bean Ice Cream | W 4.9 | 달콤한 팥 & 슈크림 아이스크림에 통단팥과 버터 쿠키가 쏙쏙!", "Hazelnut Coffee Ice Cream | W 5.9 | 다크하고 싶은 초콜릿, 헤이즐넛 풍미가 가득한 커피 아이스크림에 헤이즐넛과 초콜릿칩이 쏙쏙!" }; String[] coffeeInfo = { "Nitro Vanilla Cream | W 6.9 | 부드러운 목넘김의 나이트로 커피와 바닐라 크림의 매력을 한번에 느껴보세요!", "Nitro Cold Brew | W 7.9 | 나이트로 커피 정통의 캐스케이딩과 부드러운 콜드 크레마! " + "부드러운 목 넘김과 완벽한 밸런스에 커피 본연의 단맛을 경험할 수 있습니다", "Dolce Cold Brew | W 8.9 | 무더운 여름철, 동남아 휴가지에서 즐기는 " + "커피를 떠오르게 하는 스타벅스 음료의 베스트 x 베스트 조합인 돌체 콜드 브루를 만나보세요!", "Reserve Nitro | W 9.9 | 나이트로 커피 정통의 캐스케이딩과 부드러운 콜드 크레마! " + "부드러운 목 넘김과 완벽한 밸런스에 커피 본연의 단맛을 경험할 수 있습니다", "Reserve Cold Brew | W 10.9 | 리저브 커피 마스터의 정성으로 차갑게 추출한 깊고 부드러운 풍미의 커피" }; }
-
더보기주문 클래스
import java.util.ArrayList; public class Order { String[] menuOrder = { "Order | 장바구니를 확인 후 주문합니다.", "Cancel | 진행중인 주문을 취소합니다.", "KIOSK End | 키오스크를 종료합니다." }; String[] menuCheck = { "확인", "취소" }; ArrayList<String> buggersMenu = new ArrayList<>(); ArrayList<String> iceCreamMenu = new ArrayList<>(); ArrayList<String> coffeeMenu = new ArrayList<>(); }
-
더보기메인 클래스
import java.util.Scanner; public class Main { static Menu menu = new Menu(); static Product product = new Product(); static Order order = new Order(); public static void main(String[] args) throws InterruptedException { Scanner in = new Scanner(System.in); boolean kioskRun = true; while (kioskRun) { int buggerArr; int iceCreamArr; int coffeeArr; System.out.println( "\"SHAKESHACKE에 오신걸 환영합니다.\"\n" + "아래 메뉴판을 보시고 메뉴를 골라 입력해주세요.\n\n" + "[ SHAKESHACK MENU ]" ); for (int i = 0; i < menu.mainMenu.length; i++) { System.out.println( (i+1) + ". " + menu.mainMenu[i] ); } System.out.println( "\n[ ORDER MENU ]" ); for (int i = 0; i < order.menuOrder.length; i++) { System.out.println( (menu.mainMenu.length + i + 1) + ". " + order.menuOrder[i] ); } int menuSelect = in.nextInt(); switch (menuSelect) { case 1: System.out.println( "\n \"SHAKESHACK BURGER 에 오신걸 환영합니다.\"\n" + "아래 상품메뉴판을 보시고 상품을 골라 입력해주세요.\n\n" + "[ Burgers MENU ]"); for (int i = 0; i < product.buggersInfo.length; i++) { System.out.println( (i + 1) + ". " + product.buggersInfo[i] ); } int buggerSelect = in.nextInt(); switch (buggerSelect) { case 1: System.out.println( "\n" + "\"" + product.buggersInfo[buggerSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); int menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : buggerArr = product.buggersInfo[buggerSelect - 1].indexOf("|"); System.out.println(); order.buggersMenu.add( product.buggersInfo[buggerSelect - 1] ); System.out.println( product.buggersInfo[buggerSelect - 1].substring(0, buggerArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 2 : System.out.println( "\n" + "\"" + product.buggersInfo[buggerSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : buggerArr = product.buggersInfo[buggerSelect - 1].indexOf("|"); System.out.println(); order.buggersMenu.add( product.buggersInfo[buggerSelect - 1] ); System.out.println( product.buggersInfo[buggerSelect-1].substring(0, buggerArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 3 : System.out.println( "\n" + "\"" + product.buggersInfo[buggerSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : buggerArr = product.buggersInfo[buggerSelect - 1].indexOf("|"); System.out.println(); order.buggersMenu.add( product.buggersInfo[buggerSelect - 1] ); System.out.println( product.buggersInfo[buggerSelect-1].substring(0, buggerArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 4 : System.out.println( "\n" + "\"" + product.buggersInfo[buggerSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : buggerArr = product.buggersInfo[buggerSelect - 1].indexOf("|"); System.out.println(); order.buggersMenu.add( product.buggersInfo[buggerSelect - 1] ); System.out.println( product.buggersInfo[buggerSelect-1].substring(0, buggerArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 5 : System.out.println( "\n" + "\"" + product.buggersInfo[buggerSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : buggerArr = product.buggersInfo[buggerSelect - 1].indexOf("|"); System.out.println(); order.buggersMenu.add( product.buggersInfo[buggerSelect - 1] ); System.out.println( product.buggersInfo[buggerSelect-1].substring(0, buggerArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; } break; case 2 : System.out.println( "\n \"SHAKESHACK ICECREAM 에 오신걸 환영합니다.\"\n" + "아래 상품메뉴판을 보시고 상품을 골라 입력해주세요.\n\n" + "[ ICECREAM MENU ]"); for (int i = 0; i < product.iceCreamInfo.length; i++) { System.out.println( (i + 1) + ". " + product.iceCreamInfo[i] ); } int iceCreamsSelect = in.nextInt(); switch (iceCreamsSelect) { case 1: System.out.println( "\n" + "\"" + product.iceCreamInfo[iceCreamsSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); int menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : iceCreamArr = product.iceCreamInfo[iceCreamsSelect - 1].indexOf("|"); System.out.println(); order.iceCreamMenu.add( product.iceCreamInfo[iceCreamsSelect - 1] ); System.out.println( product.iceCreamInfo[iceCreamsSelect-1].substring(0, iceCreamArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 2 : System.out.println( "\n" + "\"" + product.iceCreamInfo[iceCreamsSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : iceCreamArr = product.iceCreamInfo[iceCreamsSelect - 1].indexOf("|"); System.out.println(); order.iceCreamMenu.add( product.iceCreamInfo[iceCreamsSelect - 1] ); System.out.println( product.iceCreamInfo[iceCreamsSelect-1].substring(0, iceCreamArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 3 : System.out.println( "\n" + "\"" + product.iceCreamInfo[iceCreamsSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : iceCreamArr = product.iceCreamInfo[iceCreamsSelect - 1].indexOf("|"); System.out.println(); order.iceCreamMenu.add( product.iceCreamInfo[iceCreamsSelect - 1] ); System.out.println( product.iceCreamInfo[iceCreamsSelect-1].substring(0, iceCreamArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 4 : System.out.println( "\n" + "\"" + product.iceCreamInfo[iceCreamsSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : iceCreamArr = product.iceCreamInfo[iceCreamsSelect - 1].indexOf("|"); System.out.println(); order.iceCreamMenu.add( product.iceCreamInfo[iceCreamsSelect - 1] ); System.out.println( product.iceCreamInfo[iceCreamsSelect-1].substring(0, iceCreamArr - 1)+ "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 5 : System.out.println( "\n" + "\"" + product.iceCreamInfo[iceCreamsSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : iceCreamArr = product.iceCreamInfo[iceCreamsSelect - 1].indexOf("|"); System.out.println(); order.iceCreamMenu.add( product.iceCreamInfo[iceCreamsSelect - 1] ); System.out.println( product.iceCreamInfo[iceCreamsSelect-1].substring(0, iceCreamArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; } break; case 3 : System.out.println( "\n \"SHAKESHACK COFFEE 에 오신걸 환영합니다.\"\n" + "아래 상품메뉴판을 보시고 상품을 골라 입력해주세요.\n\n" + "[ Iscreams MENU ]"); for (int i = 0; i < product.coffeeInfo.length; i++) { System.out.println( (i + 1) + ". " + product.coffeeInfo[i] ); } int coffeeSelect = in.nextInt(); switch (coffeeSelect) { case 1: System.out.println( "\n" + "\"" + product.coffeeInfo[coffeeSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); int menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : coffeeArr = product.coffeeInfo[coffeeSelect - 1].indexOf("|"); System.out.println(); order.coffeeMenu.add( product.coffeeInfo[coffeeSelect - 1] ); System.out.println( product.coffeeInfo[coffeeSelect-1].substring(0, coffeeArr) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 2 : System.out.println( "\n" + "\"" + product.coffeeInfo[coffeeSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : coffeeArr = product.coffeeInfo[coffeeSelect - 1].indexOf("|"); System.out.println(); order.coffeeMenu.add( product.coffeeInfo[coffeeSelect - 1] ); System.out.println( product.coffeeInfo[coffeeSelect-1].substring(0, coffeeArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 3 : System.out.println( "\n" + "\"" + product.coffeeInfo[coffeeSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : coffeeArr = product.coffeeInfo[coffeeSelect - 1].indexOf("|"); System.out.println(); order.coffeeMenu.add( product.coffeeInfo[coffeeSelect - 1] ); System.out.println( product.coffeeInfo[coffeeSelect-1].substring(0, coffeeArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 4 : System.out.println( "\n" + "\"" + product.coffeeInfo[coffeeSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : coffeeArr = product.coffeeInfo[coffeeSelect - 1].indexOf("|"); System.out.println(); order.coffeeMenu.add( product.coffeeInfo[coffeeSelect - 1] ); System.out.println( product.coffeeInfo[coffeeSelect-1].substring(0, coffeeArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; case 5 : System.out.println( "\n" + "\"" + product.coffeeInfo[coffeeSelect - 1] + "\"" + "\n위 메뉴를 장바구니에 추가하시겠습니까?" ); for (int i = 0; i < order.menuCheck.length; i++) { System.out.print( (i + 1) + ". " + order.menuCheck[i] + " " ); }; System.out.println(); menuCheckSelect = in.nextInt(); switch (menuCheckSelect) { case 1 : coffeeArr = product.coffeeInfo[coffeeSelect - 1].indexOf("|"); System.out.println(); order.coffeeMenu.add( product.coffeeInfo[coffeeSelect - 1] ); System.out.println( product.coffeeInfo[coffeeSelect-1].substring(0, coffeeArr - 1) + "가 장바구니에 추가되었습니다."); System.out.println(); break; case 2 : System.out.println("\n주문이 취소 되었습니다.\n"); break; } break; } break; case 4 : double TotalPrice = 0; if (order.buggersMenu.isEmpty() && order.iceCreamMenu.isEmpty() && order.coffeeMenu.isEmpty()) { System.out.println("\n장바구니에 아무것도 없습니다. 메뉴판으로 돌아가겠습니다."); Thread.sleep(1000); break; } System.out.println( "\n아래와 같이 주문 하시겠습니까?\n\n" + "[ Orders ]" ); if (!order.buggersMenu.isEmpty()) { for (String buggerStr : order.buggersMenu) { System.out.println(buggerStr); } for (int i = 0; i < order.buggersMenu.size(); i++) { TotalPrice += Double.parseDouble(order.buggersMenu.get(i).replaceAll("[^0-9.]", "")); } } if (!order.iceCreamMenu.isEmpty()) { for (String iceCreamStr : order.iceCreamMenu) { System.out.println(iceCreamStr); } for (int i = 0; i < order.iceCreamMenu.size(); i++) { TotalPrice += Double.parseDouble(order.iceCreamMenu.get(i).replaceAll("[^0-9.]", "")); } } if (!order.coffeeMenu.isEmpty()) { for (String coffeeStr : order.coffeeMenu) { System.out.println(coffeeStr); } for (int i = 0; i < order.coffeeMenu.size(); i++) { TotalPrice += Double.parseDouble(order.coffeeMenu.get(i).replaceAll("[^0-9.]", "")); } } System.out.println( "\n[ Total ]" + "\n" + "W " + String.format("%.1f", TotalPrice) + "\n\n1. 주문 2. 메뉴판" ); int orderSelect = in.nextInt(); switch (orderSelect) { case 1 : System.out.println( "주문이 완료되었습니다!" + "대기번호는 [ 1 ]번 입니다.\n" ); order.buggersMenu.clear(); order.iceCreamMenu.clear(); order.coffeeMenu.clear(); Thread.sleep(1500); break; } break; case 5 : System.out.println( "\n진행하던 주문을 취소하시겠습니까?\n" + "1. 확인 2. 취소" ); int orderCancelSelect = in.nextInt(); switch (orderCancelSelect) { case 1 : if (order.buggersMenu.isEmpty() && order.iceCreamMenu.isEmpty() && order.coffeeMenu.isEmpty()) { System.out.println("\n진행 중이던 주문이 없습니다.\n"); } else { System.out.println( "\n진행하던 주문이 취소되었습니다.\n" ); order.buggersMenu.clear(); order.iceCreamMenu.clear(); order.coffeeMenu.clear(); Thread.sleep(1000); } break; case 2 : System.out.println( "\n취소되었습니다. 메뉴판으로 돌아가겠습니다.\n" ); break; } break; case 6 : System.out.println("키오스크를 종료합니다."); kioskRun = false; break; } } } }