๋ฌธ์ œ ์„ค๋ช…

์•ž์„œ ์ƒํ’ˆ ์ฃผ๋ฌธ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›๋„๋ก ๊ฐœ์„ ํ•ด๋ณด์ž.

 

์š”๊ตฌ ์‚ฌํ•ญ

- ์•„๋ž˜ ์ž…๋ ฅ,์ถœ๋ ฅ ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๋‹ค์Œ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜์ž.

- ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰์„ ์ž…๋ ฅ ๋ฐ›์ž

   - ์˜ˆ) ์ž…๋ ฅํ•  ์ฃผ๋ฌธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.

- ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰, ์ƒํ’ˆ๋ช…์„ ์ž…๋ ฅ ๋ฐ›์ž

    - ์ž…๋ ฅ์‹œ ์ƒํ’ˆ ์ˆœ์„œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ "n๋ฒˆ์งธ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”.

- ์ž…๋ ฅ์ด ๋๋‚˜๋ฉด ๋“ฑ๋กํ•œ ์ƒํ’ˆ๊ณผ ์ด ๊ฒฐ์ œ ๊ธˆ์•ก์„ ์ถœ๋ ฅํ•˜์ž.

1. ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2. ์ €์žฅ๋œ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
3. ์ €์žฅ๋œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ด ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

<์ •๋‹ต ์ฝ”๋“œ>

package javaBasicLecture.ref.quiz1;
import java.util.Scanner;

public class ProductOrderMain2 {
     public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("์ž…๋ ฅํ•  ์ฃผ๋ฌธ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: ");
        int n = scanner.nextInt();
        scanner.nextLine();
        
        ProductOrder [] orders = new ProductOrder[n];
        for(int i= 0; i < orders.length; i++){
        System.out.println("(i+1)๋ฒˆ์งธ ์ฃผ๋ฌธ์„ ์ž…๋ ฅํ•˜์„ธ์š”. ");
        
        System.out.println("์ƒํ’ˆ๋ช…: ");
            String productName = scanner.nextLine();

            System.out.println("๊ฐ€๊ฒฉ: ");
            int price = scanner.nextInt();

            System.out.print("์ˆ˜๋Ÿ‰: ");
            int quantity = scanner.nextInt();
            scanner.nextLine(); // ์ž…๋ ฅ ๋ฒ„ํผ๋ฅผ ๋น„์šฐ๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ

            orders[i] = createOrder(productName, price, quantity);
        
        }
        
        
        printOrders(orders);
       int totalAmount = getTotalAmount(orders);
        System.out.println("์ด ๊ฒฐ์ œ ๊ธˆ์•ก: " + totalAmount);
        
     
   }
  static ProductOrder createOrder(String productName, int price, int quantity){
     ProductOrder order = new ProductOrder;
     order.productName = name;
     order.price = price;
     order.quantity = quantity;
     
     return order;
  } 
  static void printOrders(ProductOrder[] orders) {
    for(ProductOrder order : orders) {
       System.out.println("์ƒํ’ˆ๋ช…: " + order.productName + " ,๊ฐ€๊ฒฉ:" + order.price + " ,์ˆ˜๋Ÿ‰: " + order.quantity);
    }
  }
  
  static void getTotalAmount (ProductOrder[] orders) {
        int totalAmount=0;
        for (ProductOrder order : orders) {
            totalAmount += order.price * order.quantity;
        }    
  }
     }

 

์ƒํ’ˆ ์ฃผ๋ฌธ์„ ์ž…๋ ฅ๋ฐ›์•„ ์ด ๊ฒฐ์ œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ์ด๋‹ค.

 

์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ ๊ณผ์ •

1. ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ

 - ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฃผ๋ฌธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

 - ์ž…๋ ฅ๋œ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด ๊ฐ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ค€๋น„๋ฅผ ํ•œ๋‹ค.

 

2. ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•œ ์ฃผ๋ฌธ ์ •๋ณด ์ž…๋ ฅ

 - ์ฃผ๋ฌธ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.

 - ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒํ’ˆ๋ช…, ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰์„ ์ž…๋ ฅ๋ฐ›๊ณ , ์ด๋ฅผ createOrder๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌํ•ด ProductOrder ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 - ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.

 

3. ์ถœ๋ ฅ๊ณผ ๊ณ„์‚ฐ

 - printOrders ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๋ชจ๋“  ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 - getTotalAmount ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ฃผ๋ฌธ์— ๋Œ€ํ•ด ๊ฐ€๊ฒฉ * ์ˆ˜๋Ÿ‰์„ ๊ณ„์‚ฐํ•ด ์ด ๊ฒฐ์ œ ๊ธˆ์•ก์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.  

 

4. ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 - ๊ณ„์‚ฐ๋œ ์ด ๊ฒฐ์ œ ๊ธˆ์•ก์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

---

์ฃผ์š” ๋…ผ๋ฆฌ์  ์—ฐ๊ด€.

 

(1) ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ณผ ๊ฐ์ฒด ์ƒ์„ฑ์˜ ์—ฐ๊ด€

 - ์‚ฌ์šฉ์ž ์ž…๋ ฅ:

     - Scanner ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
     - ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ๋ณ€์ˆ˜(productName, price, quantity)์— ์ €์žฅํ•œ๋‹ค.

