자바 키오스크 코드 - jaba kioseukeu kodeu

프로젝트 주제

: 객체 이용한 “ 피자가게 키오스크 주문 프로그램 ” 만들기.

< 메인 클래스 >

package **main;** import employee.Emp; import kiosk.Kiosk; import order.Order; public class Main { public static Emp emp = new Emp("아이유 : "); ** // ✨클래스 변수 :** public static void main(String[] args) { System.out.println("===== 피자가게 ====="); //직원이 인사 emp.saywelcome(); //키오스크 사용하여, 주문 내용 얻기 Kiosk kiosk = new Kiosk(); Order order = kiosk.useKiosk();//타입이 Order 타입 kiosk.calc(order); // **어려웠던 부분3️⃣ : total 가격 시간 나오게 함!** System.out.println(order); } } 출력결과=================================================== ===== 피자가게 ===== 아이유 : 환영합니다~^^ 주문은 키오스크에서 진행해주세요 포장하시겠습니까? y ====== 도우 ====== 1. 일반 도우 2. 치즈 크러스트 3. 골드 4. 바이트 5. 리치골드 2 ====== 토핑 ====== 1. 콤비네이션 2. 페페로니 3. 치즈 4. 포테이토 5. 불고기 6. 고구마 7. 쉬림프 1 ====== 사이드 ====== 1. 스파게티 2. 감자튀김 3.3. 사이드 없음 2 ====== 음료 ====== 1. 사이다 2. 콜라 3. 환타 4. 음료 없음 2 Order [isTakeOut=true, dough=2, topping=1, side=2, drink=2, price=12000, time=11]

< employee 클래스 >

package employee; import main.Main; public class Emp { public Emp(String nick) { this.nick = nick; } private String nick; public void saywelcome() { System.out.println( nick +"환영합니다~^^ 주문은 키오스크에서 진행해주세요"); } }

< 키오스크 클래스>

package **kiosk**; import java.util.Scanner; import menu.Menu; import menu.dough.Bite; import menu.dough.Cheese; import menu.dough.Gold; import menu.dough.Normal; import menu.dough.RichGold; import menu.drink.Coke; import menu.drink.Fanta; import menu.drink.Sprite; import menu.side.Spaghetti; import menu.side.Wing; import menu.topping.Potato; import menu.topping.Shirimp; import order.Order; public class Kiosk { //사용자의 동작에 대해서 만든 클래스 private Scanner sc = new Scanner(System.in); //주문 쭉 받기 public Order useKiosk() { boolean isTakeOut = checkTakeOut(); int dough = selectDough(); int topping = selectTopping(); int side = selectSide(); int drink = selectDrink(); int price = 0; int time = 0; Order order = new Order(isTakeOut,dough,topping, side, drink, price, time); return order; } **//비용, 시간 계산하기 : 어려웠던 부분 1️⃣** public void calc(Order o){ // 도우 선택지에 따른 가격, 시간 구하고 ,,, 주문 내역서에 더하기 calcDough(o); // 토핑 선택지에 따른 가격, 시간 구하고 ,,, 주문 내역서에 더하기 calcTopping(o); // 사이드 선택지에 따른 가격, 시간 구하고 ,,, 주문 내역서에 더하기 calcSide(o); // 음료 선택지에 따른 가격, 시간 구하고 ,,, 주문 내역서에 더하기 calcDrink(o); } private void calcDrink(Order o) { int drink = o.getDrink(); if( drink == 1) { Menu m = new Coke(); **o.addPrice(m.getPrice()); o.addTime(m.getTime()); //어려웠던 부분2️⃣ : get~ ()에 인자값 대입!!** //o.calc(new Normal()); 한 줄로 처리할 수 있음!!!!! }else if( drink == 2) { Menu m =new Sprite(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if( drink == 3) { Menu m =new Fanta(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); } } private void calcSide(Order o) { int side = o.getSide(); if( side == 1) { Menu m = new menu.side.Potato(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if( side == 2) { Menu m = new Spaghetti(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if( side == 3) { Menu m = new Wing(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); } } private void calcTopping(Order o) { int topping = o.getTopping(); if(topping == 1) { Menu m = new menu.topping.Cheese(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if(topping == 2) { Menu m =new Potato(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if(topping == 3) { Menu m =new Shirimp(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); } } private void calcDough(Order o) { int dough = o.getDough(); if(dough == 1) { Menu m =new Normal(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if(dough == 2) { Menu m =new Cheese(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if(dough == 3) { Menu m =new Gold(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if(dough == 4) { Menu m =new Bite(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); }else if(dough == 5) { Menu m =new RichGold(); o.addPrice(m.getPrice()); o.addTime(m.getTime()); } } //포장여부 묻기 private **boolean** checkTakeOut() { //포장여부(boolean) 물어보고 문자열 입력 후 리턴, **리턴값은 boolean 타입!!** System.out.println("포장하시겠습니까?"); String result = sc.nextLine(); if(result.equalsIgnoreCase("Y")) { return true; }else { return false; } } //도우 선택 private int selectDough() { //선택지 보여주기 System.out.println("====== 도우 ======"); System.out.println("1. 일반 도우"); System.out.println("2. 치즈 크러스트"); System.out.println("3. 골드"); System.out.println("4. 바이트"); System.out.println("5. 리치골드"); String result = sc.nextLine(); return Integer.parseInt(result); // int result = sc.nextInt(); // sc.nextLine(); // 엔터키 제거 } //토핑 선택 private int selectTopping() { System.out.println("====== 토핑 ======"); System.out.println("1. 콤비네이션"); System.out.println("2. 페페로니"); System.out.println("3. 치즈"); System.out.println("4. 포테이토"); System.out.println("5. 불고기"); System.out.println("6. 고구마"); System.out.println("7. 쉬림프"); String result = sc.nextLine(); return Integer.parseInt(result); } //사이드 선택 private int selectSide() { System.out.println("====== 사이드 ======"); System.out.println("1. 스파게티"); System.out.println("2. 감자튀김"); System.out.println("3. 윙"); System.out.println("3. 사이드 없음"); String result = sc.nextLine(); return Integer.parseInt(result); } //음료 선택 private int selectDrink() { System.out.println("====== 음료 ======"); System.out.println("1. 사이다"); System.out.println("2. 콜라"); System.out.println("3. 환타"); System.out.println("4. 음료 없음"); String result = sc.nextLine(); return Integer.parseInt(result); } }

< 메뉴 클래스 >

: menu 클래스를 부모 클래스로 이용!

package **menu;** public class Menu { public Menu(int price, int time) { this.price = price; this.time = time; } private int price; private int time; public int getPrice() { return price; } public int getTime() { return time; } }

: (자식 클래스 중 일부 발췌) menu 클래스를 상속 받아 자식 클래스에서 이용!

package menu.**dough**; import menu.Menu; public class Cheese extends Menu{ public Cheese() { **super(2000,2); // 생성자 만들어준 뒤 부모클래스에 인자값을 대입해줌.** } }

Toplist

최신 우편물

태그