千家信息网

如何使用java实现图书馆管理系统

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关如何使用java实现图书馆管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下思路:所有包都在book_manage包里利
千家信息网最后更新 2025年01月19日如何使用java实现图书馆管理系统

这篇文章将为大家详细讲解有关如何使用java实现图书馆管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体内容如下

思路:所有包都在book_manage包里

利用面向对象的多态特性去除了很多if-else的判断,不同的子类在父类所对应的方法不同。

1.首先建立一个book包

包里面有2个类,一个是Book,这个类里面包含一本书的全部信息另外一个类是BookList,这个类是用来管理每一个书,通过这个类来寻找每一本书。private Book[] books = new Book[100];Book数组里面存放所有的书。

2.再建立一个包Operation 这个类里面有一个OI接口,通过对接口里面的Work方法重写,来实现管理员身份和普通用户身份的不同操作。

3.最后建立一个User包,里面有三个类,User,Admin,NormalUser

Admin和NormalUser都继承自User.User里秒你有一个数组protected IO[] operation;这个数组里面包含了用户或者管理员所具备的操作。通过对数组的索引来确定具体需要调用的操作方法。

下面来看看代码吧:

book包

Book类

package book_manager.book;public class Book { private String name; private String id; private String author; private int price; private String type; private boolean isBorrow; public Book(String name, String id, String author, int price, String type, boolean isBorrow) { this.name = name; this.id = id; this.author = author; this.price = price; this.type = type; this.isBorrow = isBorrow; } @Override //Object中内置的类,用来格式化打印book的信息 public String toString() { return "Book{" + "name='" + name + '\'' + ", id='" + id + '\'' + ", author='" + author + '\'' + ", price=" + price + ", type='" + type + '\'' + ", isBorrow=" + isBorrow + '}'; } public String getName(){ return name; } public boolean isBorrow(){ return isBorrow; } public void setBorrow(boolean bool){ this.isBorrow=bool; } public String getId(){ return id; }}

BookList类

package book_manager.book;import java.util.Arrays;public class BookList { private Book[] books = new Book[100]; private int size; public BookList(){ books[0] = new Book("金瓶梅", "001", "兰陵笑笑生", 100, "古典名著", false); books[1] = new Book("水浒传", "002", "施耐庵", 100, "古典名著", false); books[2] = new Book("西游记", "003", "吴承恩", 100, "古典名著", false); size = 3; } public int getSize(){ return size; } public void setBooks(int index,Book book){ books[index]=book; } public void setSize(int size){ this.size=size; } public Book getBook(int index){ return books[index]; }}

Operation包:

ADD类

package book_manager.Operation;import book_manager.book.*;import java.util.Scanner;public class ADD implements IO{ @Override public void work(BookList bookList) { Scanner scanner = new Scanner(System.in); System.out.println("请输入书名"); String name =scanner.next(); System.out.println("请输入序号"); String id = scanner.next(); System.out.println("请输入作者"); String author =scanner.next(); System.out.println("请输入价格"); int price = scanner.nextInt(); System.out.println("请输入类型"); String type = scanner.next(); Book book = new Book(name, id, author, price, type, false); bookList.setBooks(bookList.getSize(),book); bookList.setSize(bookList.getSize()+1); System.out.println("添加成功"); }}

Borrow类

package book_manager.Operation;import book_manager.book.Book;import book_manager.book.BookList;import java.util.Scanner;public class Borrow implements IO{ @Override public void work(BookList bookList) { int i=0; int flag=0; Scanner scan = new Scanner(System.in); System.out.println("请输入需要借阅的书名"); String name = scan.next(); for(;i

Delete类

package book_manager.Operation;import book_manager.book.BookList;import java.util.Scanner;public class Delete implements IO{ public void work(BookList bookList){ Scanner scanner = new Scanner(System.in); System.out.println("请输入想要删除的编号"); String id = scanner.next(); for(int i=0;i

Exit类

package book_manager.Operation;import book_manager.book.BookList;public class Exit implements IO{ @Override public void work(BookList bookList) { System.out.println("退出成功"); System.exit(0); }}

Find类

package book_manager.Operation;import book_manager.book.BookList;import java.util.Scanner;public class Find implements IO{ @Override public void work(BookList bookList) { int i=0; int count=0; Scanner scan = new Scanner(System.in); System.out.println("请输入需要查找的书名"); String name = scan.next(); for(;i

IO接口

package book_manager.Operation;import book_manager.book.BookList;public interface IO { abstract public void work(BookList bookList);}

PrintAll类

package book_manager.Operation;import book_manager.book.BookList;public class PrintAll implements IO{ @Override public void work(BookList bookList) { for(int i=0;i

Return类

package book_manager.Operation;import book_manager.book.BookList;import java.util.Scanner;public class Return implements IO{ @Override public void work(BookList bookList) { int i=0; int flag=0; Scanner scan = new Scanner(System.in); System.out.println("请输入需要归还的ID"); String id = scan.next(); for(;i

user包:

User类

package book_manager.user;import book_manager.Operation.*;import book_manager.Operation.IO;import book_manager.book.BookList;abstract public class User { String name; protected IO[] operation; public User(String name){ this.name=name; } abstract public int menu();//该方法被重写 public void doOperation(int choice, BookList bookList) { operation[choice].work(bookList); }}

Admin类

package book_manager.user;import book_manager.Operation.*;import java.util.Scanner;public class Admin extends User{ public Admin(String name){ super(name); operation=new IO[]{ new Exit(), new Find(), new ADD(), new Delete(), new PrintAll(), }; } 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 scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; } }

NormalUser

package book_manager.user;import book_manager.Operation.*;import java.util.Scanner;public class NormalUser extends User{ public NormalUser(String name){ super(name); operation=new IO[]{ new Exit(), new Find(), new Borrow(), new Return(), new PrintAll() }; } 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 scanner = new Scanner(System.in); int choice = scanner.nextInt(); // close 本质上是在关闭 System.in // 由于后面还需要用到 System.in, 此处不能盲目关闭. // scanner.close(); return choice; }}

最后还有一个Test类,里面放了main函数

package book_manager;import book_manager.book.BookList;import book_manager.user.Admin;import book_manager.user.NormalUser;import book_manager.user.User;import java.util.Scanner;public class Test { public static void main(String[] args) { BookList list = new BookList(); User user = login(); //通过不同的choice和身份调用不同的Operation方法 while(true){ int choice = user.menu(); user.doOperation(choice, list); } } public static User login(){ Scanner scanner = new Scanner(System.in); System.out.println("请输入你的姓名"); String name = scanner.next(); System.out.println("请输入你的身份"); System.out.println("1.普通用户 2.管理员"); int role= scanner.nextInt(); if(role==1){ return new NormalUser(name); } else{ return new Admin(name); } }}

关于"如何使用java实现图书馆管理系统"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

输入 管理 图书 不同 成功 方法 书籍 数组 身份 借阅 不好意思 不好 书名 信息 名著 意思 用户 管理员 篇文章 图书馆 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 青岛吴晓网络技术 咖啡网络安全技术论坛 校园网络安全备份和恢复 支付宝网络技术公司 硬软件服务器配置 吉林服务器机柜销售公司 服务器主板不支持家用电源 杭州hpe塑合型服务器哪家好 怀旧服各服务器开放日期 常用的英文文献检索数据库有哪些 江苏水木同正网络技术有限公司 软件开发为什么是v模型 盐田区服务器机柜厂家 数据库设计经历的过程 倾城网络技术 高二网络技术考试 网络技术基础架构 网络安全手抄报简单图片大全 如何发挥云服务器最大性能 geo数据库介绍及下载指南 互联网信息科技公司介绍范文 数据库中视图的优点节省空间 将所有数据库成绩加5分 互联网科技人才大赛 ansys怎样到处数据库 第八届网络安全宣传周在哪看 软件开发 敏捷模型 数据库设计毕业论文模板 软件开发开发费会计处理 湖南信融网络技术有限公司
0