首先我们需要实现有关书的两个类
package Book;
public class Book {
private String name;//名字
private String price;//价格
private String author;//作者
private boolean isBorrow;//是否借出
public Book() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public boolean isBorrow() {
return isBorrow;
}
public void setBorrow(boolean borrow) {
isBorrow = borrow;
}
public Book (String name, String price, String author) {
this.name = name;
this.price = price;
this.author = author;
this.isBorrow = false;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", price='" + price + '\'' +
", author='" + author + '\'' +
", " + (isBorrow ? "已借出":"未被借出") +
'}';
}
}
package Book;
public class BookList {
private Book[] books = new Book[10];
private int size;
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public BookList (){
this.books[0] = new Book("斗破苍穹","20","天蚕土豆");
this.books[1] = new Book("斗罗大陆","21","唐家三少");
this.books[2] = new Book("奥特曼打小怪兽","21","小怪兽");
this.size = 3;
}
public void setBook(Book book) {//add
this.books[size] = book;
this.size++;
}
public String getBook(int i) {//find , del
return this.books[i].getName();
}
public void disA(int i) {//find
System.out.println(books[i].toString());
}
public void setBooks(int pos ,Book book) {//del
this.books[pos] = book;
}
public Book getBooks(int pos) {
return this.books[pos];
}
public void disPlay() {//dis
for (int i = 0; i < this.size ; i++) {
System.out.println(books[i].toString());
}
}
}
然后需要创建一个接口类,让其他类来继承这个接口类来实现图书馆里简单的操作
package Operation;
import Book.BookList;
public interface IOperation {
void work(BookList bookList);
}
package Operation;
import Book.Book;
import Book.BookList;
import java.util.Scanner;
public class AddOperation implements IOperation{
@Override
public void work(BookList bookList) {
Scanner scan = new Scanner(System.in);
Book book = new Book();
System.out.println("输入书名");
book.setName(scan.nextLine());
System.out.println("输入价格");
book.setPrice(scan.nextLine());
System.out.println("输入作者");
book.setAuthor(scan.nextLine());
bookList.setBook(book);
System.out.println("成功添加");
}
}
package Operation;
import Book.BookList;
import java.util.Scanner;
public class BorrowOperation implements IOperation{
@Override
public void work(BookList bookList) {
Scanner scan = new Scanner(System.in);
System.out.println("输入要借阅书籍的名称");
String name = scan.nextLine();
for (int i = 0; i < bookList.getSize(); i++) {
if (name.equals(bookList.getBook(i))) {
if(!bookList.getBooks(i).isBorrow()) {
bookList.getBooks(i).setBorrow(true);
System.out.println("借阅成功");
} else {
System.out.println("此书已被借阅");
}
return;
}
}
System.out.println("没有此书");
}
}
package Operation;
import Book.Book;
import Book.BookList;
import java.util.Scanner;
public class DelOperation implements IOperation{
@Override
public void work(BookList bookList) {
Scanner scan = new Scanner(System.in);
System.out.println("输入删除书籍的名称");
String name = scan.nextLine();
for (int i = 0; i < bookList.getSize(); i++) {
if(name.equals(bookList.getBook(i))) {
for (int j = i; j < bookList.getSize(); j++) {
Book book = bookList.getBooks(j+1);
bookList.setBooks(j,book);
}
bookList.setSize(bookList.getSize() - 1);
System.out.println("删除成功");
return;
}
}
System.out.println("没有此书");
}
}
package Operation;
import Book.BookList;
public class DisplayOperation implements IOperation{
@Override
public void work(BookList bookList) {
bookList.disPlay();
}
}
package Operation;
import Book.BookList;
public class ExitOperation implements IOperation {
@Override
public void work(BookList bookList) {
System.out.println("exit");
System.exit(0);
}
}
package Operation;
import Book.BookList;
import java.util.Scanner;
public class FindOperation implements IOperation{
@Override
public void work(BookList bookList) {
Scanner scan = new Scanner(System.in);
System.out.println("输入这个书籍得名称");
String name = scan.nextLine();
for (int i = 0; i < bookList.getSize(); i++) {
if(name.equals(bookList.getBook(i))) {
System.out.println("找到了");
bookList.disA(i);
return;
}
}
System.out.println("没有这本书");
}
}
package Operation;
import Book.BookList;
import java.util.Scanner;
public class ReturnOperation implements IOperation{
@Override
public void work(BookList bookList) {
Scanner scan = new Scanner(System.in);
System.out.println("输入要借阅书籍的名称");
String name = scan.nextLine();
for (int i = 0; i < bookList.getSize(); i++) {
if (name.equals(bookList.getBook(i))) {
bookList.getBooks(i).setBorrow(false);
System.out.println("归还成功");
return;
}
}
System.out.println("没有此书");
}
}
使用者user函数
package User;
import Operation.*;
import java.util.Scanner;
public class AdminUser extends User{
public AdminUser(String name) {
super(name);
this.Operations = new IOperation[] {
new ExitOperation(),
new FindOperation(),
new DelOperation(),
new AddOperation(),
new DisplayOperation(),
};
}
public int menu() {
Scanner scan = new Scanner(System.in);
System.out.println(getName() + "欢迎来到图书馆");
System.out.println("=== 0 退出系统 ==");
System.out.println("=== 1 查找图书 ==");
System.out.println("=== 2 删除图书 ==");
System.out.println("=== 3 新增图书 ==");
System.out.println("=== 4 显示所有图书 ==");
int choice = scan.nextInt();
return choice;
}
}
package User;
import Operation.*;
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(),
};
}
public int menu() {
Scanner scan = new Scanner(System.in);
System.out.println(getName() + "欢迎来到图书馆");
System.out.println("=== 0 退出系统 ==");
System.out.println("=== 1 查找图书 ==");
System.out.println("=== 2 借阅图书 ==");
System.out.println("=== 3 归还图书 ==");
int choice = scan.nextInt();
return choice;
}
}
package User;
import Operation.*;
import java.util.Scanner;
public class AdminUser extends User{
public AdminUser(String name) {
super(name);
this.Operations = new IOperation[] {
new ExitOperation(),
new FindOperation(),
new DelOperation(),
new AddOperation(),
new DisplayOperation(),
};
}
public int menu() {
Scanner scan = new Scanner(System.in);
System.out.println(getName() + "欢迎来到图书馆");
System.out.println("=== 0 退出系统 ==");
System.out.println("=== 1 查找图书 ==");
System.out.println("=== 2 删除图书 ==");
System.out.println("=== 3 新增图书 ==");
System.out.println("=== 4 显示所有图书 ==");
int choice = scan.nextInt();
return choice;
}
}
一个主函数来调用这些
import Book.BookList;
import User.AdminUser;
import User.NormalUser;
import User.User;
import java.util.Scanner;
public class Main {
public static User login() {
Scanner scan = new Scanner(System.in);
System.out.println("请输入名字<");
String name = scan.nextLine();
System.out.println("请输入你的身份< 1 管理员 0 普通用户");
int choice = scan.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 = login();
while (true) {
int choice = user.menu();
//根据选择来确定调用方法
user.doIOperation(bookList, choice);
}
}
}