|
| 1 | +package week02.advanced; |
| 2 | + |
| 3 | +import java.util.Scanner; |
| 4 | + |
| 5 | +public class Shopping { |
| 6 | + |
| 7 | + public static void main(String[] args) { |
| 8 | + System.out.println("<쇼핑몰 상품과 장바구니 시스템>"); |
| 9 | +// 24단계 (심화): 쇼핑몰 상품과 장바구니 시스템 |
| 10 | +// 문제: |
| 11 | +// 1. Product.java: 상품명(name), 가격(price)을 private 멤버와 Getter로 가집니다. |
| 12 | +// 2. Cart.java: Product 객체 배열(items, 크기 10)과 현재 담긴 개수(count)를 |
| 13 | +// 멤버 변수로 가집니다. |
| 14 | +// addProduct(Product p) 메서드와, 카트의 모든 상품 정보와 총액을 출력하는 displayCart() |
| 15 | +// 메서드를 구현합니다. |
| 16 | +// 3. Shopping.java의 main에서 여러 Product 객체를 만들고, while문을 통해 사용자에게 |
| 17 | +// 상품 번호를 입력받아 Cart 객체에 추가합니다. '0'을 입력하면 displayCart()를 |
| 18 | +// 호출하고 종료합니다. |
| 19 | +// 핵심 사고: 서로 다른 역할을 하는 여러 클래스들이 상호작용하며 하나의 완성된 시스템을 |
| 20 | +// 구축하는 과정을 경험합니다. |
| 21 | +// 힌트: 여러 클래스 설계, 객체 배열 관리, 객체 간 상호작용, while문, switch문, input |
| 22 | + Product [] arr = {new Product("딸기", 15000), // Product 객체 생성 |
| 23 | + new Product("사과", 10000), |
| 24 | + new Product("배", 30000), |
| 25 | + new Product("바나나", 5000), |
| 26 | + new Product("우유", 4000), |
| 27 | + new Product("두부", 2000), |
| 28 | + new Product("계란", 12000), |
| 29 | + new Product("파", 1500), |
| 30 | + new Product("갈치", 30000), |
| 31 | + new Product("굴비", 25000), |
| 32 | + new Product("김치", 15000)}; |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + Cart c = new Cart(); |
| 37 | + |
| 38 | + Scanner sc = new Scanner(System.in); |
| 39 | + int pNum = 100; |
| 40 | + |
| 41 | + while(pNum != 0) { |
| 42 | + System.out.println("--------상품목록--------"); |
| 43 | +// for ( Product p : arr ) { |
| 44 | +// System.out.println(p); // 상품목록 출력 |
| 45 | +// } |
| 46 | + for (int i = 0; i < arr.length; i++) { |
| 47 | + System.out.println((i + 1) + ")" + arr[i]); |
| 48 | + } |
| 49 | + |
| 50 | + System.out.println(); |
| 51 | + System.out.println("추가하실 상품의 번호를 입력하세요.> "); |
| 52 | + System.out.println("(종료를 원하시면 0을 입력해주세요.)"); |
| 53 | + pNum = sc.nextInt(); |
| 54 | + if (1 <= pNum && pNum <= arr.length) { |
| 55 | + c.addProduct(arr[pNum - 1]); // 상품 카트에 담기 |
| 56 | + } |
| 57 | + else if (pNum != 0) { |
| 58 | + System.out.println("없는 번호입니다."); |
| 59 | + } |
| 60 | + } |
| 61 | + c.displayCart(); // 카트 목록 + 총 금액 출력 |
| 62 | + sc.close(); |
| 63 | + } |
| 64 | + |
| 65 | +} |
0 commit comments