- ๊ฐ์ฒด ์ƒ์„ฑ: 

     - ์ž…๋ ฅ๋ฐ›์€ ์ •๋ณด๋Š” createOrder๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ProductOrder๊ฐ์ฒด๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

     - ์ด ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด์— ์ €์žฅ๋˜์–ด ๋‚˜์ค‘์— ์ถœ๋ ฅ ๋ฐ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋œ๋‹ค. 

 

๋…ผ๋ฆฌ์  ๊ด€๊ณ„ : ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ProductOrder๋ผ๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์ €์žฅํ•œ๋‹ค. 

 

(2) ๋ฐฐ์—ด๊ณผ ๋ฐ˜๋ณต๋ฌธ์˜ ์—ฐ๊ด€ - ๋ฐฐ์—ด ์‚ฌ์šฉ:     - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด(ProductOrder[])์„ ์‚ฌ์šฉํ•œ๋‹ค.     - ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋Š” ํ•œ ๋ฒˆ์˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ํ•ด๋‹นํ•˜๋Š” ProductOrder ๊ฐ์ฒด์ด๋‹ค.- ๋ฐ˜๋ณต๋ฌธ :     - ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต๋ฌธ์ด ์‚ฌ์šฉ๋œ๋‹ค.     - ๋ฐ˜๋ณต๋ฌธ์€ ์ž…๋ ฅ๋ฐ›์€ ์ •๋ณด๋ฅผ ๋ฐฐ์—ด์— ์ €์žฅํ•˜๊ณ , ๋‚˜์ค‘์— ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐ์— ํ™œ์šฉํ•œ๋‹ค.

 

๋…ผ๋ฆฌ์  ๊ด€๊ณ„ : ๋ฐฐ์—ด๊ณผ ๋ฐ˜๋ณต๋ฌธ์€ "์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌ"ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.๋ฐฐ์—ด์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋„๊ตฌ์ด๊ณ , ๋ฐ˜๋ณต๋ฌธ์€ ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. 

 

 

(3) ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ์—ฐ๊ด€ - ํด๋ž˜์Šค ProductOrder:    - ์ƒํ’ˆ๋ช…, ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰๊ณผ ๊ฐ™์€ ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํ‹€์ด๋‹ค.    - ๊ฐ ์ฃผ๋ฌธ์€ ProductOrder๊ฐ์ฒด๋กœ ํ‘œํ˜„๋œ๋‹ค.- ๊ฐ์ฒด ์‚ฌ์šฉ:    - ๊ฐ ProcudtOrder ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋กœ ์ €์žฅ๋œ๋‹ค.    - ์ดํ›„, ๊ฐ์ฒด์˜ ์†์„ฑ(productName, price, quantity)์€ ์ถœ๋ ฅ ๋ฐ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋œ๋‹ค.

 

๋…ผ๋ฆฌ์  ๊ด€๊ณ„ : ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์„ค๊ณ„๋„์ด๊ณ , ๊ฐ์ฒด๋Š” ๊ทธ ์„ค๊ณ„๋„๋กœ ๋งŒ๋“ค์–ด์ง„ ์‹ค์ฒด์ด๋‹ค.ProductOrder ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ ์ „๋ฐ˜์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ํ™œ์šฉ์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

(4) ์ถœ๋ ฅ๊ณผ ๊ณ„์‚ฐ์˜ ์—ฐ๊ด€  - ์ถœ๋ ฅ(printOrders) :      - ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฐ ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.      - ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋ฉฐ productName, price,quantity๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.   - ๊ณ„์‚ฐ(getTotalAmount):

       - ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฐ ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด price × quantity๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค

       - ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ธˆ์•ก์„ ๋ˆ„์ ํ•œ๋‹ค.

 

๋…ผ๋ฆฌ์  ๊ด€๊ณ„ : ์ถœ๋ ฅ๊ณผ ๊ณ„์‚ฐ์€ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 

 

(5) ๋ฉ”์„œ๋“œ ๊ฐ„์˜ ์—ฐ๊ด€

main ๋ฉ”์„œ๋“œ:

   ํ”„๋กœ๊ทธ๋žจ์˜ ์ค‘์‹ฌ์œผ๋กœ, ๊ฐ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ๋…ผ๋ฆฌ์ ์ธ ํ๋ฆ„์„ ์ œ์–ดํ•œ๋‹ค.

createOrder, printOrders, getTotalAmount๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ž…๋ ฅ → ์ถœ๋ ฅ → ๊ณ„์‚ฐ์˜ ํ๋ฆ„์„ ๋งŒ๋“ ๋‹ค.

createOrder:

   ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ProductOrder ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

   ์ด ๊ฐ์ฒด๋Š” ์ดํ›„ printOrders์™€ getTotalAmount ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

printOrders:

   createOrder๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

getTotalAmount

   createOrder๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•œ๋‹ค.

 

๋…ผ๋ฆฌ์  ๊ด€๊ณ„:

 ๊ฐ ๋ฉ”์„œ๋“œ๋Š” ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, ์ฒ˜๋ฆฌ, ๊ฒฐ๊ณผ ๋„์ถœ์ด๋ผ๋Š” ํ๋ฆ„์„ ๋งŒ๋“ ๋‹ค.

 createOrder → ๋ฐฐ์—ด ์ €์žฅ → printOrders / getTotalAmount์˜ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค

 

+ Recent posts