https://computerreport.tistory.com/60
[TIL]키오스크 만들기(2025-03-12)
https://computerreport.tistory.com/59 [TIL]키오스크 만들기(2025-03-10)오늘 TIL 은 개인으로 만든 키오스크 구현을 정리할려고 한다.필수 기능까지 구현하였고 추후에 장바구니 기능,Enum 활용 등 추가 예정
computerreport.tistory.com
에 이어 오늘은 사용자 별 할인율을 적용하는 기능을 추가하였다.
📃 추가 기능 사항
✅ 기능 설명
- 사용자별 할인율 : 장바구니에서 주문을 하게 되면 결제하기 전에 사용자 별로 할인율을 다르게 적용하여 금액이 측정
✅ 클래스 설명
User enum 클래스
역할: 다양한 사용자 신분에 따른 할인율을 정의하고, 해당 신분에 따른 할인 계산을 처리합니다.
책임:
- 신분별 할인율 관리: 각 사용자 신분(국가유공자, 군인, 학생, 일반)에 대한 할인율을 정의하고 저장합니다.
- 신분 리스트 출력: 사용자가 선택할 수 있는 신분 목록을 출력합니다.
- 최종 금액 계산: 선택된 사용자 신분에 따라 장바구니의 총 금액에서 할인된 금액을 계산합니다.
- 최종 할인률 제공: 선택된 사용자 신분에 따른 할인률을 반환합니다.
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 |