Skip to content

메뉴 예외처리 #24

@Jeong-YuJeong

Description

@Jeong-YuJeong
package kr.or.tashow;

import java.util.Scanner;

public class Menu {
	Scanner input = new Scanner(System.in);
	User user;
	Admin admin;
	IO io;
	BikeService bikeService;
	UserSystem userSystem;
	AdminSystem adminSystem;

	public Menu() {
		user = new User();
		admin = new Admin();
		io = new IO();
		bikeService = new BikeService();
		userSystem = new UserSystem();
		adminSystem = new AdminSystem();
		io.startSystem();
	}

	public void displayDefaultMenu() { // 첫 메뉴 번호입력
		// 회원가입, 사용자 인증, 관리자 인증, 프로그램 종료
		System.out.println("*****비트를 타쇼 자전거 대여 시스템*****");
		System.out.println("원하는 메뉴의 번호를 입력하세요");
		System.out.println("1. 회원가입");
		System.out.println("2. 사용자인증");
		System.out.println("3. 관리자인증");
		System.out.println("4. 프로그램종료");
		int menu = 0;
		do {
			try {
				menu = Integer.parseInt(input.nextLine());
				if (menu >= 1 && menu <= 4) {
					break;
				} else {
					throw new Exception("메뉴 번호 오류");
				}

			} catch (Exception e) {
				System.out.println("오류발생: " + e.getMessage());
				System.out.println("1~4 중 다시 입력해주세요");
			}
		} while (true);{
			switch (menu) {
			case 1:
				userSystem.singUp();
				break;
			case 2:
				userSystem.userLogin();
				displayUserMenu();
				break;
			case 3:
				adminSystem.adminLogin();
				displayAdminMenu();			
				break;
			case 4:
				return;
			default:
				System.out.println("잘못입력");
				break;
			}
		}
	}

	private void displayAdminMenu() { // 관리자 메뉴
		// 매출관리, 회원목록조회, 자전거관리, 프로그램 종료

		System.out.println("원하는 메뉴의 번호를 입력하세요");
		System.out.println("1. 매출조회");
		System.out.println("2. 회원목록조회");
		System.out.println("3. 자전거관리");
		System.out.println("4. 이전메뉴");
		int menu = 0;
		do {
			try {
				menu = Integer.parseInt(input.nextLine());
				if (menu >= 1 && menu <= 4) {
					break;
				} else {
					throw new Exception("메뉴 번호 오류");
				}
			} catch (Exception e) {
				System.out.println("오류발생: " + e.getMessage());
				System.out.println("1~4 중 다시 입력해주세요");
			}
		} while (true);{
			while (true) {
				switch (menu) {
				case 1:
					bikeService.calculateTotalSales();
					break;
				case 2:
					io.readUserList();
					break;
				case 3:
					displayBikeMenu();
					break;
				case 4:
					return;
				default:
					System.out.println("잘못입력");
					break;
				}
			}
		}
	}

	private void displayUserMenu() { // 사용자 메뉴
		// 대여하기 (> 자전거 목록조회), 반납하기 (> 결제 및 반납), 프로그램 종료

		System.out.println("원하는 메뉴의 번호를 입력하세요");
		System.out.println("1. 대여하기 (1인용)");
		System.out.println("2. 대여하기 (2인용)");
		System.out.println("3. 결제 및 반납하기");
		System.out.println("4. 이전메뉴");
		int menu = 0;
		do {
			try {
				menu = Integer.parseInt(input.nextLine());
				if (menu >= 1 && menu <= 4) {
					break;
				} else {
					throw new Exception("메뉴 번호 오류");
				}
			} catch (Exception e) {
				System.out.println("오류발생: " + e.getMessage());
				System.out.println("1~4 중 다시 입력해주세요");
			}
		} while (true); {
			switch (menu) {
			case 1:
				bikeService.rentalBike("S");
				break;
			case 2:
				bikeService.rentalBike("T");
				break;
			case 3:
				System.out.println("반납할 자전거의 일련번호를 입력해주세요");
				String id = input.nextLine();
				bikeService.returnBike(id);
				break;
			case 4:
				return;
			default:
				System.out.println("잘못입력");
				break;
			}
		}
	}

	private void displayBikeMenu() { // 자전거 관리 메뉴 번호입력
		System.out.println("원하는 메뉴의 번호를 입력하세요");
		System.out.println("1. 자전거등록");
		System.out.println("2. 자전거삭제");
		System.out.println("3. 자전거목록조회");
		System.out.println("4. 자전거대여내역조회");
		System.out.println("5. 이전메뉴");
		int menu = 0;
		do {
			try {
				menu = Integer.parseInt(input.nextLine());
				if (menu >= 1 && menu <= 5) {
					break;
				} else {
					throw new Exception("메뉴 번호 오류");
				}
			} catch (Exception e) {
				System.out.println("오류발생: " + e.getMessage());
				System.out.println("1~5 중 다시 입력해주세요");
			}
		} while (true);{
			switch (menu) {
			case 1:
				adminSystem.addBike();
				io.writeBikeList();
				break;
			case 2:
				adminSystem.removeBike();
				break;
			case 3:
				io.readBikeList();
				break;
			case 4:
				io.readRentList();
				break;
			case 5:
				return;
			default:
				System.out.println("잘못입력");
				break;
			}
		}
	}


}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions