Java 코드를 사용하여 도서관 관리 시스템을 구현하는 방법
1. 기능 소개
이 도서관 관리 시스템은 IDEA 개발 도구의 도움으로 구현됩니다.
도서관 시스템에 액세스하는 데는 두 가지 ID가 있습니다:
1. 관리자 ID:
2. 사용자 ID :
책, 작업, 사용자 구현이라는 총 세 가지 패키지가 있습니다.
두 번째, 메인 패키지
주요 기능은 주로 일반적인 프로세스를 수행하고 도서관 초기화. 도서관 관리 시스템에 로그인하고 특정 작업 선택, 즉 구현
import book.BookList; import user.AdminUser; import user.NormalUser; import user.User; import java.util.Scanner; public class Main { public static void main(String[] args) { //1.先初始化图书库,以及初始化: BookList bookList = new BookList(); //2.登录 User user = login();//向上转型,User接受管理员或者用户对象 //3.打印菜单,进行具体操作 while(true) { int choice = user.menu(); user.doOperation(choice,bookList); } } }
로그인 기능:
public static User login() { System.out.println("请输入你的姓名: "); Scanner scanner = new Scanner(System.in); String userName = scanner.nextLine(); System.out.println("请输入你的身份: 1-> 管理员 2-> 用户"); int choice = scanner.nextInt(); if(choice == 1) { return new AdminUser(userName); }else { return new NormalUser(userName); } }
3. 사용자 패키지
두 가지 시스템이 있기 때문입니다. 일반 사용자이므로 코드 재사용을 위해 사용자 추상 클래스를 추출합니다.
package user; import book.BookList; import operations.IOperation; public abstract class User { protected String name; IOperation[] iOperations; public User(String name) { this.name = name; } public abstract int menu(); public void doOperation(int choice, BookList bookList) { iOperations[choice].work(bookList); } }
3.NormalUser
package user; import operations.*; import java.util.Scanner; public class AdminUser extends User{ public AdminUser(String name) { super(name); this.iOperations = new IOperation[]{ new ExitOperation(), new FindOperation(), new AddOperation(), new DelOperation(), new DisplayOperation() }; } public int menu() { System.out.println("欢迎: "+name+"来到图书馆"); System.out.println("**********************************"); System.out.println("1. 查找图书"); System.out.println("2. 新增图书"); System.out.println("3. 删除图书"); System.out.println("4. 显示图书"); System.out.println("0. 退出图书"); System.out.println("**********************************"); System.out.println("请输入你的操作: "); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; } }
4. book, 그리고 BookList 유형에서 도서관의 책을 초기화합니다.
1.Book
package user; import operations.*; import java.util.Scanner; public class NormalUser extends User{ public NormalUser(String name) { super(name); this.iOperations = new IOperation[]{ new ExitOperation(), new FindOperation(), new BorrowOperation(), new ReturnOperation() }; } public int menu() { System.out.println("欢迎: "+name+"来到图书馆"); System.out.println("**********************************"); System.out.println("1. 查找图书"); System.out.println("2. 借阅图书"); System.out.println("3. 归还图书"); System.out.println("0. 退出图书"); System.out.println("**********************************"); System.out.println("请输入你的操作: "); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; } }
2.BookList
package book; public class Book { private String name;//书名 private String author;//作者 private int price;//价格 private String type;//书的类型 private boolean isBorrowed;//书默认未借出 public Book(String name, String author, int price, String type) { this.name = name; this.author = author; this.price = price; this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getType() { return type; } public void setType(String type) { this.type = type; } public boolean isBorrowed() { return isBorrowed; } public void setBorrowed(boolean borrowed) { isBorrowed = borrowed; } @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", author='" + author + '\'' + ", price=" + price + ", type='" + type + '\'' + ","+ ((isBorrowed == true) ? "该书已借出" : "该书未借出" )+ '}'; } }
5. 운영 패키지
우리 도서관 관리 시스템에는 다형성과 오류를 용이하게 하기 위해 많은 특정 작업이 있습니다. 나중에 확인하므로 특정 IOperation 인터페이스를 구현하고 각 특정 작업은 이 인터페이스를 구현합니다.
package book; public class BookList { public Book[] books = new Book[100]; public int usedSize;//用来存当前共有多少本书 /** * 事先通过代码块 * * 事先存进去三本书 */ { books[0] = new Book("java","高斯林",95,"IT"); books[1] = new Book("C++","姚琳",93,"IT"); books[2] = new Book("python","马瑟斯",80,"IT"); this.usedSize = 3; } public Book getPos(int pos) { //获取某一位置的书 return books[pos]; } public void setBooks(Book book,int pos) { //存储一本书 到指定位置 books[pos] = book; } public int getUsedSize() { return usedSize; } public void setUsedSize(int usedSize) { this.usedSize = usedSize; } }
2.AddOperation
책 추가:
package operations; import book.BookList; public interface IOperation { void work(BookList bookList); }
3.책 대출:
package operations; import book.Book; import book.BookList; import java.util.Scanner; public class AddOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("新增图书! "); System.out.println("请输入要新增的图书的名字: "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); System.out.println("请输入要新增的图书的作者: "); String author = scanner.nextLine(); System.out.println("请输入要新增的图书的价格: "); int price = scanner.nextInt(); System.out.println("请输入要新增的图书的类型: "); String type = scanner.nextLine(); Book book = new Book(name,author,price,type); //1.获取当前书存放的位置 int curSize = bookList.getUsedSize(); //2.把书放在指定位置 bookList.setBooks(book,curSize); //3.更新书的个数 bookList.setUsedSize(curSize+1); } }
4 . DelOperation
책 삭제:
package operations; import book.Book; import book.BookList; import java.util.Scanner; public class BorrowOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("借阅图书! "); System.out.println("请输入要借阅的图书的名字: "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); for (int i = 0; i < bookList.getUsedSize(); i++) { Book book = bookList.getPos(i); if(name.equals(book.getName())) { if(book.isBorrowed()) { System.out.println("该书已经被借出! "); }else { book.setBorrowed(true); System.out.println("借阅图书成功! "); return; } } } System.out.println("没有你要借阅的书! "); } }
5. DisplayOperation
책 표시:
package operations; import book.Book; import book.BookList; import java.util.Scanner; public class DelOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("删除图书! "); System.out.println("请输入要删除的图书: "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); //查找图书是否有此图书,记录下标 int index = -1; for (int i = 0; i < bookList.getUsedSize(); i++) { Book book = bookList.getPos(i); if(name.equals(book.getName())) { index = i; break; } } if(index == -1) { System.out.println("没有 "+name+"这本书!"); return; } for (int i = index; i < bookList.getUsedSize()-1; i++) { Book book = bookList.getPos(i+1); bookList.setBooks(book,i); } //删除的书,要置空 bookList.setBooks(null, bookList.getUsedSize()-1); bookList.setUsedSize(bookList.getUsedSize()-1); } }
6. ExitOperation
책 찾기:
package operations; import book.Book; import book.BookList; public class DisplayOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("显示图书! "); for (int i = 0; i < bookList.getUsedSize(); i++) { Book book = bookList.getPos(i); System.out.println(book); } } }
7.
반품 도서 반납 :
package operations; import book.BookList; public class ExitOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("退出系统! "); System.exit(0); } }
위 내용은 Java 코드를 사용하여 도서관 관리 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4

Java는 초보자와 숙련된 개발자 모두가 배울 수 있는 인기 있는 프로그래밍 언어입니다. 이 튜토리얼은 기본 개념부터 시작하여 고급 주제를 통해 진행됩니다. Java Development Kit를 설치한 후 간단한 "Hello, World!" 프로그램을 작성하여 프로그래밍을 연습할 수 있습니다. 코드를 이해한 후 명령 프롬프트를 사용하여 프로그램을 컴파일하고 실행하면 "Hello, World!"가 콘솔에 출력됩니다. Java를 배우면 프로그래밍 여정이 시작되고, 숙달이 깊어짐에 따라 더 복잡한 애플리케이션을 만들 수 있습니다.
