java的图书管理系统简化版(1)

该类为增加图书的操作。

package opeartion;

import book.Book;

import book.BookList;

import java.util.Scanner;

public class AddOperation implements IOPeration{

@Override

public void work(BookList bookList) {

Scanner in=new Scanner(System.in);

System.out.println(“新增图书!”);

System.out.println(“请输入图书的名字:”);

String name=in.nextLine();

System.out.println(“请输入图书的作者:”);

String author=in.nextLine();

System.out.println(“请输入图书的价格:”);

int price= in.nextInt();

System.out.println(“请输入图书的类型:”);

String type=in.nextLine();

Book book=new Book(name,author,price,type);

int size=bookList.getUsedSize();

for (int i = 0; i < size; i++) {

Book book1=bookList.getBooks(i);

if (book1.getName().equals(book.getName())){

return;

}

}

bookList.setBooks(size,book);

bookList.setUsedSize(size+1);

System.out.println(“新增图书成功!”);

}

}

创建BorrowOperation类

该类为借阅图书的操作。

package opeartion;

import book.Book;

import book.BookList;

import java.util.Scanner;

public class BorrowOperation implements IOPeration{

@Override

public void work(BookList bookList) {

System.out.println(“借阅图书”);

Scanner in=new Scanner(System.in);

System.out.println(“请输入想借图书的名字:”);

String name=in.nextLine();

int size=bookList.getUsedSize();

for (int i = 0; i < size; i++) {

Book book= bookList.getBooks(i);

if (book.getName().equals(name)){

if(book.isBoroowed()==true){

System.out.println(“借取失败!”);

System.out.println(“图书:”+name+“已经被借出”);

}

else{

System.out.println(“借取成功”);

book.setBoroowed(true);

System.out.println(book);

}

return;

}

}

System.out.println(“借阅失败!”);

}

}

创建DelOperation类

该类为删除图书的操作

package opeartion;

import book.Book;

import book.BookList;

import java.util.Scanner;

public class DelOperation implements IOPeration{

@Override

public void work(BookList bookList) {

System.out.println(“删除图书”);

Scanner in=new Scanner(System.in);

System.out.println(“请输入需要删除的图书:”);

String name=in.nextLine();

int size=bookList.getUsedSize(),i=-1,j;

for (j = 0; j < size; j++) {

Book book=bookList.getBooks(j);

if(book.getName().equals(name)){

i=j;

break;

}

}

if(i!=-1){

for (j = i; j < size-1; j++) {

Book book2=bookList.getBooks(i+1);

bookList.setBooks(j,book2);

}

bookList.setUsedSize(size-1);

System.out.println(“删除成功!”);

return;

}

System.out.println(“删除失败!”);

}

}

创建DisplayOperation类

该类为打印所有图书的操作

package opeartion;

import book.Book;

import book.BookList;

public class DisplayOperation implements IOPeration{

@Override

public void work(BookList bookList) {

int size= bookList.getUsedSize();

for (int i = 0; i < size; i++) {

Book book= bookList.getBooks(i);

System.out.println(book.toString());

}

}

}

创建ExitOperation类

该类为退出图书系统的操作

package opeartion;

import book.BookList;

public class ExitOperation implements IOPeration{

@Override

public void work(BookList bookList) {

System.exit(0);

System.out.println(“退出系统!”);

}

}

创建FindOperation类

该类为查找图书的操作

package opeartion;

import book.Book;

import book.BookList;

import java.util.Scanner;

public class FindOperation implements IOPeration{

@Override

public void work(BookList bookList) {

System.out.println(“查找图书!”);

Scanner in=new Scanner(System.in);

System.out.println(“请输入你想要查找的图书的名字:”);

String name=in.nextLine();

int size=bookList.getUsedSize(),i;

for (i = 0; i < size; i++) {

Book book= bookList.getBooks(i);

if (name.equals(book.getName())){

System.out.println(“查找成功”);

System.out.println(book.toString());

return;

}

}

System.out.println(“当前图书馆中没有你想要的图书”);

}

}

创建ReturnOperation类

该类为归还图书的操作

package opeartion;

import book.Book;

import book.BookList;

import java.util.Scanner;

public class ReturnOperation implements IOPeration{

@Override

public void work(BookList bookList) {

System.out.println(“归还图书!”);

System.out.println(“请输入归还图书的名字:”);

Scanner in=new Scanner(System.in);

String name=in.nextLine();

int size= bookList.getUsedSize();

for (int i = 0; i < size; i++) {

Book book= bookList.getBooks(i);

if(name.equals(book.getName())){

book.setBoroowed(false);

System.out.println(“归还成功!”);

return;

}

}

System.out.println(“没有借阅过这本书或者根本没有这本书!”);

}

}

创建用户相关的类

User 类

创建 User 类, 这是一个抽象类,其里面有菜单的抽象方法,有用户名的名字和操作功能的数组,其用户选项执行操作可以使用doOperation方法

package user;

import book.BookList;

import opeartion.IOPeration;

abstract public class User {

protected String name;

protected IOPeration[] operations;

public User(String name){

this.name=name;

}

abstract public int menu();

public void doOperation(int choice, BookList bookList) {

operations[choice].work(bookList);

}

}

NormalUser类

创建普通用户类, 是 User 的子类,其该类的构造方法先使用调用父类的构造方法,命名名字,再创建

该类的operations数组。并将抽象类的方法进行重写。

package user;

import book.BookList;

import opeartion.*;

import java.util.Scanner;

public class NormalUser extends User{

public NormalUser(String name){

super(name);

this.operations=new IOPeration[] {

new ExitOperation(),

new FindOperation(),

new BorrowOperation(),

new ReturnOperation()};

}

@Override

public int menu() {

Scanner in=new Scanner(System.in);

System.out.println(“=============================”);

System.out.println("Hello " + this.name + “, 欢迎使用图书管理系统!”);

System.out.println(“1.查找图书”);

System.out.println(“2.借阅图书”);

System.out.println(“3.归还图书”);

System.out.println(“0.退出系统”);

System.out.println(“=============================”);

System.out.println(“请输入你的选择”);

int choice=in.nextInt();

return choice;

}

}

Admin类

创建管理员用户类,是 User 的子类,其该类的构造方法先使用调用父类的构造方法,命名名字,再创建该类的operations数组。并将抽象类的方法进行重写。

package user;

import book.BookList;

import opeartion.*;

import java.util.Scanner;

public class Admin extends User{

public Admin(String name){

super(name);

this.operations=new IOPeration[]{

new ExitOperation(),

new FindOperation(),

new AddOperation(),

new DelOperation(),

new DisplayOperation()

};

}

@Override

public int menu() {

Scanner in=new Scanner(System.in);

System.out.println(“=============================”);

System.out.println("Hello " + this.name + “, 欢迎使用图书管理系统!”);

System.out.println(“1.查找图书”);

System.out.println(“2.新增图书”);

System.out.println(“3.删除图书”);

System.out.println(“4.显示所有图书”);

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

三面蚂蚁核心金融部,Java开发岗(缓存+一致性哈希+分布式)

menu() {

Scanner in=new Scanner(System.in);

System.out.println(“=============================”);

System.out.println("Hello " + this.name + “, 欢迎使用图书管理系统!”);

System.out.println(“1.查找图书”);

System.out.println(“2.新增图书”);

System.out.println(“3.删除图书”);

System.out.println(“4.显示所有图书”);

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

[外链图片转存中…(img-lEXdHVM6-1714380368747)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值