상세 컨텐츠

본문 제목

도서관리 프로그램(java)

프로그래밍/JAVA

by RosetteNebula 2021. 1. 14. 21:20

본문

도서 정보는 책이름, 저자, 가격

관리자는 슈퍼관리자, 일반관리자

일반 관리자는 도서 확인 불가, 입력만 가능

슈퍼 관리자는 모두 가능

 

타입변환과 객체 타입 확인을 이용하여

권한 부여


타입변환, 객체 타입 확인을 사용 했고

일반관리자만 도서확인이 불가능 하게 동작은 합니다

 

class Book - 책 정보 및 입력

public class Book {
	public String bookName;
	public String author;
	public int price;
	
	public Book() {
	}
	
	public Book(String bookName, String author, int price) {
		this.bookName = bookName;
		this.author = author;
		this.price = price;
	}
	
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public void setPrice(int price) {
		this.price = price;
	}
}

 

class Manager - 슈퍼 관리자(출력)

public class Manager extends Book{
	
	public Manager() {
	}
	
	public String toString() {
		return ("책 이름 : " + bookName + ", 저자 : " + author + ", 가격 : " + price);
	}
}

 

class Management - 실제 구동 클래스

import java.util.*;

public class Management {
	Book m = new Manager();
	Book g = new Book();

	ArrayList<Manager> list = new ArrayList<Manager>();

	Scanner scan = new Scanner(System.in);

	int menu, authority;
	int count = 0;

	public Management() {
	}

	void run() {
		authority();
		for (;;) {
			if (authority == 1) {
				menu(m);
			} else if (authority == 2) {

				menu(g);
			}
		}
	}

	void authority() {
		System.out.println("1. 관리자");
		System.out.println("2. 일반");

		authority = scan.nextInt();
	}

	void menu(Book m) {
		System.out.println("1. 입력");
		System.out.println("2. 출력");
		System.out.println("3. 종료");
		System.out.println("4. 관리자 변경");
		System.out.print("선택 : ");

		menu = scan.nextInt();
		if (menu == 1) {
			input(m);
		} else if (menu == 2) {
			if (m instanceof Manager) {
				Manager manager = (Manager) m;
				output(manager);
			} else {
				System.out.println("권한이 없습니다");
			}
		} else if (menu == 3) {
			System.exit(1);
		} else if (menu == 4) {
			authority();
		}
	}

	void input(Book m) {
		String bookName;
		String author;
		int price;

		System.out.print("책 이름 : ");
		bookName = scan.next();
		System.out.print("저자 : ");
		author = scan.next();
		System.out.print("가격 : ");
		price = scan.nextInt();

		list.add(new Manager());

		list.get(count).setBookName(bookName);
		list.get(count).setAuthor(author);
		list.get(count).setPrice(price);
		count++;
	}

	void output(Manager m) {
		
		if (count == 0) {
			System.out.println("도서가 없습니다.");
		} else if (count > 0) {
			for (int i = 0; i < list.size(); i++) {
				System.out.println(list.get(i).toString());
			}
		}
	}
}

 

class ManagementExample - 메인 클래스

public class ManagementExample {

	public static void main(String[] args) {
		new Management().run();
	}
}

'프로그래밍 > JAVA' 카테고리의 다른 글

인터페이스2(java)  (0) 2021.01.15
인터페이스(java)  (0) 2021.01.15
추상 메소드와 오버라이딩  (0) 2021.01.14
객체 타입 확인 instanceof (java)  (0) 2021.01.14
강제 타입 변환(java)  (0) 2021.01.14

관련글 더보기