[Java] List을 활용하여 키오스크 프로그램 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 10. 10. 20:02
Table of Contents
<문제>
List를 활용하여 키오스크 프로그램 만들기 |
--메뉴판-- 1. 햄버거 : 7000 2. 피자 : 15000 3. 음료수 : 2000 4. 과자 : 1000 5. 사탕 : 500 6. 프로그램 종료 메뉴선택 > 1 수량 > 2 => 햄버거 2개 주문 메뉴선택 > 3 수량 > 2 => 음료 2개 주문 -주문 리스트 1. 햄버거 2개 14000원 2. 음료 2개 4000원 총 지불금액 18000 -- 메인메뉴 1. 메뉴추가 | 2. 메뉴출력 | 3. 주문 | 4. 주문리스트 | 5. 종료 |
<방법>
public class Menu {
// 메뉴와 가격을 나타내는 클래스 생성
private String menu;
private int price;
public Menu() { }
public Menu(String menu, int price) {
this.menu = menu;
this.price = price;
}
public String getMenu() {
return menu;
}
public void setMenu(String menu) {
this.menu = menu;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return menu + " : " + price;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class SaleManager {
// menu 클래스를 리스트로 구현
private ArrayList<Menu> item = new ArrayList<>(); //String, int
private ArrayList<Menu> order = new ArrayList<>();
private int totalPrice = 0;
public SaleManager() {
addMenu();
}
public void addMenu() {
item.add(new Menu("햄버거", 7000));
item.add(new Menu("피자", 12000));
item.add(new Menu("음료", 2000));
item.add(new Menu("사탕", 500));
}
// 메뉴 추가 기능
public void add(Scanner scan) {
System.out.print("메뉴명> ");
String menu = scan.next();
System.out.print("가격> ");
int price = scan.nextInt();
Menu m = new Menu(menu,price);
item.add(m);
System.out.println("**** 메뉴 추가 완료 ****");
System.out.println();
}
// 메뉴 리스트
public void printProduct() {
System.out.println("---menu---");
for(int i = 0; i < item.size(); i++) {
System.out.println((i+1)+". "+item.get(i));
}
System.out.println("------------------");
}
// 주문리스트로 구현
public void orderPick(Scanner scan) {
System.out.print("주문 메뉴번호: ");
// 1. 메뉴를 직접 한글로 받는 케이스
// String menu = scan.next(); // 햄버거
// 2. 메뉴를 숫자로 받는 케이스
int pick = scan.nextInt(); // 번호 : index-1
String tmpMenu = item.get(pick-1).getMenu(); // 햄버거
if(tmpMenu == null) {
System.out.println("찾는 메뉴가 없습니다.");
return;
}else {
System.out.print("주문수량: ");
int count = scan.nextInt();
int tmpPrice = item.get(pick-1).getPrice();
totalPrice += (tmpPrice*count);
Menu m = new Menu(tmpMenu, count); // 메뉴와 개수
order.add(m);
System.out.println("["+tmpMenu+"] "+" ("+count+")개"+tmpPrice+"원");
System.out.println("주문이 추가되었습니다.");
}
System.out.println("****************");
}
// 메뉴 추가 기능, 메뉴 생성, 주문 처럼
public void printOrder() {
int sum = 0;
int index = 1;
for(Menu m : order) {
String menu = m.getMenu();
int price = findMenu(menu);
System.out.println(index+". "+m+"개 "+(m.getPrice()*price)+"원");
index++;
}
System.out.println("===================");
System.out.println("Total: "+totalPrice+"원");
System.out.println();
}
public int findMenu(String menu) {
for(Menu m : item) {
if(m.getMenu().equals(menu)) {
return m.getPrice();
}
}
return -1;
}
}
import java.util.Scanner;
public class Generics {
public static void main(String[] args) {
SaleManager sm = new SaleManager();
Scanner scan = new Scanner(System.in);
int menu = -1;
do {
System.out.println("1.메뉴추가 | 2.메뉴출력 | 3.주문 | 4.주문리스트 | 5.종료");
System.out.print("메뉴입력: ");
menu = scan.nextInt();
switch (menu) {
case 1: sm.add(scan); break;
case 2: sm.printProduct(); break;
case 3: sm.orderPick(scan); break;
case 4: sm.printOrder(); break;
case 5: break;
default:
System.out.println("잘못된 입력입니다.");
break;
}
} while (menu != 5);
}
}
[Java] List을 활용하여 키오스크 프로그램 만들기 끝!
(다음 게시물 예고편)
[Java] 단어장 만들기
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!