目次
1. 図書館管理システムのスタイル
管理システムのレンダリング:
効果図から、最初にログインしてユーザーの名前と ID を取得することがわかります。ユーザーの ID に応じて、メニュー バーとユーザーが実行できる操作が異なり ます。
第二に、図書館管理システムの具体的な導入についてです。
主に以下のパッケージとクラスを設定します。
このうち、book パッケージには書籍に関する情報が格納され、operation パッケージにはユーザーが実行するさまざまな操作が格納され、user にはユーザーに関する情報が格納され、Main はテスト クラスです。
2.1 ブックバッグ
Bookクラスは書籍の詳細情報や操作方法を格納するクラスであり、BookListは格納されている書籍を記録する本棚クラスです。
public class Book { private String name;//本のタイトル private String author;//著者 private int Price;//価格 private String type;//type private boolean isborrowed;//貸し出すかどうか //本の初期化 public Book( String name, String author, int Price, String type) { this.name = name; this.author = author; this.price = 価格; this.type = type; } //書籍情報を出力 @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", author='" + author + '\'' + ",価格= + 価格 + ", type='" + type + '\'' +"本のステータス:"+ ((isborrowed==true)? "すでに借りています":"借りていません")+ '}'; } // 本のタイトルを取得 public String getName() { return name; } //本のタイトルを設定 public void setName(String name) { this.name = name; } //著者を取得 public String getAuthor() { return author; } //著者を設定 public void setAuthor (文字列作成者) { これ。author = author; } //価格を取得 public int getPrice() { return Price; } //価格を設定 public void setPrice(int 価格) { this.price = 価格; } } //型を取得 public String getType() { return type; } //型を設定 public void setType(String type) { this.type = type; } //本のステータス、それは貸します public boolean isIsborrowed() { return isborrowed; } //本の状態を設定します public void setIsborrowed(boolean isborrowed) { this.isborrowed = isborrowed; } }
本 book){本[pos]=本; } //現在の棚にある本の数を取得 public int getNowSize() { return NowSize; } //現在の棚にある本の数を設定 public void setNowSize(int nowSize) { NowSize = nowSize; } }
2.2 ユーザーパッケージ
User クラスはすべてのタイプのユーザーの親クラスであり、AdminUser は管理者タイプのユーザー、NormalUser は通常のユーザー タイプのユーザーです。
//抽象クラス public abstract class User { //ユーザー名 protected String name; //ユーザーの複数の操作 protected Ioperation[] ioperations; //ユーザーの初期化 public User(String name) { this.name = name; } //ユーザーのメニュー public abstract int menu(); //ユーザーが実行する操作 public void dooperation(int Choice, BookList bookList){ ioperations[choice].work(bookList); } }
//管理者ユーザー public class AdminUser extends User{ public AdminUser(String name) { super(name); //ユーザー固有の操作 this.ioperations=new Ioperation[]{ new ExitOperation(), //システムを終了 new SearchOperation( ) , //書籍を検索 new AddOperation(), //書籍を追加 new DeleteOperation(), //書籍を削除 new ShowOperation(), //すべての書籍を表示 }; } //管理者ユーザーのメニュー @Override public int menu() { System .out.println("********************"); System.out.println("hello "+name+" "+"管理メンバーメニューへようこそ" ); 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=new Scanner(System.in); //ユーザー入力操作オプション int Choice=scanner.nextInt(); return Choice; } }
//通常のユーザー public class NormalUser extends User{ public NormalUser(String name) { super(name); //通常のユーザー固有の操作 this.ioperations=new Ioperation[]{ new ExitOperation(), //システムを終了 new SearchOperation( ) , //本を探す new BorrowOperation(), //本を借りる new ReturnOperation(), //本を返す }; } //一般ユーザーメニュー @Override public int menu() { System.out.println("*** * *****************"); System.out.println("hello "+name+" 通常ユーザー メニューへようこそ"); System.out.println("1 . 本を探す"); System.out.println("2.本を借りる"); System.out.println("3. 本を返却する"); System.out.println("0. システムを終了します"); System.out.println("********************"); System.out.println ( "選択内容を入力してください:"); スキャナー scanner=new Scanner(System.in); //ユーザー操作オプション int Choice=scanner.nextInt(); return Choice; } }
2.3 メインクラス
//テストクラス public class Main { //ユーザーログイン public static User logn(){ System.out.println("名前を入力してください: "); スキャナー scanner=new Scanner(System.in); String name=scanner 。 nextLine(); System.out.println("ID を入力してください: 1: 管理者 2: 一般ユーザー"); int Choice=scanner.nextInt(); if(choice==1){ return new AdminUser( name); }else { return new NormalUser(name); } } public static void main(String[] args) { BookList bookList=new BookList(); User user=logn(); while (true){ int Choice=user .menu( ); System.out.println("choice :"+choice); //選択に従って、特定の操作を実行するオブジェクトを決定 user.doperation(choice,bookList); } } }
2.4 運用パッケージ
AddOperation は本の操作を追加し、BorrowOperation は本の操作を貸し出し、DeleteOperation は本の操作を削除し、ExitOperation はシステムの操作を終了し、ReturnOperation は操作を返し、SearchOperation は操作を検索し、ShowOperation はすべての本の操作をチェックし、すべての操作は本棚で実行されるため、Ioperation のインターフェイスを構築して宣言します。操作 Bookshelf メソッド、各クラスはこのインターフェイスを実装します。
// インターフェースパブリックインターフェースIoperation { void work(BookList bookList); }
//本の追加 public class AddOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("Add Book"); Scanner スキャナ=new Scanner(System.in); System.out.println("名前を入力してください: "); String name=scanner.nextLine(); System.out.println("著者を入力してください: "); String author=scanner.nextLine(); System.out.println("価格を入力してください: "); int 価格=scanner.nextInt(); scanner.nextLine(); System.out.println("タイプを入力してください: "); String type=scanner.nextLine(); Book book=new Book(name,author 、価格、種類); //本棚がいっぱいかどうかを判断します if(bookList.getNowSize()==Max_book_count){ System.out.println("本棚がいっぱいです"); return; }else { for (int i = 0; i <bookList.getNowSize(); i++) { / / この本がすでに本棚に存在するかどうかを確認します if((bookList.getBook(i).getName()).equals(name)){ System.out.println("この本はすでに本棚に存在します。追加する必要はありませんit"); return ; } } //本を配置 bookList.SetBook(bookList.getNowSize(), book); //本の数に 1 を加えます int count= bookList.getNowSize(); bookList.setNowSize(++count ); System.out.println ("本は正常に追加されました"); } } }
//本の借り方 public class BorrowOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("本の借り方"); Scanner scanner=new Scanner(System.in); System.out.println ("名前を入力してください: "); String name=scanner.nextLine(); for (int i = 0; i < bookList.getNowSize(); i++) { //この本の存在を判定します if ((bookList.getBook(i ).getName()).equals(name)){ bookList.getBook(i).setIsborrowed(true); System.out.println("正常に本を借りることができました"); return; } } System.out.println("借りた本は存在しません"); } }
//書籍を削除 public class DeleteOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("本の削除"); System.out.println("削除する本のタイトルを入力してください: "); スキャナー scanner=new Scanner(System.in); String name=scanner.nextLine(); for (int i = 0; i < bookList.getNowSize(); i++) { //この本は存在します if ((bookList) .getBook( i).getName()).equals(name)){ for (int j = i; j < bookList.getNowSize()-1; j++) { bookList.SetBook(j,bookList.getBook(j+1) )); } //最後のブックは空白のままになります bookList.SetBook(bookList.getNowSize(),null); //本の数から 1 を引いた数 int count=bookList.getNowSize(); bookList.setNowSize(--count); System.out.println("本を正常に削除しました" ) ; return; } } System.out.println("この本は存在しません"); } }
//本の返却 public class ReturnOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("本の返却"); Scanner スキャナ=new Scanner(System.in); System.out.println("名前を入力してください: "); String name=scanner.nextLine(); for (int i = 0; i < bookList.getNowSize(); i++) { //本があります if ((bookList.getBook(i). getName( )).equals(name)){ bookList.getBook(i).setIsborrowed(false); System.out.println("本は正常に返却されました"); return; } } System.out.println("返却された本は存在しません"); } }
//本の検索 public class SearchOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("Find Books"); スキャナー scanner=new Scanner(System.in); String name=scanner.nextLine( ); for (int i = 0; i <bookList.getNowSize();i++) { //本が存在する if ((bookList.getBook(i).getName()).equals(name)){ System.out.println (bookList.getBook(i)); return; } } System.out.println("そのような本は図書館にありません"); } }
//すべての書籍を検索 public class ShowOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("Print Book"); for (int i = 0; i < bookList.getNowSize(); i++) { ブック book=bookList.getBook(i); System.out.println(book); } } }
//システムを終了します public class ExitOperationimplements Ioperation{ @Override public void work(BookList bookList) { System.out.println("システムを終了します"); System.exit(0); } }