프로젝트/Mini project

[mini project] 9. 도서관 관리 시스템 - Menu

해니01_15 2023. 3. 19. 16:14

1. Menu 

package library;

import java.util.Scanner;

import BookRent.BookRentService;
import VideoRent.VideoRentService;
import board.Boardservice;
import board.Boardvo;
import book.BookService;
import book.BookVo;
import member.MemberService;
import video.VideoService;
import video.VideoVo;

public class menu {

	private MemberService ps;
	private Boardservice bs;
	private BookRentService br;
	private BookService books;
	private VideoService vs;
	private VideoRentService vr;

	public menu() {
		ps = new MemberService();
		bs = new Boardservice();
		br = new BookRentService();
		books = new BookService();
		vs = new VideoService();
		vr = new VideoRentService();
	}

	public void run(Scanner sc) {

		boolean flag = true;

		while (flag) {
			System.out.println("로그인하세요");
			System.out.println("1.회원 전용  2.관리자 전용 ");

			int n = sc.nextInt();

			switch (n) {
			case 1:
				psrun(sc);
				break;
			case 2:
				System.out.println("아이디를 입력하세요");
				String m = sc.next();
				System.out.println("비밀번호를 입력하세요");
				String p = sc.next();
				if (m.equals("admin") && p.equals("3333")) {
					MemberService.Loginid = "admin";
					System.out.println("< 관리자계정 로그인 >");

					boolean flag1 = true;

					while (flag1) {
						System.out.println("1.책 관리  2.비디오 관리  3.게시판 관리  4.종료");

						int t = sc.nextInt();

						switch (t) {
						case 1:
							bookForAdmin(sc);
							break;
						case 2:
							videoForAdmin(sc);
							break;
						case 3:
							boardForAdmin(sc);
							break;
						case 4:
							System.out.println("프로그램 종료");
							flag1 = false;
							break;
						default:
							System.out.println("잘못된 값입니다. 다시 입력해주세요");
							break;
						}
					}
				} else {
					System.out.println("아이디 또는 비밀번호가 잘못되었습니다");
					System.out.println("다시 입력해주세요");
					break;
				}
			case 3:
				flag = false;
				break;
			}
		}
	}

	public void psrun(Scanner sc) {

		int m = 0;
		boolean flag = true;

		while (flag) {
			System.out.println("1.회원가입  2.로그인");
			m = sc.nextInt();
			switch (m) {
			case 1:
				ps.join(sc);
				membermenu(sc);
				break;
			case 2:
				ps.login(sc);
				membermenu(sc);
				break;
			default:
				flag = false;
				break;
			}
		}
	}

	public void membermenu(Scanner sc) {

		boolean flag = true;

		if (ps.Loginid != null) {
			while (flag) {
				System.out.println("메뉴를 선택해주세요");
				System.out.println("1.책  2.비디오  3.게시판  4.내정보 설정  5.로그아웃");

				int m = sc.nextInt();

				switch (m) {
				case 1:
					bookForMember(sc);
					break;
				case 2:
					videoForMember(sc);
					break;
				case 3:
					boardForMember(sc);
					break;
				case 4:
					MyAccount(sc);
					break;
				case 5:
					ps.logout();
					flag = false;
					break;
				default : 
					System.out.println("잘못누르셨습니다");
					System.out.println("오류로 인지하여 로그아웃 됩니다.");
					ps.logout();
					flag = false; 
					break;
				}
			}
		}
	}

