Book
package book;
public class Book {
private String name;
private String author;
private int price;
private String type;
private boolean isBorrowed;
public Book(String a, String b, int c, String d) {
name=a;
author=b;
price=c;
type=d;
}
public boolean isBorrowed() {
return isBorrowed;
}
public void setBorrowed(boolean borrowed) {
isBorrowed = borrowed;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
", type='" + type + '\''+", " +
// ", isBorrowed=" + isBorrowed +
(isBorrowed==true?"已经被借出":"未被借出")+
'}';
}
}
Booklist
package book;
public class Booklist {
private Book[] books=new Book[10];
private int usedSize;
public Booklist(){
books[0]=new Book("西游记","吴承恩",23,"history");
books[1]=new Book("水浒传","罗贯中",26,"history");
books[2]=new Book("红楼梦","曹雪芹",25,"history");
usedSize=3;
}
public void setBooks(int pos,Book book)
{
books[pos]=book;
}
public Book getbook(int pos)
{
return books[pos];
}
public int getUsedSize() {
return usedSize;
}
public void setbook(Book book)
{
books[usedSize]=book;
}
public void setbook(int pos,Book book){
books[pos]=book;
}
public void setUsedSize(int usedSize) {
this.usedSize = usedSize;
}
}
Addoperator
package Operat;
import book.Book;
import book.Booklist;
import java.util.Scanner;
public class Addoperate implements IOPerat{
public void work(Booklist booklist)
{
System.out.println("增加图书");
Scanner scanner=new Scanner(System.in);
System.out.println("请输入书名");
String name=scanner.nextLine();
System.out.println("请输入作者名");
String author=scanner.nextLine();
System.out.println("请输入类型");
String type=scanner.nextLine();
System.out.println("请输入价格");
int price= scanner.nextInt();
Book book=new Book(name,author,price,type);
int currentsize=booklist.getUsedSize();
for(int i=0;i<currentsize;i++)
{
Book tmp=booklist.getbook(i);
if(tmp.getName().equals(name))
{
System.out.println("已经存在这本书,不能再放入");
return;
}
}
booklist.setbook(book);
booklist.setUsedSize(currentsize+1);
}
}
Borrowoperator
package Operat;
import book.Book;
import book.Booklist;
import java.util.Scanner;
public class Brrowoperate implements IOPerat{
@Override
public void work(Booklist booklist) {
System.out.println("借阅图书");
System.out.println("请输入要借阅的图书");
Scanner scanner=new Scanner(System.in);
String borrow=scanner.nextLine();
int currentsize= booklist.getUsedSize();
for(int i=0;i<currentsize;i++)
{
Book book=booklist.getbook(i);
if(book.getName().equals(borrow)&&book.isBorrowed()==false)
{
book.setBorrowed(true);
System.out.println("借阅成功");
return ;
}
else if(book.getName().equals(borrow)&&book.isBorrowed()==true)
{
System.out.println("图书以被借阅");
return ;
}
}
System.out.println("没有找到图书");
return;
}
}
Deloperator
package Operat;
import book.Book;
import book.Booklist;
import java.util.Scanner;
public class Deloperate implements IOPerat{
public void work(Booklist booklist)
{
System.out.println("删除图书");
System.out.println("请输入要删除的图书");
Scanner scanner=new Scanner(System.in);
String tmp=scanner.nextLine();
int currentsize=booklist.getUsedSize();
int index=-1;
for(int i=0;i<currentsize;i++)
{
Book book=booklist.getbook(i);
if(book.getName().equals(tmp))
{
index=i;
break;
}
}
if(index==-1)
{
System.out.println("没找到这个书");
return;
}
for(int j=index;j< booklist.getUsedSize();j++)
{
Book book=booklist.getbook(j+1);
booklist.setBooks(j,book);
}
booklist.setUsedSize(currentsize-1);
booklist.setBooks(currentsize-1,null);
}
}
Exitoperator
package Operat;
import book.Booklist;
public class Exitoperate implements IOPerat{
@Override
public void work(Booklist booklist) {
System.out.println("退出系统");
System.exit(0);
}
}
Findoperator
package Operat;
import book.Book;
import book.Booklist;
import java.util.Scanner;
public class Findoperate implements IOPerat{
public void work(Booklist booklist)
{
System.out.println("查找图书");
System.out.println("请输入要查找的书的书名");
int currentsize=booklist.getUsedSize();
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
for(int i=0;i<currentsize;i++)
{
Book book=booklist.getbook(i);
if(book.getName().equals(str))
{
System.out.println("找到了这本书");
System.out.println(book);
return;
}
}
System.out.println("没找到这本书");
}
}
IOperator
package Operat;
import book.Booklist;
public interface IOPerat {
void work(Booklist booklist);
}
Returnoperator
package Operat;
import book.Book;
import book.Booklist;
import java.util.Scanner;
public class Returnoperate implements IOPerat{
@Override
public void work(Booklist booklist) {
System.out.println("归还图书");
System.out.println("请输入要归还的图书");
Scanner scanner=new Scanner(System.in);
String borrow=scanner.nextLine();
int currentsize= booklist.getUsedSize();
for(int i=0;i<currentsize;i++)
{
Book book=booklist.getbook(i);
if(book.getName().equals(borrow)&&book.isBorrowed()==true)
{
book.setBorrowed(false);
System.out.println("归还成功");
return ;
}
else if(book.getName().equals(borrow)&&book.isBorrowed()==false)
{
System.out.println("图书未被借阅");
return ;
}
}
System.out.println("没有找到图书");
return;
}
}
Showoperator
package Operat;
import book.Book;
import book.Booklist;
public class Showoperate implements IOPerat{
@Override
public void work(Booklist booklist) {
System.out.println("展示所有图书");
int currentsize=booklist.getUsedSize();
for(int i=0;i<currentsize;i++)
{
Book book=booklist.getbook(i);
System.out.println(book);
}
}
}
Adminuesr
package user;
import Operat.*;
import java.util.Scanner;
public class AdminUser extends Users{
public AdminUser(String name) {
super(name);
this.ioperation=new IOPerat[]{
new Exitoperate(),new Findoperate(),new Addoperate(),new Deloperate(),new Showoperate()
};
}
public int menu(){
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("请输入你的操作");
Scanner scanner=new Scanner(System.in);
int choice=scanner.nextInt();
return choice;
}
}
NormalUser
package user;
import Operat.*;
import java.util.Scanner;
public class NormalUser extends Users {
public NormalUser(String name) {
super(name);
this.ioperation=new IOPerat[]{
new Exitoperate(),new Findoperate(),new Brrowoperate(),new Returnoperate(),
new Showoperate()
};
}
@Override
public int menu(){
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("请输入你的操作");
Scanner scanner=new Scanner(System.in);
int choice=scanner.nextInt();
return choice;
}
}
Users
package user;
import Operat.IOPerat;
import book.Booklist;
public abstract class Users {
protected String name;
protected IOPerat[] ioperation;
public Users(String name)
{
this.name=name;
}
public abstract int menu();
public void doWork(int choice, Booklist booklist)
{
this.ioperation[choice].work(booklist);
}
}
main
import java.util.Scanner;
public class main {
public static Users login(){
System.out.println("请输入你的姓名");
Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
System.out.println("请输入你的身份 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();
Users user=login();
while(true) {
int choice = user.menu();
user.doWork(choice, booklist);
}
}
}