TIL

[2050307 TIL] 키오스크 과제

도원좀비 2025. 3. 7. 21:09

과제가 끝난 날 과제를 새로 받았다....

 

키오스크 프로젝트

kioskLv1.java

더보기
더보기
더보기
더보기
package kioskLv1;

import java.util.Scanner;

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

        while (true) {
            // 버거 메뉴 출력
            System.out.println("[ 버거 메뉴 ]");
            System.out.println("1. ShackBurger   | W 10.6 | 토마토, 양상추, 쉑소스가 토핑된 치즈버거");
            System.out.println("2. WhopperBurger    | W 6.8 | 차원이 다른 크기 와퍼");
            System.out.println("3. Cheeseburger  | W 6.9 | 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거");
            System.out.println("4. BigMac     | W 5.5 | 참깨빵 위에 순쇠고기 패티2장 특별한 소스 양상추");
            System.out.println("0. 종료          | 종료");

            // 사용자로부터 입력 받기
            System.out.print("원하는 메뉴를 선택하세요: ");
            int choice = scanner.nextInt();
            scanner.nextLine();  // nextInt() 후 남은 개행문자 처리

            // 선택한 메뉴에 따라 처리
            switch (choice) {
                case 1:
                    System.out.println("ShackBurger 선택!.");
                    break;
                case 2:
                    System.out.println("WhopperBurger 선택!");
                    break;
                case 3:
                    System.out.println("Cheeseburger 선택!");
                    break;
                case 4:
                    System.out.println("BigMac 선택!");
                    break;
                case 0:
                    System.out.println("프로그램을 종료합니다.");
                    scanner.close();
                    return; // 프로그램 종료
                default:
                    System.out.println("잘못된 선택입니다. 다시 입력하세요.");
            }
        }
    }
}

LV2 (Menu를 리스트를 통해 관리)

MenuItem.java를 통해 필드를 생성하고 리스트에 넣

KioskLv2.java

더보기
더보기
더보기
더보기
package kioskLv2;

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

public class KioskLv2 {
    public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    // 햄버거 메뉴 아이템 생성
    List<MenuItem> menuItems = new ArrayList<>();

        menuItems.add(new MenuItem(1,"ShackBurger", 10.6, "토마토, 양상추, 쉑소스가 토핑된 치즈버거"));
        menuItems.add(new MenuItem(2,"WhopperBurger", 6.8, "차원이 다른 크기 와퍼"));
        menuItems.add(new MenuItem(3,"Cheeseburger", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거"));
        menuItems.add(new MenuItem(4,"BigMac", 5.5, "참깨빵 위에 순쇠고기 패티2장 특별한 소스 양상추"));

        while (true) {
        // 메뉴 출력
        System.out.println("[ 버거 메뉴 ]");
        for (MenuItem item : menuItems) {
            item.display(); // 각 메뉴 항목 출력
        }
        System.out.println("0. 종료");

        // 사용자 입력 받기
        System.out.print("원하는 메뉴를 선택하세요: ");
        int choice = scanner.nextInt();
        scanner.nextLine();  // 개행문자 처리

        // 사용자 선택 처리
        if (choice == 0) {
            System.out.println("프로그램을 종료합니다.");
            scanner.close();
            break; // 프로그램 종료
        }

        if (choice > 0 && choice <= menuItems.size()) {
            MenuItem selectedItem = menuItems.get(choice - 1); // 메뉴 항목 선택
            System.out.println(selectedItem.getName() + " 선택! " + selectedItem.getDescription());
        } else {
            System.out.println("잘못된 선택입니다. 다시 입력하세요.");
        }
    }
}
}

 

MenuItem.java

더보기
더보기
더보기
더보기
package kioskLv2;

public class MenuItem {
    private Integer num;
    private String name;
    private double price;
    private String description;

    public MenuItem(Integer num,String name, double price, String description) {
        this.num = num;
        this.name = name;
        this.price = price;
        this.description = description;
    }

    public Integer getNum() {
        return num;
    }

    public String getName() {
        return name;
    }


    public double getPrice() {
        return price;
    }


    public String getDescription() {
        return description;
    }


    public void display() {
        System.out.println(num +". " + name + " | W " + price + " | " + description);
    }
}

 

 

LV3(제어 클래스 생성)

Kiosk.java클래스로 프로그램 메뉴를 관리하고 입력을 처

KioskLv3.java

더보기
더보기
더보기
더보기
package kioskLv3;

import kioskLv2.MenuItem;

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

public class KioskLv3 {
    public static void main(String[] args) {
        // 햄버거 메뉴 아이템 생성
        List<kioskLv2.MenuItem> menuItems = new ArrayList<>();

        menuItems.add(new kioskLv2.MenuItem(1,"ShackBurger", 10.6, "토마토, 양상추, 쉑소스가 토핑된 치즈버거"));
        menuItems.add(new kioskLv2.MenuItem(2,"WhopperBurger", 6.8, "차원이 다른 크기 와퍼"));
        menuItems.add(new kioskLv2.MenuItem(3,"Cheeseburger", 6.9, "포테이토 번과 비프패티, 치즈가 토핑된 치즈버거"));
        menuItems.add(new kioskLv2.MenuItem(4,"BigMac", 5.5, "참깨빵 위에 순쇠고기 패티2장 특별한 소스 양상추"));

        Kiosk kiosk = new Kiosk(menuItems);
        kiosk.start();

    }
}

 

 

MenuItem.java

더보기
더보기
더보기
더보기
package kioskLv3;

public class MenuItem {
    private Integer num;
    private String name;
    private double price;
    private String description;

    public MenuItem(Integer num,String name, double price, String description) {
        this.num = num;
        this.name = name;
        this.price = price;
        this.description = description;
    }

    public Integer getNum() {
        return num;
    }

    public String getName() {
        return name;
    }


    public double getPrice() {
        return price;
    }


    public String getDescription() {
        return description;
    }


    public void display() {
        System.out.println(num +". " + name + " | W " + price + " | " + description);
    }
}

 

Kiosk.java

더보기
더보기
더보기
더보기
package kioskLv3;

import kioskLv2.MenuItem;

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

public class Kiosk {

    // 햄버거 메뉴 아이템 생성
    List<MenuItem> menuItems = new ArrayList<>();

    public Kiosk(List<MenuItem> menuItems) {
        this.menuItems = menuItems;
    }

    public void start(){
        Scanner scanner = new Scanner(System.in);


     while (true) {
        // 메뉴 출력
        System.out.println("[ 버거 메뉴 ]");
        for (MenuItem item : menuItems) {
            item.display(); // 각 메뉴 항목 출력
        }
        System.out.println("0. 종료");

        // 사용자 입력 받기
        System.out.print("원하는 메뉴를 선택하세요: ");
        int choice = scanner.nextInt();
        scanner.nextLine();  // 개행문자 처리

        // 사용자 선택 처리
        if (choice == 0) {
            System.out.println("프로그램을 종료합니다.");
            break; // 프로그램 종료
        }

        if (choice > 0 && choice <= menuItems.size()) {
            MenuItem selectedItem = menuItems.get(choice - 1); // 메뉴 항목 선택
            System.out.println(selectedItem.getName() + " 선택! " + selectedItem.getDescription());
        } else {
            System.out.println("잘못된 선택입니다. 다시 입력하세요.");
            }
        }
        scanner.close();
    }
}

 

https://github.com/sukh115/Kiosk(키오스크 깃 허브)

 

GitHub - sukh115/Kiosk

Contribute to sukh115/Kiosk development by creating an account on GitHub.

github.com