目录

  • 一.Main函数
  • 二.用户类
  • 三.普通用户类
  • 四.管理员类
  • 五.图书类
  • 六.书架类
  • 七.操作类
    • 1.操作接口
    • 2.增加操作
    • 3.删除操作
    • 4.查找操作
    • 5.展示操作
    • 6.借阅操作
    • 7.归还操作
    • 8.退出系统
  • 总结

这篇图书管理系统是对JavaSE知识总结复习的一个小作业,检测自己对知识的掌握程度。

一.Main函数

public class Main {public static User login(){System.out.println("输入你的姓名:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();System.out.println("1.管理员 2.普通用户");System.out.println("输入你的身份");int choice = scanner.nextInt();if (choice == 1){return new Admin(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.doOperation(choice,bookList);}}}

二.用户类

public abstract class User {private String name;protected IOperation[] iOperations;public User(String name){this.name = name;IOperation[] iOperations;}public abstract int menu();public void doOperation(int choice,BookList bookList){IOperation iOperation = iOperations[choice];iOperation.work(bookList);}}

三.普通用户类

public class NormalUser extends User{public NormalUser(String name) {super(name);this.iOperations =new IOperation[]{new ExitOperation(),new FindOperation(),new BorrowOperation(),new ReturnOperation()};}@Overridepublic int menu() {System.out.println("*******管理员菜单*********");System.out.println("*******1.查找图书*********");System.out.println("*******2.借阅图书*********");System.out.println("*******3.归还图书*********");System.out.println("***0.退出系统****");System.out.println("请输入你的操作:");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();return choice;}}

四.管理员类

public class Admin extends User{public Admin(String name) {super(name);this.iOperations =new IOperation[] {new ExitOperation(),new FindOperation(),new AddOperation(),new DeleOperation(),new ShouwOperation()};}@Overridepublic int menu() {System.out.println("*******管理员菜单*********");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;}}

五.图书类

public class Book{//书名 作者 价格 类型 是否借出private String name;private String author;private int price;private String type;private Boolean isBorrowed = false;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;}public Boolean getBorrowed() {return isBorrowed;}public void setBorrowed(Boolean borrowed) {isBorrowed = borrowed;}public Book(String name, String author, int price, String type) {this.name = name;this.author = author;this.price = price;this.type = type;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +", type='" + type + '\'' +", isBorrowed=" + isBorrowed +'}';}}

六.书架类

public class BookList {public Book[] books;public int usedSize;public BookList(){this.books = new Book[10];books[0] = new Book("三国演义","罗贯中",46,"小说");books[1] = new Book("水浒传","施耐庵",37,"小说");books[2] = new Book("红楼梦","曹雪芹",76,"小说");books[3] = new Book("西游记","吴承恩",88,"小说");usedSize = 4;}public Book getBook(int pos) {return books[pos];}public void setBook(Book book,int pos) {this.books[pos] = book;}public int getUsedSize() {return usedSize;}public void setUsedSize(int usedSize) {this.usedSize = usedSize;}}

七.操作类

1.操作接口

public interface IOperation {void work(BookList bookList);Scanner scanner = new Scanner(System.in);}

2.增加操作

public class AddOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("请输入你要增加图书的书名");String name = scanner.nextLine();System.out.println("请输入你要添加书的作者");String author = scanner.nextLine();System.out.println("请输入你要添加书的价格");int price = scanner.nextInt();System.out.println("请输入你要添加书的类型");scanner.nextLine();String type = scanner.nextLine();int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {if(bookList.getBook(i).getName().equals(name)){System.out.println("该书已经存在,无法添加!");return;}}//书不存在 进行添加操作Book book = new Book(name,author,price,type);bookList.setBook(book,currentSize);bookList.setUsedSize(currentSize+1);}}

3.删除操作

public class DeleOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("请输入你要删除书的书名:");String name = scanner.nextLine();int index = -1;int i =0;int currentSize = bookList.getUsedSize();for ( i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);if (book.getName().equals(name)){index = i;break;}} if (i >= currentSize){ System.out.println("要删除的书不存在!"); return; }for (int j = index; j < currentSize-1; j++) {Book book = bookList.getBook(j+1);bookList.setBook(book,j);}bookList.setBook(null,currentSize);bookList.setUsedSize(currentSize-1);System.out.println("删除成功!!!");}}

4.查找操作

public class FindOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("请输入你要查找的书的书名:");String name = scanner.nextLine();int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);if (book.getName().equals(name)){System.out.println(book);return;}}System.out.println("图书馆没有你要寻找的书!");}}

5.展示操作

public class ShouwOperation implements IOperation{@Overridepublic 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);}}}

6.借阅操作

public class BorrowOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("图书馆的书如下:");int currentSzie = bookList.getUsedSize();for (int i = 0; i < currentSzie; i++) {Book book = bookList.getBook(i);System.out.println(book.getName());}System.out.println("请输入你要外借的图书的书名:");String name = scanner.nextLine();for (int i = 0; i < currentSzie; i++) {Book book = bookList.getBook(i);if(book.getName().equals(name)){if (book.getBorrowed()){System.out.println("该书已被借出,换本书吧!");return;}else {book.setBorrowed(true);System.out.println("借阅成功");System.out.println("该书的信息如下");System.out.println(book);return;}}}System.out.println("你想借阅的图书不存在!");}}

7.归还操作

public class ReturnOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("归还图书");System.out.println("请输入你要归还的图书的书名");String name = scanner.nextLine();int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getBook(i);if (book.getName().equals(name)){book.setBorrowed(false);System.out.println("归还成功!");return;}}System.out.println("不存在你要归还的图书!");}}

8.退出系统

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

总结

以上就是图书管理系统的所有知识,有些地方还是需要思考去巧妙地设计使得文章更加简洁明了。冰冻三尺,非一日之寒。水滴石穿,非一日之功。坚持把每一个知识点搞清楚,并进行总结,形成属于自己的知识框架,会让你的学习更加轻松。