java/코드 리뷰

6. oop1 - (2) OrderDemo (고객 주문내용 관리 프로그램)

Astaroth아스 2020. 3. 24. 13:54
1
2
3
4
5
6
7
8
9
10
package oop1;
 
public class Order {
    String name;
    String grade;
    int price;
    int point;
    String gift;
    
}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package oop1;
 
import java.util.Scanner;
 
public class OrderDemo {
    public static void main(String[] args) {
        
        // Order 는 클래스
        // orders 는 Order 클래스로 만든 배열
        // orderP 는 orders[i] 배열로 만든 i번째 배열
        // order 는 Order 클래스로 만든 새 객체
 
        Scanner sc = new Scanner(System.in);
        Order[] orders = new Order[100];
        int savePosition = 0;
        
        while(true) {
            System.out.println();
            System.out.println("[고객 주문내용 관리 프로그램]");
            System.out.println("=================================================");
            System.out.println("1.조회    2.검색    3.입력    4.종료");
            System.out.println("=================================================");
            
            System.out.print("번호를 입력하세요 : ");
            int MenuNo = sc.nextInt();
            
            if (1 == MenuNo) {
                System.out.println("[고객 주문내용 조회]");
                
                if(savePosition == 0) {
                    System.out.println("고객 주문내용이 존재하지 않습니다.");
                } else {
                    System.out.println("고객명    고객등급    총구매금액    적립포인트    사은품");
                    System.out.println("=================================================");
                    
                    for (int i=0; i<savePosition; i++) {
                        Order orderP = orders[i]; // 요기 안에서만 쓰는 지역변수
                        System.out.print(orderP.name + "\t");
                        System.out.print(orderP.grade + "\t");
                        System.out.print(orderP.price + "\t");
                        System.out.print(orderP.point + "\t");
                        System.out.println(orderP.gift);
                    }
                    
                }
                
            } else if (2 == MenuNo) {
                System.out.println("[고객 주문내용 검색]");
                
                System.out.println("검색조건을 입력하세요(N:이름, G:사은품)");
                String option = sc.next();
                System.out.print("검색 내용을 입력하세요");
                String text = sc.next();
                
                System.out.println("고객명    고객등급    총구매금액    적립포인트    사은품");
                System.out.println("=================================================");
                
                for (int i=0; i<savePosition; i++) {
                    Order orderP = orders[i];
                    
                    boolean isFound = false;
                    if (option.equals("N"&& text.equals(orderP.name)) {
                        isFound = true;
                    } else if (option.equals("G"&& text.equals(orderP.gift)) {
                        isFound = true;
                    }
                    
                    if (isFound) {
                        System.out.print(orderP.name + "\t");
                        System.out.print(orderP.grade + "\t");
                        System.out.print(orderP.price + "\t");
                        System.out.print(orderP.point + "\t");
                        System.out.println(orderP.gift);
                    }
                }
                
            } else if (3 == MenuNo) {
                System.out.println("[고객 주문내용 입력]");
                
                System.out.print("이름을 입력하세요 : ");
                String name = sc.next();
                System.out.print("등급을 입력하세요 : ");
                String grade = sc.next();
                System.out.print("총구매금액을 입력하세요 : ");
                int price = sc.nextInt();
                
                // 여기 헷갈림
                Order order = new Order();
                order.name = name;
                order.grade = grade;
                order.price = price;
                
                if(order.grade.equals("프리미어")) {
                    order.point = (int) (order.price*0.05);
                } else if(order.grade.equals("에이스")) {
                   order.point = (int) (order.price*0.03);
                } else if(order.grade.equals("베스트")) {
                   order.point = (int) (order.price*0.02);
                } else if(order.grade.equals("클래식")) {
                   order.point = (int) (order.price*0.01);
                }
                
                if(order.price >= 5000000) {
                   order.gift = "숙박권"// String gift 가 아님
                } else if (order.price >= 1000000) {
                   order.gift = "상품권";
                } else if (order.price >= 500000) {
                   order.gift = "할인권";
                } else {
                   order.gift = "주차권";
                }
                
                orders[savePosition] = order;
                savePosition++;
                
            } else if (4 == MenuNo) {
                System.out.println("[고객 주문내용 관리 프로그램 종료]");
                break;
            }
        }
        
        sc.close();
    }
}