[Java] List를 활용하여 음식 주문 프로그램 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 10. 9. 18:50
Table of Contents
<문제>
음식 주문 프로그램 만들기 |
-- 메뉴판 -- 1. 햄버거 : 7000 2. 피자 : 15000 3. 음료수 : 2000 4. 과자 : 1000 5. 사탕 : 500 6. 프로그램 종료 메뉴선택 > 1 수량 > 2 => 햄버거 2개 금액: 14000원 주문완료 주문종료(0), 프로그램 종료(6) 메뉴선택 > 3 수량 > 2 => 음료 2개 금액: 4000원 주문완료 메뉴선택> 0 -- 주문 확인 1. 햄버거 2개 14000원 2. 음료수 2개 4000원 총 금액 : 18000원 |
<방법>
import java.util.ArrayList;
import java.util.List;
public class FoodManager {
// 멤버변수 ArrayList 메뉴, ArrayList 가격
private List<String> listMenu = new ArrayList<String>();
private List<Integer> listPrice = new ArrayList<Integer>();
private int sum;
private int total;
public FoodManager() {
add();
}
// 메뉴출력 메소드
public void printMenu() {
System.out.println("--메뉴--");
System.out.println("1. 햄버거: 7000 ");
System.out.println("2. 피자: 15000");
System.out.println("3. 음료수: 2000");
System.out.println("4. 과자: 1000 ");
System.out.println("5. 사탕: 500");
System.out.print("메뉴선택 > ");
}
// 기본 메뉴
public void add() {
listMenu.add("햄버거");
listMenu.add("피자");
listMenu.add("음료수");
listMenu.add("과자");
listMenu.add("사탕");
listPrice.add(7000);
listPrice.add(15000);
listPrice.add(2000);
listPrice.add(1000);
listPrice.add(500);
}
public void sale(int menu, int count) {
sum = listPrice.get(menu-1) * count;
total += sum;
System.out.println("==============");
System.out.println("["+listMenu.get(menu-1)+"] "+count+ "개");
System.out.println("금액: " + sum +"원");
System.out.println("====주문 완료====");
System.out.println();
}
public void printResult() {
}
public List<String> getListMenu() {
return listMenu;
}
public void setListMenu(List<String> listMenu) {
this.listMenu = listMenu;
}
public List<Integer> getListPrice() {
return listPrice;
}
public void setListPrice(List<Integer> listPrice) {
this.listPrice = listPrice;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class FoodMenu {
public static void main(String[] args) {
FoodManager fm = new FoodManager();
System.out.println(fm.getListMenu());
System.out.println(fm.getListPrice());
ArrayList<Integer> order = new ArrayList<>();
ArrayList<Integer> count = new ArrayList<>();
Scanner scan = new Scanner(System.in);
int menu = -1;
do {
fm.printMenu(); // 메뉴출럭
menu = scan.nextInt(); // 메뉴입력받기
// 1~5 일반메뉴, 6프로그램종료, 0 메뉴선택 끝
if (menu == 6) {
System.out.println("프로그램 종료");
break;
}
if (menu != 0) {
if (menu < 6) {
System.out.print("수량 > ");
int cnt = scan.nextInt();
order.add(menu);
count.add(cnt);
fm.sale(menu, cnt);
System.out.println("주문종료 (0) , 프로그램종료 (6)");
} else {
System.out.println("잘못된 입력입니다.");
}
}
} while (menu != 0); // 메뉴주문의 종료시점 결정
// 메뉴의 전체 금액을 출력. totalSum
// 피자 3개
// order = 2-1 / count = 3
System.out.println("----주문 확인----");
for (int i = 0; i < order.size(); i++) {
System.out.print((i+1)+". "+fm.getListMenu().get(order.get(i) - 1) + " "); // 피자
System.out.print(count.get(i) + "개 ");
int price = fm.getListPrice().get(order.get(i) - 1);
System.out.println(" " + (price * count.get(i)) + "원");
}
System.out.println("---------------");
System.out.println("총 금액 : " + fm.getTotal() +"원");
scan.close();
}
}
[Java] List를 활용하여 음식 주문 프로그램 만들기 끝!
(다음 게시물 예고편)
[Java] Map을 활용하여 성적표 만들기
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!