오늘은 팀과제인 키오스크 프로그램을 개선하고 관리자 페이지를 추가하는 것에 대하여 회의를 하고 역할을 부여받았다.
난 관리자페이지에서 상품을 추가하고 리스트에 올리는 작업을 진행하였다.
우선 Main에
private static void createItem() {
Scanner scanner = new Scanner(System.in);
System.out.println("새로운 상품 정보를 입력해주세요.");
System.out.print("메뉴: ");
int menu = scanner.nextInt();
scanner.nextLine();
System.out.print("이름: ");
String name = scanner.nextLine();
System.out.print("설명: ");
String description = scanner.nextLine();
System.out.print("가격: ");
Double price = scanner.nextDouble();
// 새로운 상품 생성
Item newItem = new Item(name, price, description);
switch (menu) {
case 1:
menuContext.addItemToMenu("Burgers", newItem);
break;
case 2:
menuContext.addItemToMenu("Frozen Custard", newItem);
break;
case 3:
menuContext.addItemToMenu("Drinks", newItem);
break;
case 4:
menuContext.addItemToMenu("Beer", newItem);
break;
default:
System.out.println("잘못된 메뉴입니다.");
break;
}
System.out.println("새로운 상품이 생성되었습니다.");
displayMainMenu();
}
코드를 추가하고 스캐너를 통해 메뉴는 번호를 통해 지정하였고 scanner.nextInt를 하면 이름과 설명이 붙어버리는 현상이 발생하니 scanner.nextline를 하나 추가하여 현상을 해결하였다. 그리고 모두 입력하고나면 newItem에 name,price,description을 담은후 스위치문을 통해 메뉴에 입력한 번호를 통해 각각의 case문으로 들어가고 거기에 맞는 메뉴에 들어가도록 지정하였다. 그리고 displayMainMenu()를 통해 메인화면으로 돌아가게 하였다.
그리고 MenuContext 클래스에
public void addItemToMenu(String menu, Item item) {
List<Item> menuList = menuItems.get(menu);
if (menuList == null) {
menuList = new ArrayList<>();
menuItems.put(menu, menuList);
}
menuList.add(item);
}
스위치문에 있던 MenuContext.addItemToMenu를 통해 들어온 정보들을 이코드가 담당한다. menu의 인자가 Main에 입력된 값이 저 인자로 들어오게된다. Item item은 새로운 item을 추가해주는 역할이다.
menuList를 선언후 거기에 menu를 받아온다.
그리고 if문으로 menuList가 Null인걸 확인하면서 Null이면 리스트에 존재하지않으므로 새로 리스트로 담아준다. 하지만 이미 존재하면 담지않고 끝낸다는것이다. 그리고 add로 item으로 담아주는 역할을 해주는것이다.
'Java' 카테고리의 다른 글
| 추상 클래스와 인터페이스의 차이 (0) | 2023.07.28 |
|---|---|
| 개인 과제 피드백 정리(Try-catch 예외처리를 사용해보자.) (0) | 2023.06.08 |
| 키오스크 메뉴 구현 (0) | 2023.06.01 |
| 키오스크 메인화면 구현 (0) | 2023.05.31 |
| 키오스크 프로젝트 시작 (0) | 2023.05.31 |