	public void MyAccount(Scanner sc) {

		int m = 0;
		boolean flag = true;

		while (flag) {
			System.out.println("< 내 정보 >");
			System.out.println("1.내정보 확인  2.내정보 수정  3.나의 대여 목록  4.회원 탈퇴  5.이전메뉴");
			m = sc.nextInt();

			switch (m) {
			case 1:
				ps.printMyInfo();
				break;
			case 2:
				ps.editMyInfo(sc);
				break;
			case 3:
				br.selectById();
				vr.selectById();
				break;
			case 4:
				ps.out();
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

	public void bookForMember(Scanner sc) {

		boolean flag = true;

		while (flag) {
			System.out.println("< 도서관리 >");
			System.out.println("1.전체목록  2.작가 검색  3.제목 검색  4.책 대여  5.책 반납  6.이전메뉴");
			int m = sc.nextInt();

			switch (m) {
			case 1:
				books.getAll();
				break;
			case 2:
				books.selectbywriter(sc);
				break;
			case 3:
				books.selectbytitle(sc);
				break;
			case 4:
				br.BookRent(sc);
				break;
			case 5:
				br.BookReturn(sc);
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

	public void videoForMember(Scanner sc) {

		boolean flag = true;

		while (flag) {
			System.out.println("< 비디오관리 >");
			System.out.println("1.전체목록  2.장르 검색  3.제목 검색  4.대여  5.반납  6.이전메뉴");
			int m = sc.nextInt();

			switch (m) {
			case 1:
				vs.getAll();
				break;
			case 2:
				vs.selectbygerne(sc);
				break;
			case 3:
				vs.selectbytitle(sc);
				break;
			case 4:
				vr.VideoRent(sc);
				break;
			case 5:
				vr.VideoReturn(sc);
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

	public void boardForMember(Scanner sc) {

		boolean flag = true;
		int m = 0;

		while (flag) {
			System.out.println("< 게시판 >");
			System.out.println("1.글 작성  2.글 목록  3.번호 검색  4.작성자 검색  5.제목 검색  6.글 수정  7.글 삭제  8.이전메뉴");
			m = sc.nextInt();

			switch (m) {
			case 1:
				bs.addboard(sc);
				break;
			case 2:
				bs.getAll();
				break;
			case 3:
				bs.getByNum(sc);
				break;
			case 4:
				bs.getByWriterAll(sc);
				break;
			case 5:
				bs.getByTitleAll(sc);
				break;
			case 6:
				bs.editboard(sc);
				break;
			case 7:
				bs.delBoard(sc);
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

	// 관리자 메서드
	public void bookForAdmin(Scanner sc) {

		boolean flag = true;
		BookVo vo = new BookVo();

		while (flag) {
			System.out.println("< 책 관리 >");
			System.out.println("1.등록  2.정보 수정  3.삭제  4.전체목록  5.대여 기록  6.미반납  7.이전메뉴");
			int m = sc.nextInt();

			switch (m) {
			case 1:
				books.insert(sc);
				break;
			case 2:
				books.edit(sc);
				break;
			case 3:
				books.delBook(sc);
				break;
			case 4:
				books.getAll();
				break;
			case 5:
				br.getAll();
				break;
			case 6:
				br.selectByReturnOver();
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

	public void videoForAdmin(Scanner sc) {

		boolean flag = true;
		VideoVo vo = new VideoVo();

		while (flag) {
			System.out.println("< 비디오 관리 >");
			System.out.println("1.등록  2.정보 수정  3.삭제  4.전체목록  5.대여 기록  6.미반납  7.이전메뉴");
			int m = sc.nextInt();

			switch (m) {
			case 1:
				vs.insert(sc);
				break;
			case 2:
				vs.edit(sc);
				break;
			case 3:
				vs.delVideo(sc);
				break;
			case 4:
				vs.getAll();
				break;
			case 5:
				vr.getAll();
				break;
			case 6:
				vr.selectByReturnOver();
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

	public void boardForAdmin(Scanner sc) {

		boolean flag = true;
		Boardvo vo = new Boardvo();

		while (flag) {
			System.out.println("< 게시판 관리 >");
			System.out.println("1.게시글 등록  2.글 목록  3.게시글 삭제  4.게시글 수정  5.작성자 검색");
			int m = sc.nextInt();

			switch (m) {
			case 1:
				bs.addboard(sc);
				break;
			case 2:
				bs.getAll();
				break;
			case 3:
				bs.delBoard(sc);
				break;
			case 4:
				bs.editboard(sc);
				break;
			case 5:
				bs.getByWriterAll(sc);
				break;
			default:
				System.out.println("이전 메뉴로 돌아갑니다");
				flag = false;
				break;
			}
		}
	}

}

 

2. Main 

package library;

import java.util.Scanner;

public class main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		menu m = new menu();
		m.run(sc);
	}

}

 

메뉴 잘 돌아갈때가