[TIL]키오스크 만들기(2025-03-14)

2025. 3. 14. 11:22·TIL

https://computerreport.tistory.com/60

 

[TIL]키오스크 만들기(2025-03-12)

https://computerreport.tistory.com/59 [TIL]키오스크 만들기(2025-03-10)오늘 TIL 은 개인으로 만든 키오스크 구현을 정리할려고 한다.필수 기능까지 구현하였고 추후에 장바구니 기능,Enum 활용 등 추가 예정

computerreport.tistory.com

 

에 이어 오늘은 사용자 별 할인율을 적용하는 기능을 추가하였다.

📃 추가 기능 사항

✅ 기능 설명

  1. 사용자별 할인율 : 장바구니에서 주문을 하게 되면 결제하기 전에 사용자 별로 할인율을 다르게 적용하여 금액이 측정

✅ 클래스 설명

User enum 클래스

역할: 다양한 사용자 신분에 따른 할인율을 정의하고, 해당 신분에 따른 할인 계산을 처리합니다.
책임:

  1. 신분별 할인율 관리: 각 사용자 신분(국가유공자, 군인, 학생, 일반)에 대한 할인율을 정의하고 저장합니다.
  2. 신분 리스트 출력: 사용자가 선택할 수 있는 신분 목록을 출력합니다.
  3. 최종 금액 계산: 선택된 사용자 신분에 따라 장바구니의 총 금액에서 할인된 금액을 계산합니다.
  4. 최종 할인률 제공: 선택된 사용자 신분에 따른 할인률을 반환합니다.

User enum 클래스

장바구니에 담긴 상품의 총 금액을 Enum 객체를 활용하여 사용자 별 할인율을 적용했다.

 

User() : 사용자 신분을 정의하는 생성자

getSale() : 신분별 할인율 가져오기

viewUser() : 사용자 신분 목록 출력

lastAmount(int i) : 최종 금액 계산

kioskViewSale(int i) : 최종 할인률 제공

 

public enum User {
    국가유공자(20),
    군인(10),
    학생(5),
    일반(0);

    private final int sale;
    static final User[] users = User.values();

    //생성자
    User(int sale) {
        this.sale = sale;
    }

    //enum 안에서 상수별 심볼가져오기
    public int getSale() {
        return sale;
    }

    //신분 리스트
    public static void viewUser() {
        System.out.println("사용자의 신분을 선택해주세요");
        for (int i = 0; i < users.length; i++) {
            System.out.println((i + 1) + ". " + users[i] + ": " + users[i].getSale() + "%");
        }
    }

    //최종 금액 출력
    public static double lastAmount(int i) {
        double amount = Cart.totalPrice;
        for (User user : users) {
            if (users[i - 1] == user) {
                amount *= (100 - (double) users[i - 1].getSale()) / 100;
            }
        }
        return amount;
    }

    //최종 할인률 출력
    public static int kioskViewSale(int i) {
        for (User user : users) {
            if (users[i - 1] == user) {
                return users[i - 1].getSale();
            }
        }
        return 0;
    }
}

 

 

메소드 마다 statuc이 선언되어 있는데 트러블 슈팅을 통해 이해하면 좋을거 같다.

https://computerreport.tistory.com/62

 

[JAVA]Enum 에 선언된 메소드 호출오류

intro프로젝트를 진행하며 발생한 문제 상황과 해결 과정들을 상세히 기록하고 추후에 같은 문제가 발생 했을때 빠르게 문제 해결하기 위해 트러블 슈팅을 정리할려고 한다.기록하는 습관을 기

computerreport.tistory.com

 

✒️ 회고

- 이걸로써 키오스크 프로젝트가 마무리 되었는데 리스트를 활용한 부분이 많은 만큼 추후에 Stream 을 사용하여 가독성을 높여야 할 거 같다. 

- 데이터베이스를 활용한 프로젝트도 진행 해보고 싶다.

 

감사합니다

'TIL' 카테고리의 다른 글

[TIL]2025-03-20  (0) 2025.03.20
[TIL]2025-03-19  (0) 2025.03.19
[TIL]키오스크 만들기(2025-03-12)  (1) 2025.03.12
[TIL]키오스크 만들기(2025-03-10)  (0) 2025.03.10
[TIL]Lv3 계산기 만들기(2025-02-28)  (0) 2025.02.28
'TIL' 카테고리의 다른 글
  • [TIL]2025-03-20
  • [TIL]2025-03-19
  • [TIL]키오스크 만들기(2025-03-12)
  • [TIL]키오스크 만들기(2025-03-10)
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (144)
      • JavaScript (8)
      • SQL (11)
      • 코딩테스트 (30)
        • Java (15)
        • SQL (13)
      • Java (10)
      • 프로젝트 (25)
        • 트러블슈팅 (9)
        • 프로젝트 회고 (14)
      • git,Github (2)
      • TIL (38)
      • Spring (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java #arraylist #list #배열
    스파르타 코딩 #부트캠프 #첫ot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[TIL]키오스크 만들기(2025-03-14)
상단으로

티스토리툴바