오늘한일
- 키오스크 과제 완성시키기
- 자바 복습
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Menu menu = new Menu();
while (true) {
System.out.println("\"SHAKESHACK BURGER에 오신걸 환영합니다.\"");
System.out.println("아래 메뉴판을 보시고 메뉴를 골라 입력해주세요.");
System.out.println();
System.out.println("[ SHAKESHACK MENU ]");
System.out.println("1. Burgers | 앵거스 비프 통살을 다져 만든 버거");
System.out.println("2. Forzen Custard | 매장에서 신선하게 만드는 아이스크림");
System.out.println("3. Drinks | 매장에서 직접 만드는 음료");
System.out.println("4. Beer | 뉴욕 브루클린 브루어리에서 양조한 맥주");
System.out.println();
System.out.println("[ ORDER MENU ]");
System.out.println("5. Order | 장바구니를 확인 후 주문 합니다.");
System.out.println("6. Cancel | 진행중인 주문을 취소 합니다.");
System.out.print("메뉴선택 : ");
int choice = sc.nextInt();
sc.nextLine();
switch (choice) {
case 1:
menu.showBurger();
break;
case 2:
menu.showFrozenCustard();
break;
case 3:
menu.showDrink();
break;
case 4:
menu.showBeer();
break;
case 5:
menu.orderComplete();
break;
case 6:
menu.Cancel();
break;
default:
System.out.println("잘못된 입력 입니다.");
break;
}
}
}
}
메뉴판을 출력하고 선택하는 부분
import java.util.ArrayList;
import java.util.Scanner;
public class Menu {
ArrayList<Products> burger = new ArrayList<>();
ArrayList<Products> frozenCustard = new ArrayList<>();
ArrayList<Products> drink = new ArrayList<>();
ArrayList<Products> beer = new ArrayList<>();
Order order = new Order();
Scanner sc = new Scanner(System.in);
public Menu() { // 각각의 리스트에 이름, 가격, 설명 추가
burger.add(new Products("ShackBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거"));
burger.add(new Products("SmokeShack", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거"));
burger.add(new Products("Shroom Burger", 9.4, "몬스터 치즈와 체다 치즈로 속을 채운 베지테리안 버거"));
burger.add(new Products("Cheeseburger ", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거"));
burger.add(new Products("Hamburger", 5.4, "비프패티를 기반으로 야채가 들어간 기본버거"));
frozenCustard.add(new Products("Shake", 5.9, "바닐라, 초콜릿, 솔티드, 카라멜, 블랙&화이트, 스트로베리, 피넛버터, 커피"));
frozenCustard.add(new Products("Shake of the Week", 6.5, "특별한 커스터드 플레이버"));
frozenCustard.add(new Products("Red Bean Shake", 6.5, "신선한 커스터드와 함께 우유와 레드빈이 플레이된 시즈널 쉐이크"));
frozenCustard.add(new Products("Floats", 5.9, "루트 비어, 퍼플 카우, 크림시클"));
drink.add(new Products("Shake-mode Lemonade", 3.9, "매장에서 직접 만드는 상큼한 레몬에이드"));
drink.add(new Products("Fresh Brewed Iced Tea", 3.4, "직접 유기농 홍차를 우려낸 아이스티"));
drink.add(new Products("Fifty/Fifty", 3.5, "레몬에이드와 아이스티의 만남"));
drink.add(new Products("Fountain Soda", 2.7, "코카콜라, 코카콜라 제로, 스프라이트, 환타 오렌지, 환타 그레이프"));
beer.add(new Products("ShackMeister Ale", 9.8, "쉐이크쉑 버거를 위해 뉴욕 브루클린 브루어리에서 특별히 양조한 에일 맥주"));
beer.add(new Products("Magpie Brewing Co.", 6.8, "Pale Ale, Draft"));
}
public void showBurger() {
System.out.println();
System.out.println("[ Burgers Menu ]");
for (int i = 0; i < burger.size(); i++) {
Products menu = burger.get(i);
System.out.println((i + 1) + ". " + menu.getName() + " | " + menu.getPrice() + " | " + menu.getDescription());
}
System.out.print("상품선택 : ");
int burgerChoice = sc.nextInt();
if(burgerChoice<=burger.size()) {
Products select = burger.get(burgerChoice-1);
System.out.println("\n" + "\"" + select.getName() + " | W" + select.getPrice()
+ " | " + select.getDescription() + "\""+"\n");
addOrder(select);
}
else{
System.out.println("잘못된 입력 입니다.");
}
}
public void showFrozenCustard() {
System.out.println();
System.out.println("[ FrozenCustards Menu ]");
for (int i = 0; i < frozenCustard.size(); i++) {
Products menu = frozenCustard.get(i);
System.out.println((i + 1) + ". " + menu.getName() + " | " + menu.getPrice() + " | " + menu.getDescription());
}
System.out.print("상품선택 : ");
int frozenCustardChoice = sc.nextInt();
if(frozenCustardChoice<=frozenCustard.size()) {
Products select = frozenCustard.get(frozenCustardChoice-1);
System.out.println();
System.out.println("\"" + select.getName() + " | W" + select.getPrice()
+ " | " + select.getDescription() + "\"");
System.out.println();
addOrder(select);
}
else{
System.out.println("잘못된 입력 입니다.");
}
}
public void showDrink() {
System.out.println();
System.out.println("[ Drinks Menu ]");
for (int i = 0; i < drink.size(); i++) {
Products menu = drink.get(i);
System.out.println((i + 1) + ". " + menu.getName() + " | " + menu.getPrice() + " | " + menu.getDescription());
}
System.out.print("상품선택 : ");
int drinkChoice = sc.nextInt();
if(drinkChoice<=drink.size()) {
Products select = drink.get(drinkChoice-1);
System.out.println("\n" + "\"" + select.getName() + " | W" + select.getPrice()
+ " | " + select.getDescription() + "\""+"\n");
addOrder(select);
}
else{
System.out.println("잘못된 입력 입니다.");
}
}
public void showBeer() {
System.out.println();
System.out.println("[ Beers Menu ]");
for (int i = 0; i < beer.size(); i++) {
Products menu = beer.get(i);
System.out.println((i + 1) + ". " + menu.getName() + " | " + menu.getPrice() + " | " + menu.getDescription());
}
System.out.print("상품선택 : ");
int beerChoice = sc.nextInt();
if(beerChoice<=beer.size()) {
Products select = beer.get(beerChoice - 1);
System.out.println("\n" + "\"" + select.getName() + " | W" + select.getPrice()
+ " | " + select.getDescription() + "\""+"\n");
addOrder(select);
}
else{
System.out.println("잘못된 입력 입니다.");
}
}
public void addOrder(Products add){
System.out.println("위 메뉴를 장바구니에 추가하시겠습니까?");
System.out.println("1. 확인 2. 취소");
int check = sc.nextInt();
sc.nextLine();
if (check == 1) {
order.addBasket(add);
System.out.println(add.getName() + " 가 장바구니에 추가되었습니다.");
System.out.println();
} else if (check == 2) {
System.out.println("장바구니 추가가 취소되었습니다.");
System.out.println();
} else System.out.println("숫자를 잘못 입력하였습니다.");
}
public void orderComplete(){
System.out.println("아래와 같이 주문 하시겠습니까?");
System.out.println();
System.out.println("[ Orders ]");
for (int i = 0; i < order.getbasket().size(); i++) {
Products menu = order.getbasket().get(i);
System.out.println((i + 1) + ". " + menu.getName() + " | " + menu.getPrice() + " | " + menu.getDescription());
}
System.out.println();
System.out.println("[ Total ]");
System.out.println("W "+order.totalPrice());
System.out.println();
System.out.println("1. 주문 2. 메뉴판");
int orderCheck = sc.nextInt();
if(orderCheck==1){
int orderNumber = order.getOrderNumber();
System.out.println("주문이 완료되었습니다!");
System.out.println();
System.out.println("대기번호는 [ " + orderNumber + " ] 번 입니다."); // 대기번호 출력
System.out.println("(3초 후 메뉴판으로 돌아갑니다.)");
System.out.println();
order.ClearBasket();
order.PlusOrderNumber(orderNumber);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println(e);
}
}
else {
System.out.println("메뉴판으로 돌아갑니다");
}
}
public void Cancel(){
System.out.println();
System.out.println("진행하던 주문을 취소하시겠습니까?");
System.out.println("1. 확인 2. 취소 ");
int cancelNum = sc.nextInt();
sc.nextLine();
if (cancelNum == 1) {
order.ClearBasket();
System.out.println("진행하던 주문이 취소되었습니다.");
System.out.println();
} else if (cancelNum == 2) {
System.out.println("메뉴판으로 돌아갑니다.");
}
}
}
각 리스트에 메뉴를 저장하고 여러동작을 수행하는 부분
import java.lang.reflect.Array;
import java.util.ArrayList;
public class Order {
private ArrayList<Products> basket;
private int orderNumber;
public Order() {
basket = new ArrayList<>();
orderNumber = 1;
}
public ArrayList<Products> getbasket() {
return basket;
}
public int getOrderNumber() {
return orderNumber;
}
public void PlusOrderNumber(int orderNumber) {
this.orderNumber = orderNumber+1;
}
public void addBasket(Products menu) {
basket.add(menu);
}
public void ClearBasket() {
basket.clear();
}
public double totalPrice() {
double total = 0.0;
for (Products menu : basket) {
total += menu.getPrice();
}
return total;
}
}
주문한 메뉴 가격들을 basket 리스트에 저장하고 삭제하고 총합하는 부분
public class Products{
private String name;
private double price;
private String description;
public Products(String name, double price, String description) {
this.name = name;
this.price = price;
this.description = description;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public String getDescription() {
return description;
}
}
매개변수에 값을 전달하기 위해서는 순서와 타입을 맞춰 값을 넣어줘야한다.
느낀점
자바에대해 좀더 알게 되었고 좀 더 코드를 보완해야겠다.그리고 주석을 한줄씩 써봐야겠다.