내일배움캠프/TIL

[JAVA] 키오스크 트레블 슈팅 Lv1~Lv2

cork-7 2025. 1. 16. 21:32

 Lv1 기본적은 키오스크 프로그래밍

package esential;

import java.util.Scanner;

public class main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("1. ShackBurger   | W 6.9 | 토마토, 양상추, 쉑소스가 토핑된 치즈버거");
        System.out.println("2. SmokeShack    | W 8.9 | 베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거");
        System.out.println("3. Cheeseburger  | W 6.9 | 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거");
        System.out.println("4. Hamburger     | W 5.4 | 비프패티를 기반으로 야채가 들어간 기본버거");
        System.out.println("0. 종료           |  종료  |");

        int selectNumber;
        selectNumber = sc.nextInt();

        switch (selectNumber) {
            case (1) :
                System.out.println("ShackBurger   | W 6.9입니다");
                break;
            case (2) :
                System.out.println("SmokeShack    | W 8.9입니다");
                break;
            case (3) :
                System.out.println("Cheeseburger  | W 6.9입니다");
                break;
            case (4) :
                System.out.println("Hamburger     | W 5.4입니다");
                break;
            case (0) :
                System.out.println("종료합니다");
                break;
        }
    }
}

- Main클래스 하나만 만들어 println을 통해 버거 목록을 출력하고 스캐너로 입력을 받아 입력에 따른 출력값 출력

 

Lv2 객체 지향 설계를 적용해 햄버거 메뉴 클래스로 관리

package esential.Level2;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 각 메뉴들을 설정
        MenuItem menu1 = new MenuItem("ShackBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거");
        MenuItem menu2 = new MenuItem("SmokeShack ", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거");
        MenuItem menu3 = new MenuItem("Cheeseburger", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거");
        MenuItem menu4 = new MenuItem("Hamburger", 5.4, "비프패티를 기반으로 야채가 들어간 기본버거");


        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("-----메뉴-----");
            System.out.println("1. " + menu1.getMenuName() + " | " + menu1.getMenuPrice() + " | " + menu1.getMenuComent());
            System.out.println("2. " + menu2.getMenuName() + " | " + menu2.getMenuPrice() + " | " + menu2.getMenuComent());
            System.out.println("3. " + menu3.getMenuName() + " | " + menu3.getMenuPrice() + " | " + menu3.getMenuComent());
            System.out.println("4. " + menu4.getMenuName() + " | " + menu4.getMenuPrice() + " | " + menu4.getMenuComent());
            System.out.println("5. 종료");
            System.out.println("숫자를 입력하세요");

            int num = sc.nextInt();

            if (num == 1) {
                System.out.println("1. " + menu1.getMenuName() + " 주문 완료 됬습니다. " + "W" + menu1.getMenuPrice());
                break;
            } else if (num == 2) {
                System.out.println("2. " + menu2.getMenuName() + " 주문 완료 됬습니다. " + "W" + menu2.getMenuPrice());
                break;
            } else if (num == 3) {
                System.out.println("3. " + menu3.getMenuName() + " 주문 완료 됬습니다. " + "W" + menu3.getMenuPrice());
                break;
            } else if (num == 4) {
                System.out.println("4. " + menu4.getMenuName() + " 주문 완료 됬습니다. " + "W" + menu4.getMenuPrice());
                break;
            } else if (num == 5) {
                System.out.println("프로그램을 종료합니다.");
                break;
            } else {
                System.out.println("잘못된 입력입니다. 정확한 숫자를 입력해주세요.");
            }
        }
    }
}

<Main>

- MenuItem의 생성자를 토대로 각각의 객체 생성

- getter를 사용해 출력

[희망사항]

- 생성자로 데이터를 넣는것도 단일화를 하고 싶으나 못찾았음

-  객체의 데이터를 이름, 가격, 정보로 각각 가져오는데 한번에 가져오게 하고 싶음

 

package esential.Level2;

import java.util.ArrayList;
import java.util.List;

public class MenuItem {
    private List<MenuItem> menu = new ArrayList<>();

    // Main에서 입력받은 메뉴들을 어레이에 저장
    // getter를 만들어 main에 출력되게 설정
    String menuName; // 메뉴이름
    String menuComent; // 메뉴설명
    double menuPrice; // 메뉴 가격
    

    public MenuItem(String menuName, double menuPrice, String menuComent) {
        this.menuName = menuName;
        this.menuPrice = menuPrice;
        this.menuComent = menuComent;
    }

    public String getMenuName() {
        return menuName;
    }

    public double getMenuPrice() {
        return menuPrice;
    }

    public String getMenuComent() {
        return menuComent;
    }
    
    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }

    public void setMenuPrice(double menuPrice) {
        this.menuPrice = menuPrice;
    }

    public void setMenuComent(String menuComent) {
        this.menuComent = menuComent;
    }
}

<MenuItem>

-  버거 목록을 생성자로 변경

- getter로 데이터를 조회