欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > Java 图书管理系统功能实现

Java 图书管理系统功能实现

2024/10/23 23:19:14 来源:https://blog.csdn.net/Zackyydss/article/details/139881462  浏览:    关键词:Java 图书管理系统功能实现

承接上一篇的 图书管理系统 ,点击这里跳转

要实现什么功能

1.查找图书

2.增加图书

3.删除图书

4.展示图书

5.退出系统

6.借阅图书

7.归还图书

1.查找图书

要完成这个功能需要以下步骤

输入书名,

然后在书架里找到这本书打印出来,

如果没有这本书就返回

public class FindOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("查找图书-----");//输入书名,查找书名,找到了打印书的信息Scanner scanner = new Scanner(System.in);System.out.println("请输入你要查找的书-----");String name = scanner.nextLine();int currentSize = bookList.getUseSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);//这里比较书的名字if(name.equals(book.getName())) {System.out.println("找到了!");System.out.println(book);return;}}System.out.println("没有找到你要的书-----");return;}
}

由于书在定义的时候重写了toString方法所以可以直接打印出来

2.增加图书

增加图书的前提是书架里有足够的空间,所以需要提前判满,如果已经满了就可以直接返回

//直接加在最后一本书最后,然后书架中当前的书加1,但是前提是需要有足够的空间,所以需要提前判定是否已经满了int currentSize = bookList.getUseSize();if(currentSize == bookList.getBooks().length){System.out.println("书架已经满了-----");return;}

之后的操作是输入书名等信息,放进一本创建的新书中,书架里的书变多,那么当前书架中的书也加一

Scanner scanner = new Scanner(System.in);System.out.println("请输入要增加的书名-----");String name = scanner.nextLine();System.out.println("请输入作者的名字-----");String author = scanner.nextLine();System.out.println("请输入价格-----");int price = scanner.nextInt();//由于nextLine会接收回车,所以留下一个nextLine来接收空格scanner.nextLine();System.out.println("请输入类型-----");String type = scanner.nextLine();//这里把输入的数据放入到一本新书中Book newBook = new Book(name,author,price,type);//加入新书,当前书加1bookList.setBook(newBook,currentSize);bookList.setUseSize(currentSize+1);System.out.println("加入新书成功!");return;}

 3.删除图书

首先我们要确定怎么来进行删除图书的操作

pos之后的书来覆盖pos下标的书,然后当前书架的书减1,

那么重要的是找到下标pos

 public void work(BookList bookList) {System.out.println("删除图书-----");//删除图书需要先找到此书的下标,用后面的书都覆盖前面的书,当前书数量减1Scanner scanner = new Scanner(System.in);System.out.println("请输入你要删除的书-----");String name = scanner.nextLine();int currentSize = bookList.getUseSize();//把i拿出来防止被释放int i = 0;for (; i < currentSize; i++) {Book book = bookList.getBook(i);//设置一个pos变量来接收下标int pos ;//这里比较书的名字if(name.equals(book.getName())) {//pos 接收下标pos = i;

 那么找到下标之后就需要进行删除书籍的操作

//这里比较书的名字if(name.equals(book.getName())) {//pos 接收下标pos = i;//从这本书开始被后面的书覆盖,这里 currentSize-1 防止越界for (int j = pos; j < currentSize-1; j++) {Book book1 = bookList.getBook(j+1);bookList.setBook(book1,j);}//数量减1bookList.setUseSize(currentSize-1);System.out.println("删除成功!");return;

 因为获取书需要获取pos之后的书籍,那么如果不限制就会发生越界访问

 4.展示图书

这个直接遍历书架打印出书的内容即可

public class ShowOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("显示图书-----");int currentSize = bookList.getUseSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);System.out.println(book);}}
}

 5.退出系统

这里需要了解exit

在Java中,System.exit(int status) 是一个静态方法,用于立即终止当前正在运行的Java虚拟机(JVM)

public class ExitOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("退出系统-----");exit(0);}
}

 6.借阅图书

与其他功能相同的是需要输入书名来找书,然后修改书的是否借出值

public class BorrowOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("借阅图书-----");//输入书名,如果有此书就修改isBorrowed的值,没有则结束Scanner scanner = new Scanner(System.in);System.out.println("请输入你要借阅的书-----");String name = scanner.nextLine();int currentSize = bookList.getUseSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);//这里比较书的名字if(name.equals(book.getName())) {//修改是否借阅book.setBorrowed(true);System.out.println("借阅成功!");return;}}System.out.println("没有找到你要借阅的书-----");return;}
}

 7.归还图书

与借阅图书相同

public class ReturnOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("归还图书-----");//找到书并修改借出值Scanner scanner = new Scanner(System.in);System.out.println("请输入你要归还的书-----");String name = scanner.nextLine();int currentSize = bookList.getUseSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);//这里比较书的名字if(name.equals(book.getName())) {book.setBorrowed(false);System.out.println("还书成功!");return;}}System.out.println("没有找到你要还的书-----");return;}

看到这里不妨留下你的三连,你的三连就是我的动力! 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com